Databricks
Databricks は、 データ パイプラインまたはレプリケーション タスクのターゲット データ プラットフォームとして使用できます。データ パイプラインでは、データの保存、データの変換、データ マートの作成、データの登録など、さまざまな ELT 操作をターゲット プラットフォーム上で実行できます。一方、レプリケーション タスクでは、基本的な変換機能を備え、ソース システムからターゲット システムへ直接データをレプリケートしますが、ELT 操作はサポートしません。 を使用できます
Databricks をターゲットとして設定するには、次が必要です。
- 前提条件を満たす
- クラウド ステージング エリアへの接続を構成する。これは、既存のデータを登録する場合は必要ありません。
- Databricks への接続を構成する
クラウド ステージング エリアの設定
Databricks ターゲット コネクタを使用する場合は、データと変更が適用および保存される前にステージングされるクラウド ステージング エリアも定義する必要があります。次のストレージ プラットフォームがサポートされています。
Databricks への接続を構成する
ステージング設定を指定したら、次の操作を行います。
-
[接続] で、[接続を作成] をクリックします。
-
Databricks ターゲット コネクタを選択し、次の設定を行います。
データ ターゲット
データ ゲートウェイ
Data Movement gateway は、ターゲット データベースが Qlik Cloud からアクセスできない場合にのみ必要で、プライベート リンクを使用してのみアクセスできます ( Virtual Private Cloud にある場合など) 。該当する場合には、ターゲット データベースにアクセスする Data Movement gateway を選択します。
ユースケースに応じて、これはデータ ソースからデータを移動するために展開された、同じまたは別の Data Movement gateway になります。
Data Movement gateway のユース ケースに関する詳細については、「どのようなときに Data Movement gateway が必要ですか?」および「 一般的なユース ケース」を参照してください。
ターゲット データベースが Qlik Cloud から直接アクセスできる場合は、 [None] (なし) を選択します。
接続プロパティ
- ホスト: Databricks ワークスペースのホスト名。
- ポート: ワークスペースへのアクセスに使用するポート。
- HTTP パス: 使用されているクラスターへのパス。
- トークン: ワークスペースにアクセスするための個人トークン。
カタログのプロパティ
[カタログをロード] をクリックして使用可能なカタログをロードし、 [カタログ] を選択します。環境にカタログが構成されていない場合は、既定のカタログである hive_metastore を選択します。
Databricks で外部の場所を定義することで、Data Movement gateway が外部 (管理されていない) テーブルにアクセスできるようにする必要があります。ガイドラインは、次を参照してください。
内部プロパティ
内部プロパティは、特殊なユース ケース向けであるため、ダイアログで公開されません。Qlik サポートによって指示があった場合にのみ使用する必要があります。
項目右側にある と ボタンを使用して、必要に応じてプロパティを追加したり削除したりします。
名前
接続の表示名です。
前提条件
一般的な権限
- 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.<storage-account-name>.dfs.core.windows.net <storage-account-access-key>
詳細については、次のサイトで 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 をダウンロードしてインストールするには:
-
Data Movement gateway サービスを停止します。
sudo systemctl stop repagent
-
オプションで、サービスが停止されたことを確認します。
sudo systemctl status repagent
ステータスは次のようになっているはずです。
Active: inactive (dead) since <timestamp> ago
-
データ移動 ゲートウェイ マシンで、作業ディレクトリを次に変更します:
opt/qlik/gateway/movement/drivers/bin
-
次のコマンドを実行します。
構文:
./install databricks
アクセス制限または技術的な問題により driver をダウンロードできない場合は、driver をダウンロードする場所と データ移動 ゲートウェイ マシンのコピー先を指示するメッセージが表示されます。それが完了したら、install databricks コマンドを再度実行します。
それ以外の場合は、driver の EULA が表示されます。
-
以下のいずれかを行います。
- 何度も [Enter] を押すと、EULA 全体をスクロールできます。
- 何度もスペースバーを押すと、EULA 全体をスピーディにスクロールできます。
- q を押すと、ライセンス テキストが終了し、EULA 受諾オプションが表示されます。
-
以下のいずれかを行います。
- 「y」を入力して [Enter] を押すと、EULA が受諾され、インストールが開始します。
- 「n」を入力して [Enter] を押すと、EULA が拒否され、インストールが終了します。
-
「v」を入力して [Enter] を押すと、EULA が再表示されます。
-
インストールが終了するまで待ってから (「完了しました!」と表示されます)、Data Movement gateway サービスを開始します。
sudo systemctl start repagent
-
必要に応じて、サービスが開始されたことを確認します。
sudo systemctl status repagent
ステータスは次のようになっているはずです。
Active: active (running) since <timestamp> ago
driver がインストールされます。
driver の更新
提供された driver をインストールする前に前のバージョンの driver をアンインストールしたい場合は、更新コマンドを実行します。
driver をダウンロードして更新するには:
-
Data Movement gateway サービスを停止します。
sudo systemctl stop repagent
-
オプションで、サービスが停止されたことを確認します。
sudo systemctl status repagent
ステータスは次のようになっているはずです。
Active: inactive (dead) since <timestamp> ago
-
データ移動 ゲートウェイ マシンで、作業ディレクトリを次に変更します:
opt/qlik/gateway/movement/drivers/bin
-
次のコマンドを実行します。
構文:
./update databricks
アクセス制限または技術的な問題により driver をダウンロードできない場合は、driver をダウンロードする場所と データ移動 ゲートウェイ マシンのコピー先を指示するメッセージが表示されます。それが完了したら、update databricks コマンドを再度実行します。
それ以外の場合は、driver の EULA が表示されます。
-
以下のいずれかを行います。
- 何度も [Enter] を押すと、EULA 全体をスクロールできます。
- 何度もスペースバーを押して、EULA 全体をスピーディにスクロールします。
- q を押すと、ライセンス テキストが終了し、EULA 受諾オプションが表示されます。
-
以下のいずれかを行います。
- 「y」を入力して [Enter] を押すと、EULA が受諾され、インストールが開始します。
- 「n」を入力して [Enter] を押すと、EULA が拒否され、インストールが終了します。
- 「v」を入力して [Enter] を押すと、最初から EULA をレビューできます。
-
インストールが終了するまで待ってから (「完了しました!」と表示されます)、Data Movement gateway サービスを開始します。
sudo systemctl start repagent
-
必要に応じて、サービスが開始されたことを確認します。
sudo systemctl status repagent
ステータスは次のようになっているはずです。
Active: active (running) since <timestamp> ago
古い driver がアンインストールされ、新しい driver がインストールされます。
driver のアンインストール
driver をアンインストールする場合は、アンインストール コマンドを実行します。
driver をアンインストールするには:
-
このコネクタを使用するように構成されているすべてのタスクを停止します。
-
データ移動 ゲートウェイ マシンで、作業ディレクトリを次に変更します:
opt/qlik/gateway/movement/drivers/bin
-
次のコマンドを実行します。
構文:
./uninstall databricks
driver がアンインストールされます。
ドライバーの手動インストール
自動ドライバーのインストールが正常に完了しなかった場合にのみ、driver を手動でインストールするようにしてください。
ODBC ドライバーのインストール
Data Movement gateway がインストールされたら、SimbaSparkODBC-<version>-LinuxRPM-64bit.zip ファイルをダウンロードします。サポートされているバージョンへの直接ダウンロード リンクは、/opt/qlik/gateway/movement/drivers/manifests/databricks.yaml の binary-artifacts にあります。ダウンロードが完了したら、ファイルを Data Movement gateway マシンにコピーします。
-
Data Movement gateway サービスを停止します。
sudo systemctl stop repagent
-
必要に応じて、サービスが停止されたことを確認します。
sudo systemctl status repagent
-
ドライバーを Data Movement gateway マシンにインストールします。
-
インストールしたら、次のセクションが /etc/odbcinst.ini ファイルに表示されていることを確認します。
-
Data Movement gateway サービスを起動します。
sudo systemctl start repagent
-
オプションで、サービスが開始されたことを確認します。
sudo systemctl status repagent
ステータスは次のようになっているはずです。
Active: active (running) since <timestamp> ago
ステータスは次のようになっているはずです。
Active: inactive (dead) since <timestamp> ago
[Simba Spark ODBC Driver] Description=Amazon Hive ODBC Driver (64-bit) Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
JDBC ドライバーのインストール
-
databricks-jdbc-<バージョン>.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
-
Data Movement gateway サービスを再起動し、サービスが Data Movement gateway サービス コマンド で説明されているコマンドを実行して再起動されているかどうかを確認します。
ポート
アウトバウンド通信のために、ファイアウォール ポート 443 を開く必要があります。
データ型
次の表は、Qlik Cloud の使用時に対応する Databricks データ型と、Qlik Cloud データ型からの初期設定のマッピングを示しています。
ネイティブ データ タイプの情報は保持され、データセット ビューの [ネイティブ データ タイプ] 列に表示されます。列が表示されない場合は、データ セット ビューの列ピッカーを開いて、 [ネイティブ データ タイプ] 列を選択する必要があります。
Qlik Cloud データ型 | Databricks データ型 |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
STRING |
DATE |
DATE |
TIME |
STRING |
DATETIME |
TIMESTAMP |
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 (長さのバイト数) |
WSTRING |
VARCHAR (長さのバイト数) |
BLOB |
STRING |
NCLOB |
STRING |
CLOB |
STRING |
次のデータ型は STRING(255) に変換されます。
-
MAP
-
ARRAY
-
STRUCT
制限と考慮事項
-
主キーのないテーブルで Databricks on AWS を使用する場合、ストレージ アプリでランディングでのテーブルの再読み込みが失敗します。 これを解決するには、次のいずれかを実行できます
-
テーブルに主キーを定義します。
-
Databricks で spark.databricks.delta.alterTable.rename.enabledOnAWS を True に設定します。
-
SQL ベースの変換を作成する場合、すべての VARCHAR 項目は STRING(255) として返されます。
-