Excel Add-In for Google BigQuery

Build 23.0.8839

高度な統合

次のセクションでは、高度な統合で必要となる本製品 機能を設定する方法を説明します。

結果セットの保存

大きな結果セットは、テンポラリテーブルまたは永続テーブルに保存する必要があります。 次のプロパティを使用して、テーブルの永続性を制御できます。

Automatic Result Tables

Enable the AllowLargeResultSets property to make the 本製品 automatically create destination tables when needed. If a query result is too large to fit the BigQuery query cache, the 本製品 creates a hidden dataset within the data project and re-executes the query with a destination table in that dataset. The dataset is configured so that all tables created within it expire in 24 hours.

In some situations you may want to change the name of the dataset created by the 本製品. For example, if multiple users are using the 本製品 and do not have permissions to write to datasets created by the other users. See TempTableDataset for details on how to do this.

Explicit Result Tables

Enable the DestinationTable property to make the 本製品 write query results to the given table. Writing query results to a single table imposes several limitations that you should keep in mind when using this option:

  • Two query results cannot be read at the same time on the same connection. If two queries are executed and their results are read at the same time, the last query to finish executing overwrites the data from the other query.
  • The dataset must be created in the same region as your tables. BigQuery does not support writing a destination table in a different region than where a query was executed.
  • Do not rely on the 本製品 to create a temporary table for every query. Some queries are processed internally or read directly from a table without executing a query job on BigQuery.

課金の制限

接続内の任意のクエリの最大コストに対する制限をオーバーライドするには、MaximumBillingTier を設定します。

バルクモード

Google BigQuery では、行のバッチを操作するためのインターフェースがいくつか提供されています。 本製品 は、InsertMode オプションを経由してこれらのメソッドをサポートしており、それぞれが異なるユースケースに特化しています。

  • Streaming API は、最も重要な要素が素早く挿入できることである場合の使用を想定しています。 ただし、API 経由で挿入された行はキューに入れられ、遅れてテーブルに表示されます。 この遅延は20~30分に及ぶこともあり、データを挿入してすぐに他の操作を実行したい場合には、このAPI は不適合です。 ストリーミングキューに行がある間は、テーブルを変更しないようにする必要があります。 Google BigQuery は、ストリーミングキューに行がある間はテーブルでDML 操作を実行できないようにし、テーブルのメタデータ(名前、スキーマなど)が変更されてまだコミットされていないストリーム行が失われる可能性を防ぎます。
  • DML モードAPI は、標準SQL INSERT クエリを使用してデータをアップロードします。 これは、アップロードされた行にエラーがあった場合に即座にレポートされるため、最も堅牢なデータアップロード方法です。 本製品 もまたこのAPI を同期的に使用するため、INSERT の処理が終わると、待機することなく他の操作で任意の行を使用できます。 ただし、これは最も遅い挿入方法であり、データ量が少ない場合にのみ使用する必要があります。
  • Upload モードは、データのアップロードにマルチパートアップロードAPI を使用します。 この方法は、低コストで中規模から大規模のデータのロードを合理的な時間内に実行することを目的とします。 このモードを使用する場合、本製品 は挿入された行をGoogle が管理するストレージにアップロードし、それらのロードジョブを作成します。 このジョブが実行されると、本製品 は待機するか(WaitForBatchResults を参照)、非同期で実行させることができます。 ジョブを待機すると、ジョブが遭遇したエラーがレポートされますが、より多くの時間がかかります。 ジョブが失敗したかどうかを待たずに判断するには、ジョブのストアドプロシージャを使用してジョブのステータスを手動で確認する必要があります。
  • GCSStaging モードはUpload とほぼ同じですが、Google が管理するストレージではなく、Google Cloud Storage アカウントを使用して、ステージングされたデータを保存する点が異なります。 本製品は、ロード完了後にファイルを削除しなければならないためこのモードでは非同期に動作できず、したがってWaitForBatchResults は無効です。
    これは外部データに依存するため、GCSBucket をバケット名に設定し、Scope(スペース区切りのスコープのセット)が少なくともスコープhttps://www.googleapis.com/auth/bigquery およびhttps://www.googleapis.com/auth/devstorage.read_write を含むことを確認する必要があります。 また、GCS で使用されるdevstorage スコープでは、Google BigQuery ではユーザーアカウントでこのスコープを使用できないため、サービスアカウントでの接続を必要とします。

バルクINSERT に加えて、本製品 はバルクUPDATE およびDELETE 操作の実行もサポートします。 そのためには、本製品 は設定するフィルタと行を含むデータをBigQuery の新しいテーブルにアップロードし、2つのテーブル間でMERGE を実行してテンポラリテーブルをドロップする必要があります。 InsertMode は、テンポラリテーブルに行を挿入する方法を決定しますが、Streaming モードとDML モードはサポートされていません。

ほとんどの場合、本製品 はバルクアップデートのSET 句とWHERE 句のどちらにどのカラムが必要かを判断できます。 「バルクUPDATE をサポートするには、主キーを定義してください」といったエラーが表示された場合は、PrimaryKeyIdentifiers を使用して、キーとして扱うカラムを本製品 に指示できます。 更新では、キーカラムの値は一致する行を見つけるためにのみ使用され、値の更新はできません。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839