USER MANUALS

BigQuery

データ一括読み込みを実行するように BigQuery データソースを構成するには、以下の手順に従って実施してください。

  1. Virtual DataPort が Windows で動作する場合、この機能には Microsoft Visual C++ 2013 再頒布可能パッケージ が必要です。インストール済みかどうか不明な場合、ダウンロードしてインストールします。このパッケージのインストーラーにより、すでにインストールされているかどうかが検出されます。

  2. Virtual DataPort にログインして JDBC データソースを編集し、[Read & Write] タブをクリックします。[Use bulk data load APIs] をチェックして、以下の情報を指定します。

    • [Connection] タブの [Authentication] が [Service-based OAuth Authentication] になっている場合は、以下の手順を実行します。

      1. [GS URI] テキストフィールドに、データソースがデータファイルをアップロードする URI を入力します。たとえば、「 gs://bucket-multiregion-us/user/admin/data/ 」と入力します。

      2. [Private key] で、サービスアカウントキーが含まれる JSON ファイルを選択します。

    • 他の認証方法の場合は、以下の手順を実行します。

      1. [File System] ドロップダウンで、データファイルのアップロードに使用するファイルシステムを選択します。この場合、選択できるオプションは、[HDFS] のみです。

      2. [HDFS URI] に、データソースがデータファイルをアップロードする URI を入力します。たとえば、「 gs://bucket-multiregion-us/user/admin/data/ 」と入力します。

      3. [Hadoop properties] セクションでは、 core-site.xml のような Hadoop 構成ファイルで使用される Hadoop プロパティを設定できます。BigQuery データソースの場合、以下の Hadoop プロパティを確立します ([Read & Write] タブを使用します)。

      以下の Hadoop プロパティを設定します。

      • google.cloud.auth.service.account.enable = true

      • google.cloud.auth.service.account.json.keyfile = <サービスアカウントキーが含まれる JSON ファイルのパス>

実行時に、クエリに BigQuery への一括読み込みが含まれる場合、Virtual DataPort では、すべてのデータを 1 つのファイルに保存してディスクに完全に書き込んでから BigQuery に転送するのではなく、データを複数のチャンクに分割して並列アップロードします。

ビューのキャッシュをロードするクエリを実行するにあたって、キャッシュデータベースが BigQuery であるとします。キャッシュロードプロセスは以下のように実行されます。

  1. VDP サーバーは、JDBC データソースの資格情報を使用して BigQuery に接続し、CREATE TABLE ステートメントを実行します。

  2. VDP サーバーは、結果の最初の数行を取得するとすぐに、結果をデータファイルに書き込み始めます。このファイルは Parquet 形式でディスクに書き込まれます。

  3. サーバーはファイルに 5,000,000 行を書き込むと、ファイルを閉じて BigQuery データソースで定義された場所にファイルを送信し始めます。同時に、後続の行を別のファイルに書き込みます。

    5,000,000 は、データソースの [Read & Write] タブの [Batch insert size (rows)] フィールドのデフォルト値であり、変更可能です。この値を増やすと、アップロードプロセスの並列性が低下することに注意してください。

  4. VDP サーバーは、Hadoop プロパティで指定された JSON ファイルから取得した資格情報を使用して、Google Cloud Storage に接続します。

  5. サーバーは、別のデータファイルへの書き込みを終了すると (つまり、ファイルがバッチ挿入サイズに到達すると)、先に生成されていたファイルの転送が完了していなくても、Google Cloud Storage (GCS) (つまり、[GS URI] ([HDFS URI]) フィールドで指定された場所) にファイルを転送し始めます。デフォルトでは、クエリあたり最大 10 ファイルを同時に転送します。ファイルの数がこの制限に到達すると、サーバーはデータファイルに行を書き込み続けますが、それ以上ファイルを転送しません。

    この制限は、VQL シェルで次のコマンドを実行することによって変更できます。

SET 'com.denodo.vdb.util.tablemanagement.sql.insertion.DFInsertWorker.hdfs.maxParallelUploads' = '<new limit per query>';
  1. 全ファイルのアップロードが完了すると、作成されたテーブルに BigQuery のデータが読み込まれます。その後、キャッシュテーブルにキャッシュデータが格納されます。

注釈

キャッシュプロセスまたはデータ移動プロセスに別のカタログ/スキーマを使用する必要が生じると、ドロップダウンリストに表示されるカタログが 1 つだけであることがわかります。これは、データソース作成時のコネクション URI にプロジェクト名 (プロジェクトは bigquery におけるカタログ) を含める必要があり、このプロジェクト名のみが [Read & Write] タブのドロップダウンリストに表示されるためです。

Add feedback