# Google BigQuery

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

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

* [前提条件を満たす](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Prerequi2)
* Google BigQuery への接続を構成する

## Google BigQuery への接続を構成する

コネクタを構成するには、次の手順を実行します。

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

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

### データ ターゲット

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

情報メモこのサブスクリプション ティアでは 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 マシンに適切なドライバーをインストールする必要もあります。詳細については、以下の「[Google BigQuery](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/bigquery-target.htm#Driver)」を参照してください。

### 接続プロパティ

サービス アカウント キー: BigQuery サービス アカウント キーの作成時にダウンロードした JSON ファイルをアップロードします。

場所: Qlik によって作成されたデータセットをアップロードする場所。[その他] を選択する場合は、[地域名] 項目に地域名を入力します。サポートされている地域名のリストについては、「[BigQuery](https://cloud.google.com/bigquery/docs/locations) の場所」を参照してください。

情報メモ[その他] を選択するには、Data Movement gateway 2023.11.4 以降が必要です。

### 名前

接続の表示名です。

## 前提条件

### ランディング データに必要な権限

ターゲット データセットを自動的に作成するために必要な権限:

データセットを自動的に作成する場合は、次の権限が必要です。

BigQuery &gt; BigQuery ジョブ ユーザー

BigQuery &gt; BigQuery データ エディタ

ターゲット データセットが既に存在する場合に必要な権限:

データセットが既に存在する場合は、次の手順を実行する必要があります。

1. 次の権限を持つサービス アカウントを作成します。

   BigQuery &gt; BigQuery ジョブ ユーザー

2. 使用するデータセットに移動して、次の操作を行います。

   1. 作成したばかりのサービス アカウントをプリンシパルとして追加します。

   2. BigQuery Data Editor の役割を割り当てます。

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

ドライバーは、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 gbq

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

   それ以外の場合は、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 gbq

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

   それ以外の場合は、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 gbq

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

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

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

ODBC ドライバーと JDBC ドライバーの両方をインストールする必要があります。

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

Data Movement gateway がインストールされたら、SimbaODBCDriverforGoogleBigQuery\_&lt;バージョン&gt;-Linux.tar.gz ファイルおよび google-cloud-sdk-&lt;バージョン&gt;-linux-x86\_64.tar.gz ファイルをダウンロードします。これらのファイルへの直接ダウンロード リンクは、/opt/qlik/gateway/movement/drivers/manifests/gbq.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. 抽出:

   SimbaODBCDriverforGoogleBigQuery\_&lt;バージョン&gt;.tar.gz

   抽出先:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;バージョン&gt;-Linux

4. ファイル GoogleBigQueryODBC.did および simba.googlebigqueryodbc.ini を Simba ODBC ドライバー ディレクトリの下の lib ディレクトリに移動します。

   例:

   以下からファイルを移動します。

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;バージョン&gt;-Linux/setup

   抽出先:

   /opt/SimbaODBCDriverforGoogleBigQuery\_&lt;バージョン&gt;-Linux/SimbaODBCDriverforGoogleBigQuery64\_&lt;バージョン&gt;/lib

5. simba.googlebigqueryodbc.ini ファイルを次のように編集します。

   1. ` ErrorMessagesPath  ` を、ODBC メッセージを含む XML ファイルのパスに変更します。既定の場所は以下の通りです。

      `ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages`

   2. `DriverManagerEncoding` を `UTF-16` に変更します。

6. 次のパスを、Data Movement gateway ビン ディレクトリにある site\_arep\_login.sh ファイルに追加します。

   エクスポートLD\_LIBRARY\_PATH=$LD\_LIBRARY\_PATH:/opt/SimbaODBCDriverforGoogleBigQuery\_&lt;version&gt;-Linux/SimbaODBCDriverforGoogleBigQuery64\_&lt;バージョン&gt;/lib

7. /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`

8. google-cloud-sdk-&lt;version&gt;-linux-x86\_64.tar.gz をインストールします。

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

   sudo systemctl start repagent

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

    sudo systemctl status repagent

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

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

JDBC ドライバーとその依存関係のインストール

1. /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml の binary-artifacts の下にリストされている次の ZIP ファイルと JAR ファイルをダウンロードします。

   * https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/&lt;バージョン&gt;/google-cloud-bigquery-&lt;バージョン&gt;.jar
   * https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/&lt;バージョン&gt;/google-cloud-storage-&lt;バージョン&gt;.jar
   * https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery&lt;バージョン&gt;.zip

   JAR ファイルを Data Movement gateway マシンの次のフォルダーにコピーし、SimbaJDBCDriverforGoogleBigQuery&lt;version&gt;.zip 内の JAR ファイルを同じフォルダーに抽出します。

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

2. [サービスの再起動](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti2) で説明されているコマンドを実行して、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 |
| TIME | TIME |
| DATETIME | TIMESTAMP<br><br>スケールが 7 を超える場合: STRING(37)<br><br>それ以外の場合、入力列が 6 より低い精度を使用している場合でも、精度は常に 6 です。 |
| INT1 | TINYINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | NUMERIC (精度、スケール) |
| REAL4 | FLOAT64 |
| REAL8 | FLOAT64 |
| UINT1 | TINYINT |
| UINT2 | SMALLINT |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| STRING | STRING<br><br>サブタイプが JSON の場合:<br><br>JSON |
| WSTRING | STRING<br><br>サブタイプが JSON の場合:<br><br>JSON |
| BLOB | BYTES |
| NCLOB | STRING<br><br>サブタイプが JSON の場合:<br><br>JSON |
| CLOB | STRING<br><br>サブタイプが JSON の場合:<br><br>JSON |
| ARRAY | STRING |
| STRUCT | STRING |
| GEOGRAPHY | STRING |
| JSON | JSON |

## すべてのデータ タスクの制限と考慮事項

* 次の DDL はサポートされていません。

  * 列をドロップ
  * 列名を変更
  * 列のデータ型を変更

* プライマリ キーまたは一意のインデックスを持たないソース テーブルからの変更はサポートされていません。このようなテーブルからの変更をキャプチャする必要がある場合は、変換を使用してプライマリ キーを追加できます。さらに、プライマリ キー列または一意のインデックス列に NULL を含めることはできません。このような列に NULL 値が設定されることが分かっている場合は、NULL を NULL 非許容値の数に変更する変換を定義します。

* JSON 項目はプライマリ キーとしてサポートされていません。

## レプリケーション タスクのみの制限と考慮事項

* トランザクションの「変更の適用」モードはサポートされません。

* 次のタスク設定構成では、レプリケーション タスクは UPDATE ではなく、DELETE 操作の後に INSERT を実行します。

  * 変更適用モードは [バッチ最適化] に設定されています。

  * [SQL MERGE を使用して変更を適用] オプションは設定されていません。

  * 適用の競合に対する UPDATE エラー処理は次のように設定されています: UPDATE を適用するためのレコードが見つかりません: 不足しているターゲット レコードを INSERT。

  Google Cloud BigQuery はロールバックをサポートしていないため、レプリケーション タスクで更新された行を挿入できない場合は、ターゲットからデータが削除されます。