# Databricks

Databricks は、データ パイプラインまたはレプリケーション タスクのターゲット データ プラットフォームとして使用できます。データ パイプラインでは、データの保存、データの変換、データ マートの作成、データの登録など、さまざまな ELT 操作をターゲット プラットフォーム上で実行できます。一方、レプリケーション タスクでは、基本的な変換機能を備え、ソース システムからターゲット システムへ直接データをレプリケートしますが、ELT 操作はサポートしません。

Databricks をターゲットとして設定するには、次が必要です。

* [前提条件を満たす](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/databricks-target.htm#Prerequi2)
* クラウド ステージング エリアへの接続を構成する。これは、[既存のデータを登録する](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm)場合は必要ありません。
* Databricks への接続を構成する

情報メモSQL Warehouse クラスターでのみサポートされます

## クラウド ステージング エリアの設定

Databricks ターゲット コネクタを使用する場合は、データと変更が適用および保存される前にステージングされるクラウド ステージング エリアも定義する必要があります。次のストレージ プラットフォームがサポートされています。

* [Amazon S3](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/aws-s3-target.htm)

* [Azure Data Lake Storage](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/adls-target.htm)

* [Google Cloud Storage](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/google-storage-target.htm)

情報メモ[既存のデータを登録する](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm)場合は、クラウド ステージング エリアを設定する必要はありません。

## Databricks への接続を構成する

ステージング設定を指定したら、次の操作を行います。

1. [接続] で、[接続を作成] をクリックします。

2. Databricks ターゲット コネクタを選択し、次の設定を行います。

### データ ターゲット

#### データ ゲートウェイ

情報メモこのサブスクリプション ティアでは Data Movement gateway がサポートされていないため、Qlik Talend Cloud スターター サブスクリプションではこの項目を使用できません。

Data Movement gateway は、ターゲット データベースが Qlik Cloud からアクセスできない場合にのみ必要で、プライベート リンクを使用してのみアクセスできます ( Virtual Private Cloud にある場合など) 。該当する場合には、ターゲット データベースにアクセスする Data Movement gateway を選択します。

ユースケースに応じて、これはデータ ソースからデータを移動するために展開された、同じまたは別の Data Movement gateway になります。

Data Movement gateway のユース ケースに関する詳細については、「[どのようなときに Data Movement gateway が必要ですか？](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top)」および「[一般的な使用例](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common)」を参照してください。

ターゲット データベースが Qlik Cloud から直接アクセスできる場合は、 [None] (なし) を選択します。

情報メモData Movement gateway 経由でターゲット データベースにアクセスする場合は、Data Movement gateway マシンに適切なドライバーをインストールする必要もあります。詳細については、以下の「[ドライバーのセットアップ](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/databricks-target.htm#Driver)」を参照してください。

### 接続プロパティ

* ホスト: Databricks ワークスペースのホスト名。
* ポート: ワークスペースへのアクセスに使用するポート。
* HTTP パス: 使用されているクラスターへのパス。

### 認証

* 認証方法 - 次のいずれかを選択します。

  * OAuth: 次の情報を入力します。

    情報メモ

    OAuth 認証の前提条件:

    * Databricks データベースが OAuth を使用するように設定されていることを確認してください。手順については、ベンダーのオンライン ヘルプを参照してください。
    * Data Movement gateway を使用してデータベースにアクセスする場合は、Data Movement gateway 2024.11.30 以降が必要です。

    * クライアント ID: アプリケーションのクライアント ID です。

    * クライアント シークレット: アプリケーションのクライアントシークレットです。接続を編集すると、安全のためにクライアント シークレットが削除され、再度入力する必要があることに注意してください。

  * パーソナル アクセス トークン: [トークン] 項目に、ワークスペースにアクセスするための個人トークンを入力します。

### カタログのプロパティ

[カタログをロード] をクリックして使用可能なカタログをロードし、 [カタログ] を選択します。環境にカタログが構成されていない場合は、既定のカタログである hive\_metastore を選択します。

情報メモ

Databricks で外部の場所を定義することで、データ タスクが外部 (管理されていない) テーブルにアクセスできるようにする必要があります。ガイドラインは、次を参照してください。

https://docs.databricks.com/data-governance/unity-catalog/manage-external-locations-and-credentials.html#manage-permissions-for-an-external-location

### 内部プロパティ

内部プロパティは、特殊なユース ケース向けであるため、ダイアログで公開されません。Qlik サポートによって指示があった場合にのみ使用する必要があります。

項目右側にある the 新規作成 icon と the キャンセル icon ボタンを使用して、必要に応じてプロパティを追加したり削除したりします。

### 名前

接続の表示名です。

## 前提条件

### 一般的な権限

* Qlik Talend Data Integration Server マシンの時刻は正確である必要があります。

* データブリック テーブル権限: Qlik Talend Data Integration には、Databricks テーブルで次の操作を実行する権限が必要です: テーブルの作成、削除、切り取り、説明、および変更。

* ADLS Gen2 ファイル システムのアクセス制御 (IAM) 設定で、"Storage Blob Data Contributor" ロールを Qlik Talend Data Integration (AD アプリ ID) に割り当てます。ロールが有効になるまで数分かかる場合があります。

* Qlik Talend Data Integration を ODBC 経由で Databricks クラスターに接続するためには、ユーザーの Databricks アカウントで「添付可能」権限をユーザーに付与する必要があります。

* Databricks にアクセスするには、有効なセキュリティ トークンが必要です。エンドポイント設定で [Databricks ODBC アクセス] 項目を構成する際は、トークンを指定する必要があります。

* Microsoft Azure Data Lake Storage (ADLS) Gen2 を使って新しいクラスターを構成する際は、「Spark Config」セクションに次の行を追加する必要があります。

  `spark.hadoop.hive.server2.enable.doAs false`

* Databricks クラスターからストレージ ディレクトリにアクセスするには、ユーザーがストレージ アカウントとそのキーに構成 (Spark Config で) を追加する必要があります。

  fs.azure.account.key.&lt;storage-account-name&gt;.dfs.core.windows.net &lt;storage-account-access-key&gt;

  詳細については、次のサイトで Databricks オンライン ヘルプを参照してください: https://docs.databricks.com/clusters/configure.html#spark-configuration

* ベストプラクティスは、Databricks データベースのルート ロケーション (/Usr/Hive/Warehouse/) を*使用しない*ことです。そうすると、パフォーマンスに影響が及ぶ必要があります。

### ストレージへのアクセス権限

クラウド ストレージにアクセスするには、Databricks SQL コンピューティングを構成する必要があります。手順については、ベンダーのオンライン ヘルプを参照してください。

### ドライバーのセットアップ

ドライバーは、Data Movement gateway 経由でデータベースにアクセスする場合にのみ必要です。このような場合は、Data Movement gateway マシンにドライバーをインストールする必要があります。

driver のインストールは、ドライバー インストール ユーティリティを使用する (推奨) か、手動で実行できます。手動インストールは、ドライバー インストール ユーティリティで問題が発生した場合にのみ実行するようにしてください。

#### ドライバー インストール ユーティリティを使用したドライバーのインストール

このセクションでは、必要な driver のインストール方法を説明しました。このプロセスでは、必要な driver を自動的にダウンロード、インストール、設定するスクリプトを実行します。また、必要に応じて driver の更新やアンインストールを行うスクリプトを実行することもできます。

インストールの準備

* データ移動 ゲートウェイ サーバーに Python 3.6.x 以降 がインストールされていることを確認します。

  Python は、ほとんどの Linux 配布に前もってインストールされています。お使いのシステムにインストールされている Python のバージョンは、次のコマンドを実行することで確認できます。

  python3 --version

driver のインストール

driver をダウンロードしてインストールするには:

1. Data Movement gateway サービスを停止します。

   sudo systemctl stop repagent

2. 必要に応じて、サービスが停止されたことを確認します。

   sudo systemctl status repagent

   ステータスは次のようになっているはずです。

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. データ移動 ゲートウェイ マシンで、作業ディレクトリを次に変更します:

   opt/qlik/gateway/movement/drivers/bin

4. 次のコマンドを実行します:

   構文:

   ./install databricks

   アクセス制限または技術的な問題により driver をダウンロードできない場合は、driver をダウンロードする場所と データ移動 ゲートウェイ マシンのコピー先を指示するメッセージが表示されます。それが完了したら、install databricks コマンドを再度実行します。

   それ以外の場合は、driver の EULA が表示されます。

5. 次のいずれかを実行します。

   * 何度も [Enter] を押すと、EULA 全体をスクロールできます。
   * 何度もスペースバーを押すと、EULA 全体をスピーディにスクロールできます。
   * q を押すと、ライセンス テキストが終了し、EULA 受諾オプションが表示されます。

6. 次のいずれかを実行します。

   * 「y」を入力して [Enter] を押すと、EULA が受諾され、インストールが開始します。

   * 「n」を入力して [Enter] を押すと、EULA が拒否され、インストールが終了します。

   * 「v」を入力して [Enter] を押すと、EULA が再表示されます。

   driver がインストールされます。

7. インストールが終了するまで待ってから (「完了しました!」と表示されます)、Data Movement gateway サービスを開始します。

   sudo systemctl start repagent

8. 必要に応じて、サービスが開始されたことを確認します。

   sudo systemctl status repagent

   ステータスは次のようになっているはずです。

   Active: active (running) since &lt;timestamp&gt; ago

driver の更新

提供された driver をインストールする前に前のバージョンの driver をアンインストールしたい場合は、更新コマンドを実行します。

driver をダウンロードして更新するには:

1. Data Movement gateway サービスを停止します。

   sudo systemctl stop repagent

2. 必要に応じて、サービスが停止されたことを確認します。

   sudo systemctl status repagent

   ステータスは次のようになっているはずです。

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. データ移動 ゲートウェイ マシンで、作業ディレクトリを次に変更します:

   opt/qlik/gateway/movement/drivers/bin

4. 次のコマンドを実行します:

   構文:

   ./update databricks

   アクセス制限または技術的な問題により driver をダウンロードできない場合は、driver をダウンロードする場所と データ移動 ゲートウェイ マシンのコピー先を指示するメッセージが表示されます。それが完了したら、update databricks コマンドを再度実行します。

   それ以外の場合は、driver の EULA が表示されます。

5. 次のいずれかを実行します。

   * 何度も [Enter] を押すと、EULA 全体をスクロールできます。
   * 何度もスペースバーを押すと、EULA 全体をスピーディにスクロールできます。
   * q を押すと、ライセンス テキストが終了し、EULA 受諾オプションが表示されます。

6. 次のいずれかを実行します。

   * 「y」を入力して [Enter] を押すと、EULA が受諾され、インストールが開始します。
   * 「n」を入力して [Enter] を押すと、EULA が拒否され、インストールが終了します。
   * 「v」を入力して [Enter] を押すと、最初から EULA をレビューできます。

   古い driver がアンインストールされ、新しい driver がインストールされます。

7. インストールが終了するまで待ってから (「完了しました!」と表示されます)、Data Movement gateway サービスを開始します。

   sudo systemctl start repagent

8. 必要に応じて、サービスが開始されたことを確認します。

   sudo systemctl status repagent

   ステータスは次のようになっているはずです。

   Active: active (running) since &lt;timestamp&gt; ago

driver のアンインストール

driver をアンインストールする場合は、アンインストール コマンドを実行します。

driver をアンインストールするには:

1. このコネクタを使用するように構成されているすべてのタスクを停止します。

2. データ移動 ゲートウェイ マシンで、作業ディレクトリを次に変更します:

   opt/qlik/gateway/movement/drivers/bin

3. 次のコマンドを実行します:

   構文:

   ./uninstall databricks

   driver がアンインストールされます。

#### ドライバーの手動インストール

自動ドライバーのインストールが正常に完了しなかった場合にのみ、driver を手動でインストールするようにしてください。

ODBC ドライバーのインストール

Data Movement gateway がインストールされたら、SimbaSparkODBC-&lt;version&gt;-LinuxRPM-64bit.zip ファイルをダウンロードします。サポートされているバージョンへの直接ダウンロード リンクは、/opt/qlik/gateway/movement/drivers/manifests/databricks.yaml の binary-artifacts にあります。ダウンロードが完了したら、ファイルを Data Movement gateway マシンにコピーします。

1. Data Movement gateway サービスを停止します。

   sudo systemctl stop repagent

2. 必要に応じて、サービスが停止されたことを確認します。

   sudo systemctl status repagent

   ステータスは次のようになっているはずです。

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. ドライバーを Data Movement gateway マシンにインストールします。

4. インストールしたら、次のセクションが /etc/odbcinst.ini ファイルに表示されていることを確認します。

   ```
   [Databricks ODBC Driver]
   Driver=/opt/databricks/databricksodbc/lib/64/libdatabricksodbc64.so
   ```

5. Data Movement gateway サービスを起動します。

   sudo systemctl start repagent

6. オプションで、サービスが開始されたことを確認します。

   sudo systemctl status repagent

   ステータスは次のようになっているはずです。

   Active: active (running) since &lt;timestamp&gt; ago

JDBC ドライバーのインストール

1. databricks-jdbc-&lt;バージョン&gt;.jar ファイルをダウンロードします。サポートされているバージョンへの直接ダウンロード リンクは、/opt/qlik/gateway/movement/drivers/manifests/databricks.yaml の binary-artifacts にあります。ダウンロードが完了したら、JAR ファイルを Data Movement gateway マシンの次のフォルダーにコピーします。

   /opt/qlik/gateway/movement/qcs\_agents/qdi-db-commands/lib

2. Data Movement gateway サービスを再起動し、サービスが [Data Movement gateway サービス コマンド](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti) で説明されているコマンドを実行して再起動されているかどうかを確認します。

### ポート

アウトバウンド通信のために、ファイアウォール ポート 443 を開く必要があります。

## データ型

次の表は、Qlik Cloud の使用時に対応する Databricks データ型と、Qlik Cloud データ型からの初期設定のマッピングを示しています。

ネイティブ データ タイプの情報は保持され、データセット ビューの [ネイティブ データ タイプ] 列に表示されます。列が表示されない場合は、データ セット ビューの列ピッカーを開いて、 [ネイティブ データ タイプ] 列を選択する必要があります。

対応しているデータ型

| Qlik Cloud データ型 | Databricks データ型 |
| --- | --- |
| BOOLEAN | BOOLEAN |
| BYTES | VARCHAR (長さのバイト数) |
| 日付 | DATE |
| TIME | STRING |
| DATETIME | TIMESTAMP<br><br>入力列が 6 より低い精度を使用している場合でも、精度は常に 6 です。<br><br>入力列が 6 より高い精度を使用している場合、完全な精度を保持することができますが、列を STRING のようなサポートされている別の型に変換することを検討してください。 |
| INT1 | TINYINT |
| INT2 | SMALLINT |
| INT4 | INT |
| INT8 | BIGINT |
| NUMERIC | DECIMAL (精度、スケール) |
| REAL4 | FLOAT |
| REAL8 | DOUBLE |
| UINT1 | SMALLINT |
| UINT2 | INT |
| UINT4 | BIGINT |
| UINT8 | DECIMAL (20、0) |
| STRING | VARCHAR (長さのバイト数)<br><br>列が JSON サブタイプを持ち、Databricks Runtime のバージョンが 15.4 LTS 以降である場合: VARIANT |
| WSTRING | VARCHAR (長さのバイト数)<br><br>列が JSON サブタイプを持ち、Databricks Runtime のバージョンが 15.4 LTS 以降である場合: VARIANT |
| NCLOB | STRING<br><br>列が JSON サブタイプを持ち、Databricks Runtime のバージョンが 15.4 LTS 以降である場合: VARIANT |
| CLOB | STRING<br><br>列が JSON サブタイプを持ち、Databricks Runtime のバージョンが 15.4 LTS 以降である場合: VARIANT |
| BLOB | STRING |
| JSON | VARIANT<br><br>情報メモVARIANT データ型は Databricks の Public Preview としてサポートされています。 |

次のデータ型は STRING(255) に変換されます。

* MAP

* ARRAY

* STRUCT

## 制限と考慮事項

* 主キーのないテーブルで Databricks on AWS を使用する場合、ストレージ アプリでランディングでのテーブルの再読み込みが失敗します。 これを解決するには、次のいずれかを実行できます

  * テーブルに主キーを定義します。

  * Databricks で spark.databricks.delta.alterTable.rename.enabledOnAWS を True に設定します。

  * SQL ベースの変換を作成する場合、すべての VARCHAR 項目は STRING(255) として返されます。

* プライマリ キーが NULL 許容列に基づいている場合、Databricks では作成されません。