Google BigQuery
Google BigQuery は、 データ パイプラインまたはレプリケーション タスクのターゲット データ プラットフォームとして使用できます。データ パイプラインでは、データの保存、データの変換、データ マートの作成、データの登録など、さまざまな ELT 操作をターゲット プラットフォーム上で実行できます。一方、レプリケーション タスクでは、基本的な変換機能を備え、ソース システムからターゲット システムへ直接データをレプリケートしますが、ELT 操作はサポートしません。 を使用できます
Google BigQuery をターゲットとして設定するには、次が必要です。
- 前提条件を満たす
- Google BigQuery への接続を構成する
Google BigQuery への接続を構成する
コネクタを構成するには、次の手順を実行します。
-
[接続] で、 [接続を作成] をクリックします。
-
Google BigQuery ターゲット コネクタを選択し、次の設定を行います。
データ ターゲット
データ ゲートウェイ
Data Movement gateway は、ターゲット データベースが Qlik Cloud からアクセスできない場合にのみ必要で、プライベート リンクを使用してのみアクセスできます ( Virtual Private Cloud にある場合など) 。該当する場合には、ターゲット データベースにアクセスする Data Movement gateway を選択します。
ユースケースに応じて、これはデータ ソースからデータを移動するために展開された、同じまたは別の Data Movement gateway になります。
Data Movement gateway のユース ケースに関する詳細については、「どのようなときに Data Movement gateway が必要ですか?」および「 一般的なユース ケース」を参照してください。
ターゲット データベースが Qlik Cloud から直接アクセスできる場合は、 [None] (なし) を選択します。
接続プロパティ
サービス アカウント キー: BigQuery サービス アカウント キーの作成時にダウンロードした JSON ファイルをアップロードします。
場所: Qlik によって作成されたデータセットをアップロードする場所。[その他] を選択する場合は、[地域名] 項目に地域名を入力します。サポートされている地域名のリストについては、「BigQuery の場所」を参照してください。
名前
接続の表示名です。
前提条件
ランディング データに必要な権限
ターゲット データセットを自動的に作成するために必要な権限:
データセットを自動的に作成する場合は、次の権限が必要です。
BigQuery > BigQuery Job User
BigQuery > BigQuery Data Editor
ターゲット データセットが既に存在する場合に必要な権限:
データセットが既に存在する場合は、次の手順を実行する必要があります。
-
次の権限を持つサービス アカウントを作成します。
BigQuery > BigQuery Job User
-
使用するデータセットに移動して、次の操作を行います。
-
作成したばかりのサービス アカウントをプリンシパルとして追加します。
-
BigQuery Data Editor の役割を割り当てます。
-
ドライバーのセットアップ
ドライバーは、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 gbq
アクセス制限または技術的な問題により driver をダウンロードできない場合は、driver をダウンロードする場所と データ移動 ゲートウェイ マシンのコピー先を指示するメッセージが表示されます。それが完了したら、install gbq コマンドを再度実行します。
それ以外の場合は、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 gbq
アクセス制限または技術的な問題により driver をダウンロードできない場合は、driver をダウンロードする場所と データ移動 ゲートウェイ マシンのコピー先を指示するメッセージが表示されます。それが完了したら、update gbq コマンドを再度実行します。
それ以外の場合は、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 gbq
driver がアンインストールされます。
ドライバーの手動インストール
自動ドライバーのインストールが正常に完了しなかった場合にのみ、driver を手動でインストールするようにしてください。
ODBC ドライバーと JDBC ドライバーの両方をインストールする必要があります。
ODBC ドライバーのインストール
Data Movement gateway がインストールされたら、SimbaODBCDriverforGoogleBigQuery_<バージョン>-Linux.tar.gz ファイルおよび google-cloud-sdk-<バージョン>-linux-x86_64.tar.gz ファイルをダウンロードします。これらのファイルへの直接ダウンロード リンクは、/opt/qlik/gateway/movement/drivers/manifests/gbq.yaml の binary-artifacts にあります。ダウンロードが完了したら、ファイルを Data Movement gateway マシンにコピーします。
-
Data Movement gateway サービスを停止します。
sudo systemctl stop repagent
-
必要に応じて、サービスが停止されたことを確認します。
sudo systemctl status repagent
-
抽出:
SimbaODBCDriverforGoogleBigQuery_<バージョン>.tar.gz
抽出先:
/opt/SimbaODBCDriverforGoogleBigQuery_<バージョン>-Linux
-
ファイル GoogleBigQueryODBC.did および simba.googlebigqueryodbc.ini を Simba ODBC ドライバー ディレクトリの下の lib ディレクトリに移動します。
例:
以下からファイルを移動します。
/opt/SimbaODBCDriverforGoogleBigQuery_<バージョン>-Linux/setup
移動先:
/opt/SimbaODBCDriverforGoogleBigQuery_<バージョン>-Linux/SimbaODBCDriverforGoogleBigQuery64_<バージョン>/lib
-
simba.googlebigqueryodbc.ini ファイルを次のように編集します。
-
ErrorMessagesPath
を、ODBC メッセージを含む XML ファイルのパスに変更します。既定の場所は以下の通りです。ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
DriverManagerEncoding
をUTF-16
に変更します。
-
-
次のパスを、Data Movement gateway ビン ディレクトリにある site_arep_login.sh ファイルに追加します。
エクスポートLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<バージョン>/lib
-
/etc/odbcinst.ini ファイルを編集し、ドライバー パス (つまり、ドライバーがインストールされているパス) を追加します。
[ODBC Drivers]
Simba= Installed
Simba ODBC Driver for Google BigQuery = Installed
[Simba ODBC Driver for Google BigQuery]
Description=Simba ODBC Driver for Google BigQuery(64-bit)
Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so
-
google-cloud-sdk-<version>-linux-x86_64.tar.gz をインストールします。
-
Data Movement gateway サービスを起動します。
sudo systemctl start repagent
-
オプションで、サービスが開始されたことを確認します。
sudo systemctl status repagent
ステータスは次のようになっているはずです。
Active: active (running) since <timestamp> ago
ステータスは次のようになっているはずです。
Active: inactive (dead) since <timestamp> ago
JDBC ドライバーとその依存関係のインストール
-
/opt/qlik/gateway/movement/drivers/manifests/gbq.yaml の binary-artifacts の下にリストされている次の ZIP ファイルと JAR ファイルをダウンロードします。
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<バージョン>/google-cloud-bigquery-<バージョン>.jar
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<バージョン>/google-cloud-storage-<バージョン>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<バージョン>.zip
JAR ファイルを Data Movement gateway マシンの次のフォルダーにコピーし、SimbaJDBCDriverforGoogleBigQuery<version>.zip 内の JAR ファイルを同じフォルダーに抽出します。
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
サービスの再起動 で説明されているコマンドを実行して、Data Movement gateway サービスを再起動します
ポート
アウトバウンド通信のために、ファイアウォール ポート 443 を開く必要があります。
データ型
パラメータ化されたデータ型の長さは既定値で設定されます:
-
STRING: 8192 (長さ)
-
BYTES: 8192 (長さ)
-
NUMERIC: 精度: 38、スケール: 9
-
BIGDECIMAL: 精度: 76、スケール: 38
次の表は、Qlik Cloud の使用時に対応する Google BigQuery データ型と、Qlik Cloud データ型からの初期設定のマッピングを示しています。
ネイティブ データ タイプの情報は保持され、データセット ビューの [ネイティブ データ タイプ] 列に表示されます。列が表示されない場合は、データ セット ビューの列ピッカーを開いて、 [ネイティブ データ タイプ] 列を選択する必要があります。
Qlik Cloud データ型 | Google BigQuery SQL データ型 |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES (長さのバイト数) |
DATE |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC (精度、スケール) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING (長さのバイト数) |
WSTRING |
STRING (長さのバイト数) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
次のデータ型は STRING に変換されます。
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
自動ドライバーのインストールが正常に完了しなかった場合にのみ、driver を手動でインストールするようにしてください。
制限と考慮事項
データを Google BigQuery ターゲットに移動する場合は、次の制限と考慮事項が適用されます。
すべてのデータ タスクの制限と考慮事項
- 次の DDL はサポートされていません。
- 列をドロップ
- カラム名を変更
- 列のデータ型を変更
- テーブルの名前を変更
プライマリ キーまたは一意のインデックスを持たないソース テーブルからの変更はサポートされていません。このようなテーブルからの変更をキャプチャする必要がある場合は、変換を使用してプライマリ キーを追加できます。さらに、プライマリ キー列または一意のインデックス列に NULL を含めることはできません。このような列に NULL 値が設定されることが分かっている場合は、NULL を NULL 非許容値の数に変更する変換を定義します。
レプリケーション タスクのみの制限と考慮事項
- トランザクションの「変更の適用」モードはサポートされません。
適用の競合およびデータ エラーに対する [例外テーブルにレコードを記録] エラー処理オプションはサポートされていません。
次のタスク設定構成では、レプリケーション タスクは UPDATE ではなく、DELETE 操作の後に INSERT を実行します。
変更適用モードは [バッチ最適化] に設定されています。
[SQL MERGE を使用して変更を適用] オプションは設定されていません。
適用の競合に対する UPDATE エラー処理は次のように設定されています: UPDATE を適用するためのレコードが見つかりません: 不足しているターゲット レコードを INSERT。
Google Cloud BigQuery はロールバックをサポートしていないため、レプリケーション タスクで更新された行を挿入できない場合は、ターゲットからデータが削除されます。