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

はじめに

ユーザーが BigQuery と GoogleSQL の機能を活用できるように、Google は Simba と提携して、専用の Java Database Connectivity(JDBC)ドライバと Open Database Connectivity(ODBC)ドライバを提供しています。

JDBC ドライバと ODBC ドライバを使用すると、BigQuery を任意のツールとインフラストラクチャで使用できます。これらのドライバを使用すると、BigQuery API でのみ利用可能な高パフォーマンスのストレージ統合や予約管理などの BigQuery の機能にアクセスできます。これらの特殊なドライバは BigQuery 専用に設計されており、他のプロダクトやサービスでは使用できません。これらのドライバを使用するために追加のライセンスは必要ありません。

現在の ODBC ドライバ

次のドライバは、ODBC ドライバの最新の安定版です。

ODBC リリース 3.0.7.1016

ODBC リリース 2.5.2.1004

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

現在の JDBC ドライバ

次のドライバは、JDBC ドライバの最新の安定版です。

JDBC リリース 1.6.1.1002

ODBC HTAPI に必要な権限

High-Throughput API(HTAPI)は、ODBC のオプションの API です。HTAPI の詳細については、インストールと構成のガイドをご覧ください。

High-Throughput API の使用に必要な権限を取得するには、BigQuery プロジェクトに対する BigQuery 読み取りセッション ユーザーroles/bigquery.readSessionUser)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、High-Throughput API を使用するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

High-Throughput API を使用するには、次の権限が必要です。

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • bigquery.readsessions.create
  • bigquery.readsessions.getData
  • bigquery.readsessions.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

制限事項

  • JDBC ドライバと ODBC ドライバは、BigQuery の高パフォーマンス読み込み機能やエクスポート機能をサポートしていません。データ操作言語(DML)ステートメントを使用してデータ挿入を実行できますが、これらのステートメントには DML ステートメントの制限が適用されます。
  • JDBC ドライバと ODBC ドライバは、GoogleSQL の ARRAY データ型と STRUCT データ型をサポートしていません。これらのデータ型の出力がドライバからリクエストされると、ドライバはデータ型を JSON 形式にレンダリングします。JSON の出力を回避するには、繰り返し値をフラット化するか、レコードから特定のフィールドを選択することを検討してください。
  • JDBC ドライバと ODBC ドライバは、クエリ接頭辞をサポートしていません。
  • JDBC ドライバと ODBC ドライバはパラメータ化されたクエリをサポートしていますが、パラメータを使用してクエリを準備した場合、クエリの検証のみが行われます。JDBC ドライバと ODBC ドライバを使用したパラメータ化されたクエリは、クエリのパフォーマンスには影響しません。

サポート

JDBC ドライバと ODBC ドライバのサポートについては、Cloud カスタマーケアにお問い合わせください。

料金

ドライバは無料でダウンロードできます。ただし、ドライバを使用してクエリを実行する費用は、構成によって異なります。

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