分析接続の使用方法
Qlik Cloud またはさまざまなサードパーティの機械学習ツールから展開されたモデルからデータをロードして生成するための分析接続を作成します。これらのモデルは通常、REST ベースの API エンドポイントを公開します。接続を作成して使用する前に、必要な機械学習モデルを作成して展開するか、アクセス権を取得する必要があります。
Qlik AutoML に加えて、機械学習モデルを作成、トレーニング、展開できる、次のようなサードパーティのプラットフォームがあります。
-
Azure ML
-
Amazon SageMaker
Azure Machine Learning Studio でノーコードの AutoML を使用した分類モデルのトレーニング
機械学習エンドポイントの分析接続を有効にします。
機械学習エンドポイントはデフォルトでは無効になっています。
テナント管理者は、 [設定] ウィンドウの [機能制御] にある Administration で機械学習エンドポイントを有効にできます。
分析接続とサーバー側の拡張構文の使用
分析接続では、計算のために Qlik AutoML または外部に公開された機械学習エンドポイントにデータを送信できます。これらの接続から返されたデータは、Qlik Sense アプリにロードできます。
データ ロード スクリプトとチャートの数式は、分析接続を Qlik Sense アプリに追加するための 2 つの方法です。サーバーサイド拡張 (SSE) 関数とパラメータはどちらも Qlik Sense 内で処理された後、機械学習モデルに送信される REST リクエストに変換されます。SSE ロード スクリプトおよびチャートの数式は、SSE 構文に従う必要があります。「サーバーサイド拡張構文」を参照してください。
データ ロード スクリプト
-
SSE コールからテーブルを返し、Qlik Sense データ ロード スクリプトで LOAD ... EXTENSION 構文を使用して分析接続からデータをロードできます。モデルに単一のテーブルを送ることができます。単一のデータ テーブルが返されます。
-
Qlik Sense データ ロード スクリプト (LOAD ... EXTENSION ステートメントを除外する) で SSE 関数を使用すると、カーディナリティが保持され、単一の列が戻されます。
-
SSE 関数は他の Load ステートメント (Load ... From ... など) 内から呼び出し、スカラーおよび集計関数タイプのみをサポートします。つまり、n 行を含むデータは、単一の呼び出しの結果になるデータを集計する場合を除き、モデルへの n 回の呼び出しになります。
-
データ型は、分析接続で自動的に検出されます。データに数値が含まれず、少なくとも 1 個の非 NULL テキスト文字列が含まれる場合、その項目はテキストとみなされます。それ以外の場合は数値とみなされます。String() または Mixed() で項目名を囲むと、データ型を強制的に指定できます。String() は項目をテキストに指定します。項目が数値の場合、デュアル値のテキスト部分が抽出され、変換は実行されません。Mixed() は項目をデュアルに指定します。
チャートの数式
-
チャートの数式は、SSE 関数呼び出しから返されたテーブルを使用できません。チャートの数式で SSE 関数を使用すると、カーディナリティが保持され、最初に戻された列のみが Qlik Sense で使用されます。
データ接続のスペースを参照する
アプリまたはスクリプトを管理スペースに公開する場合、または SSE リクエストで現在のスペースの接続を参照する場合は、相対構文を使用します。または、特定のスペース名を参照してリクエストを構成します。これらの概念は、ロード スクリプトとチャートの数式の両方で重要です。
スペースを認識する構文の使用については、次を参照してください。
例 1: ロード スクリプトの相対スペース構文
次の例は、ロード スクリプト内の分析接続への接続のサンプルです。コードは、アプリまたはスクリプトの現在のスペース内の接続を指すように変更されました。これは、接続名の先頭にコロンを追加することによって行われます (この場合は「:Amazon_Titan_(Amazon_Bedrock)」)。このコロンがない場合、参照はリロードを実行しているユーザー (またはリロード スケジュールの所有者) の個人スペース内の接続を指すことになります。
EXTENSION endpoints.ScriptEval('{"RequestType":"endpoint", "endpoint":{"connectionname":":Amazon_Titan_(Amazon_Bedrock)"}}', QuestionsTable{Question_ID,Question});
このスペースを認識する構文は、分析接続も含まれる管理スペースにアプリやスクリプトを公開する前に使用できます。
例 2: チャートの数式における相対スペース構文
次の例は、現在のスペース内の接続への参照を含むチャートの数式です。これは、接続名の先頭にコロンを追加することによって行われます (この場合は「:Amazon_Titan_(Amazon_Bedrock)」)。このコロンがない場合、参照はリロードを実行しているユーザー (またはリロード スケジュールの所有者) の個人スペース内の接続を指すことになります。
if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":":Amazon_Titan_(Amazon_Bedrock)","column":"outputText"}}',vQuestion))
このスペースを認識する構文は、分析接続も含まれる管理スペースにアプリやスクリプトを公開する前に使用できます。
例 3: ロード スクリプトのハードコードされたスペース構文
分析接続への参照を特定のスペースでのみ機能させる場合は、そのスペースへの直接参照を含むように数式をハードコードできます。スペース名を含めない場合 (また、例 1 と 2 に追加されたコロンも省略する場合)、構文は、リロードを実行しているユーザー (またはリロード スケジュールの所有者) の個人スペース内の接続を参照するようにハードコードされます。
[Select data] (データ選択) ウィザードを使用して Load ステートメントを追加すると、この構文が自動的に使用されます。
EXTENSION endpoints.ScriptEval('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Shared_Space:Amazon_Titan_(Amazon_Bedrock)"}}', QuestionsTable{Question_ID,Question});
この場合、参照は My_Shared_Space という名前のスペース内の接続を指します。
例 4: チャートの数式におけるハードコードされたスペース構文
この例は、例 3 と似ています。スペース名を含めない場合 (また、例 1 と 2 に追加されたコロンも省略する場合)、構文は、リロードを実行しているユーザー (またはリロード スケジュールの所有者) の個人スペース内の接続を参照するようにハードコードされます。
if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Shared_Space:Amazon_Titan_(Amazon_Bedrock)","column":"outputText"}}',vQuestion))
この場合、参照は My_Shared_Space という名前のスペース内の接続を指します。