BigQuery 用の ODBC ドライバと JDBC ドライバ

はじめに

Google は Simba と共同で、BigQuery の GoogleSQL を利用する ODBC ドライバと JDBC ドライバを提供しています。

JDBC ドライバと ODBC ドライバの目的は、既存のツールとインフラストラクチャで BigQuery の機能を活用できるようにすることです。高パフォーマンスのストレージの統合や予約の管理など、BigQuery の一部の機能は BigQuery API 経由でのみ利用できます。これらのドライバは BigQuery でのみ使用でき、他のプロダクトやサービスでは使用できません。これらのドライバは、追加のライセンス要件なしで使用できますが、アプリケーションの一部としてドライバを再配布することはできません。

現在の ODBC ドライバ

ODBC リリース 3.0.0.1001

ODBC リリース 2.5.2.1004

3.x リリースにアップグレードすることをおすすめします。2.5.x リリースはバグ修正と重要なセキュリティ アップデートに対して引き続きサポートされていますが、BigQuery の新機能は 3.x リリースにのみ追加されます。

現在の JDBC ドライバ

JDBC リリース 1.3.2 1003

報告されている問題とよくある質問

これらのドライバを使用して、BigQuery と既存の環境間でのデータの取り込みやエクスポートをすることはできますか?

これらのドライバは、BigQuery のクエリ インターフェースを利用しており、BigQuery の大規模な取り込みメカニズムやエクスポート機能を利用する機能は提供しません。

DML を使用して少量の INSERT リクエストを発行することはできますが、DML の制限の影響を受けます。

ドライバは BigQuery のネスト データスキーマと繰り返しデータスキーマをどのように処理しますか?

ネストデータと繰り返しデータ(GoogleSQL では STRUCTS と ARRAYS とも呼ばれる)は、これらの型の BigQuery API からの JSON 出力として表されます。これは、ODBC データモデルにはこのデータを表す適切な方法がないためです。これらの型を操作するクエリを実行できますが、クエリの出力スキーマの型が複雑な場合は、ドライバがそれらを JSON 形式でエンコードして出力します。

ドライバはパラメータ化されたクエリをサポートしていますか?

はい、ドライバは位置によるパラメータ化をサポートしています。実行前のクエリの準備段階で検証情報が提供されますが、実行するクエリのパフォーマンスには影響しないことに注意してください。

ドライバは SQL クエリ接頭辞をサポートしていますか?

BigQuery はクエリ接頭辞を使用したレガシー SQL 言語と GoogleSQL 言語の切り替えをサポートしていますが、ドライバはサポートしていません。ドライバは、接続の確立時に使用される SQL モードに関連した特定の状態を維持し、接続の確立時に明示的にオプションを設定します。接続が確立されると SQL モードが固定されるため、ドライバは、クエリ接頭辞を使用した SQL 言語の切り替えをサポートしません。

これらのドライバのサポートを受けるにはどうすればよいですか?

サポート オプションについては、サポートページをご覧ください。

ドライバを介して BigQuery にクエリを実行した場合、どのように課金されますか?

ドライバは無料でダウンロードできます。ドライバを介して実行されるクエリは、ドライバの構成方法に基づいて課金されます。

  • デフォルトでは、ドライバから実行されるクエリにクエリの料金が適用されます。ドライバが大規模な結果セットをサポートするように構成されていない場合、クエリ料金のみが適用されます。
  • 大規模な結果セットを宛先テーブルに書き込むようにドライバが構成されている場合、クエリの料金に加えてストレージの料金も適用されます。データは 24 時間保存されるため、テーブル結果に 24 時間分のストレージ料金がかかります。
  • ドライバから Storage API を呼び出す場合は Storage API の料金が適用されます。この料金は、クエリ結果からのデータの読み取りに適用されますが、クエリでスキャンされたデータには適用されません。Storage API の料金は、大規模な結果セットにのみ適用されます。