# 分析接続の使用方法

Qlik Cloud またはさまざまなサードパーティの機械学習ツールから展開されたモデルからデータをロードして生成するための分析接続を作成します。これらのモデルは通常、REST ベースの API エンドポイントを公開します。接続を作成して使用する前に、必要な機械学習モデルを作成して展開するか、アクセス権を取得する必要があります。

Qlik Predict に加えて、機械学習モデルを作成、トレーニング、展開できる、次のようなサードパーティのプラットフォームがあります。

* Azure ML

* Amazon SageMaker

[Azure Machine Learning Studio でノーコードの AutoML を使用した分類モデルのトレーニング](https://docs.microsoft.com/en-gb/azure/machine-learning/tutorial-first-experiment-automated-ml)

[Amazon SageMaker の使用方法](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)

## 機械学習エンドポイントの分析接続を有効にします。

機械学習エンドポイントはデフォルトでは無効になっています。

テナント管理者は、 [設定] ウィンドウの [機能制御] にある 管理 で機械学習エンドポイントを有効にできます。

## 分析接続とサーバー側の拡張構文の使用

分析接続では、計算のために Qlik Predict または外部に公開された機械学習エンドポイントにデータを送信できます。これらの接続から返されたデータは、Qlik Sense アプリケーションにロードできます。

データ ロード スクリプトとチャートの数式は、分析接続を Qlik Sense アプリケーションに追加できる 2 つの方法です。サーバーサイド拡張 (SSE) 関数とパラメータはどちらも Qlik Sense 内で処理された後、機械学習モデルに送信される REST リクエストに変換されます。SSE ロード スクリプトおよびチャートの数式は、SSE 構文に従う必要があります。「[サーバーサイド拡張構文](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)」を参照してください。

### データ ロード スクリプト

* 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 リクエストで現在のスペースの接続を参照する場合は、相対構文を使用します。または、特定のスペース名を参照してリクエストを構成します。これらの概念は、ロード スクリプトとチャートの数式の両方で重要です。

スペースを認識する構文の使用については、次を参照してください。

* [ロード スクリプトでデータ ソースに接続](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/connect-data-sources-data-load-editor.htm)

* [管理スペースのアプリケーションのデータ ソース](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/app-data-managed-spaces.htm)

#### 例 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 という名前のスペース内の接続を指します。