データセットのロケーション

このページでは、データのロケーションのコンセプトと、データセットを作成できるロケーションの種類について説明します。データセットのロケーションを設定する方法については、データセットの作成をご覧ください。

各リージョンの BigQuery の料金については、料金ページをご覧ください。

主なコンセプト

ロケーションまたはリージョンのタイプ

ロケーションには、2 つの種類があります。

  • リージョンは、ロンドンなどの特定の地理的な場所となります。

  • マルチリージョンは、米国などの、2 つ以上の地理的な場所を含む広い地理的なエリアとなります。

データセットのロケーション

データセットの作成時に BigQuery データを保存するロケーションを指定します。データセットを作成した後、ロケーションを変更することはできませんが、データセットを別のロケーションにコピーするか、手動でデータセットを別のロケーションに移動(再作成)することができます。

BigQuery は、クエリを実行するテーブルを含むデータセットと同じ場所にあるクエリを処理します。

BigQuery では、サービス固有の規約に従って、選択したロケーションにデータが保存されます。

サポートされるリージョン

リージョンのロケーション

リージョンの説明 リージョン名
南北アメリカ
ラスベガス us-west4
ロサンゼルス us-west2
モントリオール northamerica-northeast1
北バージニア us-east4
オレゴン us-west1
ソルトレイクシティ us-west3
サンパウロ southamerica-east1
サウスカロライナ us-east1
ヨーロッパ
ベルギー europe-west1
フィンランド europe-north1
フランクフルト europe-west3
ロンドン europe-west2
オランダ europe-west4
チューリッヒ europe-west6
アジア太平洋
香港 asia-east2
ジャカルタ asia-southeast2
ムンバイ asia-south1
大阪 asia-northeast2
ソウル asia-northeast3
シンガポール asia-southeast1
シドニー australia-southeast1
台湾 asia-east1
東京 asia-northeast1

マルチリージョン

マルチリージョンの説明 マルチリージョン名
欧州連合の加盟国内のデータセンター1 EU
米国内のデータセンター US

1 EU マルチリージョン内のデータは europe-west2(ロンドン)や europe-west6(チューリッヒ)のデータセンターには保存されません。

ロケーションの指定

BigQuery は、データの読み込み、データのクエリ、データのエクスポートを行うときに、リクエストで参照されるデータセットに基づいてジョブを実行するロケーションを決定します。たとえば、クエリが asia-northeast1 リージョンに格納されたデータセット内のテーブルを参照する場合、クエリジョブはそのリージョンで実行されます。クエリがデータセット内に含まれるテーブルやその他のリソースを参照せず、宛先テーブルが指定されていない場合、クエリジョブは US リージョンで実行されます。プロジェクトに US 以外のリージョンで定額料金の予約があり、クエリがデータセット内に含まれるテーブルやその他のリソースを参照していない場合は、ジョブの送信時に定額料金の予約があるロケーションを明示的に指定する必要があります。

ジョブを明示的に実行するロケーションは、次の方法で指定できます。

  • Cloud Console を使用してデータをクエリする場合は、[展開] > [クエリの設定] をクリックし、[処理を行うロケーション] で [自動選択] をクリックして、データのロケーションを選択します。
  • bq コマンドライン ツールを使用する場合、--location グローバル フラグを指定し、その値を該当するロケーションに設定します。
  • API を使用する場合は、ジョブリソースjobReference セクションにある location プロパティで該当するリージョンを指定します。

指定したロケーションがリクエスト内のデータセットのロケーションと一致しない場合、BigQuery はエラーを返します。

ロケーションに関する留意事項

データのロケーションを選択するときは、次の点を考慮してください。

  • BigQuery データセットと外部データソースを同じロケーションに配置する。
    • Cloud Storage などの外部データソースのデータをクエリする場合、クエリするデータは BigQuery データと同じロケーションに存在する必要があります。たとえば、BigQuery データセットが EU のマルチリージョン ロケーションにある場合、クエリ対象のデータが含まれている Cloud Storage バケットは EU のマルチリージョン バケットに存在する必要があります。データセットが米国のマルチリージョン ロケーションにある場合、Cloud Storage バケットは米国のマルチリージョン バケットに存在する必要があります。
    • データセットがリージョン ロケーションにある場合、クエリ対象のデータが含まれている Cloud Storage バケットは、同じロケーションのリージョン バケットに存在する必要があります。たとえば、データセットが東京リージョンにある場合、Cloud Storage バケットは東京のリージョン バケットである必要があります。
    • 外部データセットが Cloud Bigtable にある場合、データセットは米国または EU のマルチリージョン ロケーションに存在する必要があります。Cloud Bigtable データは、サポートされている Cloud Bigtable のロケーションのいずれかに存在する必要があります。
    • ロケーションに関する考慮事項は、Google ドライブの外部データソースには適用されません。
  • データを読み込むには、Cloud Storage バケットを同じリージョンに配置する
    • BigQuery データセットがマルチリージョン ロケーションにある場合、読み込み対象のデータが含まれている Cloud Storage バケットは、同じロケーションのリージョン バケットまたはマルチリージョン バケット内になければなりません。たとえば、BigQuery データセットが EU にある場合、Cloud Storage バケットは EU のリージョンまたはマルチリージョン バケットに存在する必要があります。
    • データセットがリージョン ロケーションにある場合、Cloud Storage バケットは同じロケーションのリージョン バケットに存在する必要があります。たとえば、データセットが東京リージョンにある場合、Cloud Storage バケットは東京のリージョン バケットである必要があります。
    • 例外: データセットが米国のマルチリージョン ロケーションにある場合、任意のリージョンまたはマルチリージョン ロケーションにある Cloud Storage バケットからデータを読み込むことができます。
  • データをエクスポートするには Cloud Storage バケットを同じリージョンに配置する
    • データをエクスポートする場合、リージョンまたはマルチリージョンの Cloud Storage バケットを BigQuery データセットと同じロケーションに配置する必要があります。たとえば、BigQuery データセットが EU のマルチリージョン ロケーションにある場合、エクスポート対象のデータが含まれている Cloud Storage バケットは EU のリージョンまたはマルチリージョン ロケーションに存在する必要があります。
    • データセットがリージョン ロケーションにある場合、Cloud Storage バケットは同じロケーションのリージョン バケットに存在する必要があります。たとえば、データセットが東京リージョンにある場合、Cloud Storage バケットは東京のリージョン バケットである必要があります。
    • 例外: データセットが米国のマルチリージョン ロケーションにある場合、任意のリージョンまたはマルチリージョン ロケーションにある Cloud Storage バケットにデータをエクスポートできます。
  • データ管理計画を作成する
    • BigQuery データセットや Cloud Storage バケットなどのリージョン ストレージ リソースを選択する場合は、データの地理的管理を行うための計画を作成します。

