BigQuery Data Transfer Service for Cloud Storage では、Cloud Storage から BigQuery への定期的なデータ読み込みをスケジュールできます。Cloud Storage のパスと宛先テーブルの両方をパラメータ化して、日付で整理された Cloud Storage バケットからデータを読み込むことができます。
サポートされているファイル形式
現在 BigQuery Data Transfer Service では、次のいずれかの形式で Cloud Storage からのデータの読み込みをサポートしています。
- カンマ区切り値(CSV)
- JSON(改行区切り)
- Avro
- Parquet
- ORC
サポートされている圧縮タイプ
BigQuery Data Transfer Service for Cloud Storage は、圧縮データの読み込みをサポートしています。BigQuery Data Transfer Service でサポートされている圧縮タイプは、BigQuery の読み込みジョブでサポートされているものと同じです。詳細については、圧縮データと非圧縮データを読み込むをご覧ください。
Cloud Storage URI
Cloud Storage データソースからデータを読み込むには、Cloud Storage URI を指定する必要があります。
Cloud Storage URI は、バケット名とオブジェクト(ファイル名)で構成されます。たとえば、Cloud Storage バケットの名前が mybucket
でデータファイルの名前が myfile.csv
の場合、バケットの URI は gs://mybucket/myfile.csv
になります。データが複数のファイルに分かれている場合は、URI にワイルドカードを使用できます。詳細については、Cloud Storage のリクエスト URI をご覧ください。
BigQuery Data Transfer Service は、最初のダブル スラッシュ以降に複数の連続スラッシュが含まれるソース URI をサポートしていません。Cloud Storage では、オブジェクト名に複数の連続スラッシュ("/")文字を含めることができます。一方、BigQuery Data Transfer Service では、複数の連続スラッシュは単一のスラッシュに変換されます。たとえば、gs://bucket/my//object//name
というソース URI は Cloud Storage では有効ですが、BigQuery Data Transfer Service では機能しません。
Cloud Storage URI を取得するには:
Cloud Storage Console を開きます。
ソースデータを含むオブジェクト(ファイル)の場所に移動します。
Cloud Storage Console の上部に、オブジェクトのパスが表示されます。URI を作成するには、
gs://bucket/file
を適切なパス(例:gs://mybucket/myfile.json
)に置き換えます。bucket は Cloud Storage バケット名で、file はデータを含むオブジェクト(ファイル)の名前です。
Cloud Storage の URI でのワイルドカードの使用
Cloud Storage データを分割し、共通のベース名を持つ複数のファイルに保存した場合、そのデータを読み込むときに URI でワイルドカードを使用できます。
Cloud Storage の URI にワイルドカードを追加するには、ベース名にアスタリスク(*)を追加します。たとえば、fed-sample000001.csv
と fed-sample000002.csv
という 2 つのファイルがある場合、バケット URI は gs://mybucket/fed-sample*
になります。このワイルドカード URI は、Cloud Console または gcloud
コマンドライン ツールで使用できます。
バケット内のオブジェクト(ファイル名)には複数のワイルドカードを使用できます。ワイルドカードは、オブジェクト名の任意の場所で使用できます。
ワイルドカードが gs://bucket/
内のディレクトリを展開することはありません。たとえば、gs://bucket/dir/*
で dir
ディレクトリ内のファイルを見つけることはできますが、gs://bucket/dir/subdir/
サブディレクトリ内のファイルを見つけることはできません。
ワイルドカードを使用せずに接頭辞に一致させることもできません。たとえば、gs://bucket/dir
は gs://bucket/dir/file.csv
とも gs://bucket/file.csv
とも一致しません。
ただし、バケット内のファイル名には複数のワイルドカードを使用できます。たとえば、gs://bucket/dir/*/*.csv
は gs://bucket/dir/subdir/file.csv
と一致します。
パラメータ化されたテーブル名と組み合わせたワイルドカードの使用例については、転送でのランタイム パラメータの使用をご覧ください。
ロケーションに関する留意事項
Cloud Storage バケットは、BigQuery の宛先データセットのリージョンまたはマルチリージョンと互換性のあるリージョンまたはマルチリージョンに存在する必要があります。
データを転送するには Cloud Storage バケットを同じリージョンに配置する。- BigQuery データセットがマルチリージョン ロケーションにある場合、移行対象のデータが含まれている Cloud Storage バケットは、同じロケーションのリージョン バケットまたはマルチリージョン バケット内になければなりません。たとえば、BigQuery データセットが EU にある場合、Cloud Storage バケットは EU のリージョン バケットまたはマルチリージョン バケットに存在する必要があります。
- データセットがリージョン ロケーションにある場合、Cloud Storage バケットは同じロケーションのリージョン バケットに存在する必要があります。たとえば、データセットが東京リージョンにある場合、Cloud Storage バケットは東京のリージョン バケットにある必要があります。
- 例外: データセットが米国のマルチリージョン ロケーションにある場合、任意のリージョンまたはマルチリージョン ロケーションにある Cloud Storage バケットからデータを転送できます。
転送とリージョンについて詳しくは、データセットのロケーションと転送をご覧ください。
Cloud Storage のロケーションについて詳しくは、Cloud Storage ドキュメントのバケットのロケーションをご覧ください。
料金
読み込みジョブに対する標準の BigQuery の割り当てと上限が適用されます。
転送を設定する際にアップロード済みのデータの削除を指定しない限り、データが BigQuery にアップロードされたあと、Cloud Storage バケットから自動で削除されることはありません。Cloud Storage の転送の設定をご覧ください。
詳細については、転送の料金ページをご覧ください。
割り当てと上限
BigQuery Data Transfer Service は読み込みジョブを使用して、Cloud Storage データを BigQuery に読み込みます。
定期的な Cloud Storage 読み込みジョブには、BigQuery の読み込みジョブに対するすべての割り当てと上限が適用されます。
次のステップ
- Cloud Storage の転送の構成をご覧ください。
- Cloud Storage の転送でのランタイム パラメータの使用をご覧ください。
- BigQuery Data Transfer Service の詳細をご覧ください。