2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZOZOAdvent Calendar 2023

Day 23

BigQueryからファイルサイズとファイル数を制限してGCSにエクスポートする

Last updated at Posted at 2023-12-22

BigQueryにはテーブルデータをCloud Storageにエクスポートする機能があります。

こちらの機能を使用してエクスポートするファイルサイズ上限とファイル数を制限してエクスポートする方法についてご紹介します

ドキュメントにもある通り、エクスポートするファイルのサイズを制限する場合は、テーブルデータをパーティションで分割し、パーティションごとにエクスポートすることで実現できます。

下記のSQLでファイルサイズを制限しながらエクスポートは出来るものの、ドキュメントにもあるようにEXPORT DATAステートメントではワイルドカードを使用したURIしか使用できず、単一のURIを使用することが出来ません。

EXPORT DATA
  OPTIONS (
    uri = 'gs://temp_bucket/test_export*',
    format = 'CSV',
    compression = 'GZIP',
    overwrite = true,
    header = true,
    field_delimiter = ',')
AS (
  SELECT * EXCEPT(partition_id)
  FROM `table_name`
  WHERE partition_id = 0
)

ワイルドカードを使用したURIの場合、テーブルデータのサイズによっては複数のファイルに分割されてしまう可能性があります。そのため、当初のパーティション数以上のファイルが生成される可能性があります。

ファイルサイズ上限を制限した上でエクスポートされるファイル数も制限したい場合、EXPORT DATAステートメントではなくbqコマンド or クライアントライブラリを使う必要があります。
bqコマンド or クライアントライブラリを使う場合、EXPORT DATAステートメントのようにSQLでの抽出結果をエクスポートすることが出来ず、エクスポート対象のテーブルしか出来ません。
そのため、パーティションごとに一時テーブルを作成し、その一時テーブルを指定してエクスポートする必要があります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?