Cloud Storage のロケーションの詳細については、Cloud Storage のドキュメントのバケットのロケーションをご覧ください。

ロケーション間での BigQuery データの移動

データセットの作成後にそのロケーションを変更することはできませんが、データセットのコピーを作成することはできます。また、データセットをあるロケーションから別のロケーションに移動することはできませんが、手動でデータセットを移動(再作成)することはできます。BigQuery Data Transfer Service は、数多くのリージョンで BigQuery データセットにデータを転送できます。

データセットのコピー

データセットをコピーする手順(リージョン間でのコピーを含む)については、データセットのコピーをご覧ください。

データセットの移動

データセットをあるロケーションから別のロケーションに手動で移動するには、次の手順に従います。

  1. BigQuery テーブルから、データセットと同じロケーションにあるリージョンまたはマルチリージョンの Cloud Storage バケットにデータをエクスポートします。たとえば、データセットが EU のマルチリージョン ロケーションにある場合は、EU のリージョン バケットまたはマルチリージョン バケットにデータをエクスポートします。

    BigQuery からのデータのエクスポートに対しては課金されませんが、エクスポートしたデータを Cloud Storage に保存する場合は課金の対象になります。BigQuery からのエクスポートには、エクスポート ジョブの上限が適用されます。

  2. Cloud Storage バケットから新しいロケーションのリージョン バケットまたはマルチリージョン バケットに、データをコピーするか移動します。たとえば、米国のマルチリージョン ロケーションから東京のリージョン ロケーションにデータを移動すると、データは東京のリージョン バケットに転送されます。Cloud Storage オブジェクトの転送について詳しくは、Cloud Storage ドキュメントのオブジェクトのコピー、名前変更、移動をご覧ください。

    リージョン間でデータを転送すると、Cloud Storage でネットワークの下り(外向き)料金が発生することに注意してください。

  3. 新しいロケーションの Cloud Storage バケットにデータを転送した後、新しい BigQuery データセットを(新しいロケーションに)作成します。次に、Cloud Storage バケットから BigQuery にデータを読み込みます。

    BigQuery へのデータの読み込みに対しては課金されませんが、Cloud Storage にデータを保存した場合は課金の対象となり、データまたはバケットを削除するまで料金が請求されます。読み込まれたデータを BigQuery に保存することについても、請求の対象になります。BigQuery へのデータの読み込みには、読み込みジョブの上限が適用されます。

また、Cloud Composer を使用して、大規模なデータセットをプログラムで移動し、コピーすることもできます。

Cloud Storage を使用した大量のデータセットの保存や移動に関する詳細は、Cloud Storage とビッグデータの使用をご覧ください。

BigQuery データセットへのデータの転送

BigQuery Data Transfer Service は、BigQuery のソースからコピー先データセットにデータを転送(コピー)します。BigQuery と同様に、BigQuery Data Transfer Service はマルチリージョン リソースです。

BigQuery データセットのロケーションは、BigQuery Data Transfer Service によって転送されるデータを格納するための宛先データセットを作成する際に指定されます。転送を設定すると、転送構成自体は宛先データセットと同じロケーションに設定されます。BigQuery Data Transfer Service では、ターゲットの BigQuery データセットと同じロケーションにあるデータが処理され、ステージングされます。

BigQuery に転送したいデータにリージョンを設定することもできます。ほとんどの場合、データが格納されるリージョンと BigQuery の宛先データセットのロケーションとの間には関係がありません。他の種類の転送では、データセットとソースデータは同じリージョン、あるいは互換リージョンの中に置く必要があります。

転送とリージョン互換性について詳しくは、データセットのロケーションと転送をご覧ください。

次のステップ