テーブルデータのエクスポート
このページでは、BigQuery テーブルから Cloud Storage にデータをエクスポートまたは抽出する方法について説明します。
BigQuery にデータを読み込んだ後、さまざまな形式でデータをエクスポートできます。BigQuery は最大 1 GB のデータを 1 つのファイルにエクスポートできます。1 GB を超えるデータをエクスポートする場合は、データを複数のファイルにエクスポートする必要があります。データを複数のファイルにエクスポートすると、さまざまなサイズのファイルになります。
Dataflow などのサービスを使用すると、データを手動でエクスポートする代わりに、BigQuery から直接読み取ることができます。Dataflow を使用した BigQuery の読み取りと書き込みの詳細については、Apache Beam ドキュメントの BigQuery I/O をご覧ください。
また、EXPORT DATA
ステートメントを使用してクエリの結果をエクスポートすることもできます。
エクスポートの制限事項
BigQuery からデータをエクスポートするときは、次の点に注意してください。
- テーブルデータをローカル ファイル、Google スプレッドシート、Google ドライブにエクスポートすることはできません。可能なエクスポート先は Cloud Storage だけです。クエリ結果の保存については、クエリ結果のダウンロードと保存をご覧ください。
- 1 つのファイルに最大 1 GB のテーブルデータをエクスポートできます。1 GB を超えるデータをエクスポートする場合は、ワイルドカードを使用してデータを複数のファイルにエクスポートします。データを複数のファイルにエクスポートすると、さまざまなサイズのファイルになります。エクスポートするファイルサイズを制御するには、データを分割し、各パーティションをエクスポートします。
- ネストや繰り返しのあるデータを CSV 形式でエクスポートすることはできません。ネストされたデータと繰り返しデータは、Avro、JSON、Parquet のエクスポートでサポートされています。
- データを JSON 形式でエクスポートするときは、INT64(整数)データ型が JSON 文字列としてエンコードされます。これは、そのデータが他のシステムで読み込まれるときに 64 ビットの精度を保持するためです。
- 単一のエクスポート ジョブで複数のテーブルからデータをエクスポートすることはできません。
- Google Cloud コンソールを使用してデータをエクスポートする場合、
GZIP
以外の圧縮タイプを選択することはできません。 - 保持ポリシーを使用して構成された Cloud Storage バケットにデータをエクスポートすると、BigQuery からバケットへのファイルの書き込みが失敗する場合があります。エクスポート ジョブの期間の保持ポリシーを緩和することを検討してください。
- JSON 形式でテーブルをエクスポートする場合、記号
<
、>
、&
は Unicode 表記の\uNNNN
に変換されます。ここで、N
は 16 進数です。たとえば、profit&loss
はprofit\u0026loss
になります。この Unicode 変換は、セキュリティの脆弱性を回避するために行われます。 EXPORT DATA
ステートメントを使用してquery_statement
でORDER BY
句を指定しない限り、エクスポートされるテーブルデータの順序は保証されません。- データのエクスポート
始める前に
このドキュメントの各タスクを実行するために必要な権限をユーザーに与える Identity and Access Management(IAM)のロールを付与します。
必要な権限
このドキュメントのタスクを実行するには、次の権限が必要です。
BigQuery テーブルからデータをエクスポートするための権限
BigQuery テーブルからデータをエクスポートするには、bigquery.tables.export
IAM 権限が必要です。
以下の各事前定義された IAM ロールには bigquery.tables.export
権限が含まれています。
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
エクスポート ジョブの実行に必要な権限
エクスポート ジョブを実行するには、bigquery.jobs.create
IAM 権限が必要です。
次の IAM 事前定義ロールには、エクスポート ジョブの実行に必要な権限が含まれています。
roles/bigquery.user
roles/bigquery.jobUser
roles/bigquery.admin
Cloud Storage バケットにデータを書き込む権限
既存の Cloud Storage バケットにデータを書き込むには、次の IAM 権限が必要です。
storage.objects.create
storage.objects.delete
次の IAM 事前定義ロールには、既存の Cloud Storage バケットにデータを書き込むために必要な権限が含まれています。
roles/storage.objectAdmin
roles/storage.admin
BigQuery での IAM のロールと権限について詳しくは、事前定義ロールと権限をご覧ください。
ロケーションに関する留意事項
データをエクスポートするには Cloud Storage バケットを同じリージョンに配置します。- BigQuery データセットが
EU
マルチリージョンにある場合、エクスポート対象のデータが含まれている Cloud Storage バケットは、同じマルチリージョンか、マルチリージョンに含まれているロケーションに存在する必要があります。たとえば、BigQuery データセットがEU
マルチリージョンにある場合、Cloud Storage バケットは EU 内のeurope-west1
ベルギー リージョンに配置できます。データセットが
US
マルチリージョンにある場合は、任意のロケーションにある Cloud Storage バケットにデータをエクスポートできます。 - データセットがリージョンにある場合、Cloud Storage バケットは同じリージョンに存在する必要があります。たとえば、データセットが
asia-northeast1
の東京リージョンにある場合、Cloud Storage バケットをASIA
マルチリージョンに配置することはできません。
- BigQuery データセットや Cloud Storage バケットなどのリージョン ストレージ リソースを選択する場合は、データの地理的管理を行うための計画を作成します。
Cloud Storage のロケーションについて詳しくは、Cloud Storage ドキュメントのバケットの保存場所をご覧ください。
ロケーション間で BigQuery データを移動する
データセットの作成後にそのロケーションを変更することはできませんが、データセットのコピーを作成することはできます。また、データセットをあるロケーションから別のロケーションに移動することはできませんが、手動でデータセットを移動(再作成)することはできます。
エクスポート形式と圧縮形式
BigQuery は、エクスポートされるデータに対して次のデータ形式と圧縮形式をサポートしています。
データ形式 | サポートされている圧縮タイプ | 詳細 |
---|---|---|
CSV | GZIP | エクスポートされるデータの CSV 区切り文字を制御するには、 ネストされたデータや繰り返しデータは、サポートされていません。 |
JSON | GZIP | ネストされたデータと繰り返しデータはサポートされます。 |
Avro | DEFLATE、SNAPPY | Avro のエクスポートでは、GZIP はサポートされていません。 ネストされたデータと繰り返しデータはサポートされます。Avro のエクスポートの詳細をご覧ください。 |
Parquet | SNAPPY、GZIP、ZSTD | ネストされたデータと繰り返しデータはサポートされます。Parquet エクスポートの詳細をご覧ください。 |
BigQuery に保存されているデータのエクスポート
テーブルデータは次の方法でエクスポートできます。
- Google Cloud コンソールを使用する
bq
コマンドライン ツールでbq extract
コマンドを使用する- API またはクライアント ライブラリを介した
extract
ジョブを送信する
テーブルデータのエクスポート
BigQuery テーブルからデータをエクスポートするには:
コンソール
Google Cloud コンソールで [BigQuery] ページを開きます。
[エクスプローラ] パネルで、プロジェクトとデータセットを開いて、テーブルを選択します。
詳細パネルで、[エクスポート] をクリックして [Cloud Storage にエクスポート] を選択します。
[Google Cloud Storage へのテーブルのエクスポート] ダイアログで、次の操作を行います。
- [Google Cloud Storage のロケーション] で、データをエクスポートするバケット、フォルダ、またはファイルを参照します。
- [エクスポート形式] で、エクスポートするデータの形式を CSV、JSON(改行区切り)、Avro、または Parquet から選択します。
- [圧縮] で、圧縮形式を選択するか、
None
を選択して圧縮なしにします。 - [エクスポート] をクリックしてテーブルをエクスポートします。
ジョブの進行状況を確認するには、ナビゲーションの上部にある [エクスポート] ジョブの [ジョブ履歴] を確認します。
SQL
EXPORT DATA
ステートメントを使用します。
次の例では、mydataset.table1
という名前のテーブルから選択したフィールドをエクスポートします。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
EXPORT DATA OPTIONS ( uri = 'gs://bucket/folder/*.csv', format = 'CSV', overwrite = true, header = true, field_delimiter = ';') AS ( SELECT field1, field2 FROM mydataset.table1 ORDER BY field1 );
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリの実行をご覧ください。
bq
bq extract
コマンドを使用し、--destination_format
フラグを指定します。
(省略可)--location
フラグを指定して、その値をロケーションに設定します。
次のフラグを使用することもできます。
--compression
: エクスポートされるファイルに使用する圧縮タイプ。--field_delimiter
: CSV エクスポートの出力ファイル内での列間の境界を示す文字。タブ区切り文字には\t
とtab
の両方を使用できます。--print_header
: 指定すると、CSV などのヘッダーを持つ形式でヘッダー行が出力されます。
bq extract --location=location \ --destination_format format \ --compression compression_type \ --field_delimiter delimiter \ --print_header=boolean \ project_id:dataset.table \ gs://bucket/filename.ext
ここで
- location はロケーションの名前です。
--location
フラグは省略可能です。たとえば、BigQuery を東京リージョンで使用している場合は、このフラグの値をasia-northeast1
に設定します。.bigqueryrc ファイルを使用してロケーションのデフォルト値を設定できます。 - format は、エクスポートされるデータの形式です(
CSV
、NEWLINE_DELIMITED_JSON
、AVRO
、またはPARQUET
)。 - compression_type は、データ形式に対してサポートされる圧縮タイプです。エクスポート形式と圧縮形式をご覧ください。
- delimiter は、CSV エクスポートの列間の境界を示す文字です。タブの名前として受け入れられるのは
\t
とtab
です。 - boolean は
true
またはfalse
です。true
に設定すると、データ形式がヘッダーをサポートする場合に、エクスポートされるデータにヘッダー行が出力されます。デフォルト値はtrue
です。 - project_id はプロジェクト ID です。
- dataset はソース データセットの名前です。
- table は、エクスポートするテーブルです。
- bucket は、データのエクスポート先の Cloud Storage バケットの名前です。BigQuery データセットと Cloud Storage バケットは同じロケーションに存在する必要があります。
- filename.ext は、エクスポートされるデータファイルの名前と拡張子です。ワイルドカードを使用して複数のファイルにエクスポートできます。
例:
たとえば、次のコマンドは、mydataset.mytable
を myfile.csv
という名前の gzip 圧縮ファイルにエクスポートします。myfile.csv
は、example-bucket
という名前の Cloud Storage バケットに保存されます。
bq extract \ --compression GZIP \ 'mydataset.mytable' \ gs://example-bucket/myfile.csv
デフォルトの出力形式は CSV です。JSON または Avro 形式でエクスポートするには、destination_format
フラグを NEWLINE_DELIMITED_JSON
または AVRO
に設定します。次に例を示します。
bq extract \ --destination_format NEWLINE_DELIMITED_JSON \ 'mydataset.mytable' \ gs://example-bucket/myfile.json
次のコマンドは、mydataset.mytable
を、Snappy を使用して圧縮された Avro ファイルにエクスポートします。ファイル名は、myfile.avro
になります。myfile.avro
は、example-bucket
という名前の Cloud Storage バケットにエクスポートされます。
bq extract \ --destination_format AVRO \ --compression SNAPPY \ 'mydataset.mytable' \ gs://example-bucket/myfile.avro
API
データをエクスポートするには、extract
ジョブを作成し、ジョブ構成に入力します。
(省略可)ジョブリソースの jobReference
セクションにある location
プロパティでロケーションを指定します。
抽出ジョブを作成し、抽出元の BigQuery データと抽出先の Cloud Storage を指定します。
プロジェクト ID、データセット ID、テーブル ID を含む
sourceTable
構成オブジェクトを使用して、ソーステーブルを指定します。destination URI(s)
プロパティは、gs://bucket/filename.ext
の形式で完全修飾する必要があります。各 URI に '*' ワイルドカード文字を 1 つ含めることができますが、このワイルドカードはバケット名より後にある必要があります。configuration.extract.destinationFormat
プロパティを設定して、データ形式を指定します。たとえば、JSON ファイルとしてエクスポートするには、このプロパティの値をNEWLINE_DELIMITED_JSON
に設定します。ジョブ ステータスを確認するには、最初のリクエストで返されるジョブの ID を指定して jobs.get(job_id) を呼び出します。
status.state = DONE
である場合、ジョブは正常に完了しています。status.errorResult
プロパティが存在する場合は、リクエストが失敗したことを意味し、該当するオブジェクトにエラーを説明する情報が格納されます。status.errorResult
が存在しない場合、ジョブは正常に完了しましたが、致命的でないエラーが発生した可能性があります。致命的でないエラーは、返されたジョブ オブジェクトのstatus.errors
プロパティに格納されています。
API に関する注:
おすすめの方法として、
jobs.insert
を呼び出して読み込みジョブを作成する際に、一意の ID を生成して、その ID をjobReference.jobId
として渡します。この手法を使用すると、ネットワーク障害時にクライアントは既知のジョブ ID を使ってポーリングまたは再試行できるので、頑健性が向上します。特定のジョブ ID で
jobs.insert
を呼び出す操作は「べき等」です。つまり、同じジョブ ID で何回でも再試行できますが、成功するオペレーションはそのうちの 1 回だけです。
C#
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの C# の手順に沿って設定を行ってください。詳細については、BigQuery C# API のリファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Go の手順に沿って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Node.js の手順に沿って設定を行ってください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
PHP
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの PHP の手順に沿って設定を行ってください。詳細については、BigQuery PHP API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Python の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Ruby の手順に沿って設定を行ってください。詳細については、BigQuery Ruby API のリファレンス ドキュメントをご覧ください。
Avro エクスポートの詳細
BigQuery は次の方法で Avro 形式のデータを表現します。
- エクスポートされたファイルは Avro コンテナ ファイルになります。
- 各 BigQuery 行は 1 つの Avro レコードとして表されます。ネストされたデータは、ネストされたレコード オブジェクトによって表されます。
REQUIRED
フィールドは、対応する Avro 型として表されます。たとえば、BigQuery のINTEGER
型は Avro のLONG
型に対応しています。NULLABLE
フィールドは、対応する型と "null" の Avro ユニオンとして表されます。REPEATED
フィールドは Avro 配列として表されます。TIMESTAMP
データ型は、抽出ジョブとエクスポート データ SQL の両方のデフォルトでtimestamp-micros
論理型(Avro のLONG
型にアノテーションが追加されます)として表されます。(注意:use_avro_logical_types=False
をExport Data Options
に追加して論理型を無効にし、タイムスタンプ列ではなくstring
型を使用することができますが、抽出ジョブでは常に Avro の論理型を使用します。)DATE
データ型はエクスポート データ SQL のデフォルトでdate
論理型(Avro のINT
型にアノテーションが追加されます)として表されますが、抽出ジョブのデフォルトではstring
型として表されます。(注:use_avro_logical_types=False
をExport Data Options
に追加して論理型を無効にしたり、フラグ--use_avro_logical_types=True
を使用して抽出ジョブの論理型を有効にしたりできます)。TIME
データ型はエクスポート データ SQL のデフォルトでtimestamp-micro
論理型(Avro のLONG
型にアノテーションが追加されます)として表されますが、抽出ジョブのデフォルトではstring
型として表されます。(注:use_avro_logical_types=False
をExport Data Options
に追加して論理型を無効にしたり、フラグ--use_avro_logical_types=True
を使用して抽出ジョブの論理型を有効にしたりできます)。DATETIME
データ型はデフォルトではエクスポート データ SQL のデフォルトで Avro のSTRING
型(カスタムの名前付き論理型datetime
の文字列型)として表されますが、抽出ジョブのデフォルトではstring
型として表されます。(注:use_avro_logical_types=False
をExport Data Options
に追加して論理型を無効にしたり、フラグ--use_avro_logical_types=True
を使用して抽出ジョブの論理型を有効にしたりできます)。
Avro データのエクスポートでは、柔軟な列名はサポートされません。
注: 文字列型のエンコードは、インターネット技術特別調査委員会の RFC 3339 仕様に従います。
* パラメータ化されたNUMERIC(P[, S])
データ型と BIGNUMERIC(P[, S])
データ型では、精度とスケール型のパラメータが Avro の decimal 論理型に移転されます。Avro 形式を GZIP 圧縮とともに使用することはできません。Avro データを圧縮するには、bq
コマンドライン ツールまたは API を使用して、Avro データでサポートされている圧縮タイプの 1 つ(DEFLATE
または SNAPPY
)を指定します。
Parquet エクスポートの詳細
BigQuery は、GoogleSQL のデータ型を次の Parquet データ型に変換します。
BigQuery のデータ型 | Parquet のプリミティブ型 | Parquet の論理型 |
---|---|---|
整数 | INT64 |
NONE |
数値 | FIXED_LEN_BYTE_ARRAY |
DECIMAL (precision = 38, scale = 9) |
Numeric(P[, S]) | FIXED_LEN_BYTE_ARRAY |
DECIMAL (precision = P, scale = S) |
BigNumeric | FIXED_LEN_BYTE_ARRAY |
DECIMAL (precision = 76, scale = 38) |
BigNumeric(P[, S]) | FIXED_LEN_BYTE_ARRAY |
DECIMAL (precision = P, scale = S) |
浮動小数点数 | FLOAT |
NONE |
ブール値 | BOOLEAN |
NONE |
文字列 | BYTE_ARRAY |
STRING (UTF8) |
バイト | BYTE_ARRAY |
NONE |
日付 | INT32 |
DATE |
日時 | INT64 |
TIMESTAMP (isAdjustedToUTC = false, unit = MICROS) |
時間 | INT64 |
TIME (isAdjustedToUTC = true, unit = MICROS) |
タイムスタンプ | INT64 |
TIMESTAMP (isAdjustedToUTC = false, unit = MICROS) |
Parquet スキーマでは、ネストされたデータをグループとして表し、繰り返しレコードを繰り返しグループとして表します。BigQuery でネストされた繰り返しデータを使用する詳しい方法については、ネストされた繰り返し列の指定をご覧ください。
DATETIME
型には、次の回避策を使用できます。
- ステージング テーブルにファイルを読み込みます。その後、SQL クエリを使用してフィールドを
DATETIME
にキャストし、結果を新しいテーブルに保存します。詳細については、列のデータ型の変更をご覧ください。 - 読み込みジョブで
--schema
フラグを使用してテーブルのスキーマを指定します。日時列をcol:DATETIME
として定義します。
1 つまたは複数のファイルへのデータのエクスポート
destinationUris
プロパティには、BigQuery によるファイルの 1 つ以上のエクスポート先とファイル名を指定します。
BigQuery は URI ごとに 1 つのワイルドカード演算子(*)をサポートします。ワイルドカードは、バケット名の中を除いて URI のどこでも使用できます。ワイルドカード演算子を使用すると、指定したパターンに基づいて複数の分割ファイルが作成されます。ワイルドカード演算子は、左側に 0 が埋められた 12 桁の数値(0 から始まるシーケンス番号)に置き換えられます。たとえば、ファイル名の最後にワイルドカードがある URI の場合、最初のファイルに 000000000000
が追加され、2 番目のファイルに 000000000001
が追加されます。
destinationUris
プロパティで使用できるオプションを次の表に示します。
destinationUris オプション |
|
---|---|
単一の URI |
1 GB 以下のテーブルデータをエクスポートする場合は、単一の URI を使用します。ほとんどの場合、エクスポートされるデータは最大値の 1 GB に満たないため、このオプションは最も一般的なユースケースとなります。 プロパティの定義:
作成されるファイル: gs://my-bucket/file-name.json |
単一のワイルドカード URI |
エクスポートされるデータが最大値の 1 GB を超えそうな場合は、単一のワイルドカード URI を使用します。データは、指定したパターンに基づいて複数のファイルに分割されます。エクスポートされたファイルのサイズは一定ではありません。 ファイル名以外の URI コンポーネントでワイルドカードを使用する場合、データをエクスポートする前に、そのパス コンポーネントが存在していないことを確認してください。 プロパティの定義:
作成されるファイル: gs://my-bucket/file-name-000000000000.json gs://my-bucket/file-name-000000000001.json gs://my-bucket/file-name-000000000002.json ... |
エクスポートするファイルサイズを制限する
1 回に 1 GB を超えるデータをエクスポートする場合は、ワイルドカードを使用して複数のファイルにデータをエクスポートする必要があります。また、ファイルサイズは異なります。エクスポートする各ファイルの最大サイズを制限する必要がある場合は、データをランダムに分割してから各パーティションをファイルにエクスポートするという方法があります。
- 必要なパーティションの数を決定します。これは、データの合計サイズを目的のエクスポート ファイルのサイズで割った値です。たとえば、8,000 MB のデータがあり、各エクスポート ファイルを約 20 MB にする場合、400 パーティションが必要です。
export_id
というランダムに生成された新しい列でパーティション分割およびクラスタ化される、新しいテーブルを作成します。次の例は、目的のファイルサイズにするためにn
パーティションを必要とするsource_table
という既存のテーブルから新しいprocessed_table
を作成する方法を示しています。CREATE TABLE my_dataset.processed_table PARTITION BY RANGE_BUCKET(export_id, GENERATE_ARRAY(0, n, 1)) CLUSTER BY export_id AS ( SELECT *, CAST(FLOOR(n*RAND()) AS INT64) AS export_id FROM my_dataset.source_table );
0 から
n-1
までの整数i
ごとに、次のクエリでEXPORT DATA
ステートメントを実行します。SELECT * EXCEPT(export_id) FROM my_dataset.processed_table WHERE export_id = i;
圧縮されたテーブルの抽出
Go
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Go の手順に沿って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Java の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Node.js の手順に沿って設定を行ってください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートの Python の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
割り当てポリシー
エクスポート ジョブの割り当てについては、「割り当てと制限」のページのエクスポート ジョブをご覧ください。
現在の割り当て使用量を確認する
クエリ、読み込み、抽出、コピージョブの現在の使用状況を確認するには、INFORMATION_SCHEMA
クエリを実行して、指定した期間に実行されたジョブに関するメタデータを表示します。現在の使用量と割り当て上限を比較することで、特定のタイプのジョブの割り当て使用量がわかります。次のクエリ例では、INFORMATION_SCHEMA.JOBS
ビューを使用して、プロジェクトごとのクエリ、読み込み、抽出、コピーのジョブの数を一覧表示します。
SELECT sum(case when job_type="QUERY" then 1 else 0 end) as QRY_CNT, sum(case when job_type="LOAD" then 1 else 0 end) as LOAD_CNT, sum(case when job_type="EXTRACT" then 1 else 0 end) as EXT_CNT, sum(case when job_type="COPY" then 1 else 0 end) as CPY_CNT FROM `region-eu`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE date(creation_time)= CURRENT_DATE()
エクスポートしたバイト数の通知を提供する Cloud Monitoring アラート ポリシーを設定できます。
Google Cloud コンソールで、[Monitoring] ページに移動します。
ナビゲーション パネルで、[
Metrics Explorer] を選択します。
MQL クエリエディタで、次の例に示すように、1 日あたりのエクスポート バイト数をモニタリングするアラートを設定します。
fetch consumer_quota | filter resource.service == 'bigquery.googleapis.com' | { metric serviceruntime.googleapis.com/quota/rate/net_usage | align delta_gauge(1m) | group_by [resource.project_id, metric.quota_metric, resource.location], sum(value.net_usage) ; metric serviceruntime.googleapis.com/quota/limit | filter metric.limit_name == 'ExtractBytesPerDay' | group_by [resource.project_id, metric.quota_metric, resource.location], sliding(1m), max(val()) } | ratio | every 1m | condition gt(val(), 0.01 '1')
アラートを設定するには、[クエリを実行] をクリックします。
詳細については、MQL のアラート ポリシーをご覧ください。
料金
BigQuery からのデータのエクスポートは無料です。EXPORT DATA
ステートメントを使用する場合、SELECT
クエリに対して課金されます。BigQuery の料金設定の詳細については、料金設定のページをご覧ください。
データのエクスポート後は、Cloud Storage にデータを保存することで料金が発生します。Cloud Storage の料金設定の詳細については、クラウドの料金設定のページをご覧ください。
テーブルのセキュリティ
BigQuery でテーブルへのアクセスを制御するには、テーブルのアクセス制御の概要をご覧ください。
次のステップ
- Google Cloud コンソールの使用で、Google Cloud コンソールの詳細を確認する。
bq
コマンドライン ツールの詳細については、bq
コマンドライン ツールの使用をご覧ください。- BigQuery API クライアント ライブラリを使ってアプリケーションを作成する方法を学習するには、クライアント ライブラリ クイックスタート ガイドをご覧ください。