外部データソースの概要

このページでは、BigQuery の外部に保存されたデータに対してクエリを実行する方法の概要を説明します。

概要

外部データソース(フェデレーション データソースとも呼ばれます)は、データが BigQuery に格納されていない場合でも直接クエリできるデータソースです。データの読み込みまたはストリーミングの代わりに、外部データソースを参照するテーブルを作成します。

BigQuery では、次のデータに対して直接クエリを実行できます。

外部データソースを使用する場合:

  • 外部データソース(BigQuery の外部の場所)からデータに対してクエリを実行し、クリーニングした結果を BigQuery ストレージに書き込むことによって、1 つのパスでデータの読み込みとクリーニングを実行します。
  • 他のテーブルと結合する少量のデータを頻繁に変更します。外部データソースであるため、頻繁に変更されるデータは更新されるたびに再読み込みする必要がありません。

外部データソースの制限事項

外部データソースの場合、次のような制限があります。

  • BigQuery では外部データソースに対してデータの整合性が保証されません。クエリの実行中に基になるデータが変更されると、予期しない動作が発生する可能性があります。
  • 外部データソースに対するクエリのパフォーマンスは、ネイティブな BigQuery テーブルのデータに対するクエリよりも低くなる可能性があります。クエリ速度を優先する場合は、外部データソースを設定するのではなく、データを BigQuery に読み込みます。外部データソースを含むクエリのパフォーマンスは、外部ストレージのタイプに依存します。たとえば、Google Cloud Storage に格納されたデータのクエリは、Google ドライブに格納されたデータよりも高速です。一般的に、外部データソースのクエリ パフォーマンスは、その外部ストレージからデータを直接読み取る処理と同等になります。
  • TableDataList JSON API メソッドを使用して、外部データソースに存在するテーブルのデータを取得することはできません。詳しくは、Tabledata: list をご覧ください。

    この制限を回避するには、宛先テーブルにクエリ結果を保存します。その後、結果テーブルで TableDataList メソッドを使用できます。

  • 外部データソースからデータをエクスポートする BigQuery ジョブは実行できません。

    この制限を回避するには、宛先テーブルにクエリ結果を保存します。その後、結果テーブルに対してエクスポート ジョブを実行できます。

  • ワイルドカード テーブルのクエリで外部データソースを参照することはできません。

  • 現在のところ、Parquet または ORC 形式で保存された外部データに対してクエリを行うことはできません。
  • 外部データソースに対してクエリを実行する場合、結果はキャッシュされません。同じクエリを複数回発行する場合でも、外部テーブルに対するクエリごとに課金されます。頻繁には変更されない外部テーブルに対してクエリを繰り返し発行する必要がある場合は、クエリ結果を永続的なテーブルに書き込み、永続的なテーブルに対してクエリを実行することを検討してください。
  • データセットのロケーションとは異なるリージョンに格納されているデータを参照する外部テーブルを作成することはできません。たとえば、米国ベースのデータセットで外部テーブルを作成する場合、データを含む Cloud Storage バケットは、米国内のリージョン バケットまたはマルチリージョン バケットにする必要があります。
  • 現在、Cloud Bigtable のデータのクエリは、次のリージョンとゾーンでのみ利用できます。
    リージョン ゾーン
    us-central1

    us-central1-a

    us-central1-b

    us-central1-c

    us-central1-f

    europe-west1

    europe-west1-b

    europe-west1-c

    europe-west1-d

  • Cloud Bigtable 外部データソースに対する最大同時クエリ数は 4 です。

外部データソースの割り当て

外部データソースの制限事項は、[割り当てのポリシー] ページの読み込みジョブで説明されている読み込みジョブの制限事項と同じです。

外部データソースの料金

外部データソースに対してクエリを実行する場合、クエリによって読み取られたバイト数に基づいて料金が請求されます。詳細については、クエリの料金をご覧ください。

また、アプリケーションの価格設定のガイドラインに従い、ソース アプリケーションで使用されるデータやリソースの保存に対しても請求されます。

  • Google Cloud Storage の料金の詳細については、Cloud Storage の料金をご覧ください。
  • Google Cloud Bigtable の料金の詳細については、料金をご覧ください。
  • Google ドライブの料金の詳細については、料金をご覧ください。

次のステップ

  • Google Cloud Bigtable に保存されているデータに対してクエリを実行する方法を学ぶ
  • Google Cloud Storage に保存されているデータに対してクエリを実行する方法を学ぶ
  • Google ドライブに保存されているデータに対してクエリを実行する方法を学ぶ
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...