見出し画像

[SQL Tips] BigQueryの大規模データ処理コストを削減するトリック:Google Cloud Storageを活用した方法

BigQueryでSQLを実行してデータを取得する際、Pythonを使って特定のデータを選択する方法として、以下のようなパターンがよく見られます。

bq_client = bigquery.Client(...)
for i in python_list:
    sql = f"""SELECT * FROM table_a WHERE id = '{i}' """
    df = bq_client.query(sql).to_dataframe()
    all_df.append(df, ignore_index=True)

これはシンプルな方法ですが、「table_a」が非常に大きい場合に問題があります。例えば、table_aのサイズが500GBだとして、100個のIDを調べると、単純計算で50TBのデータを処理することになります。データが大きければ大きいほど、処理コストも高くなります。

特定のカラムを選択しても、例えば200GBに削減したとしても20TBの処理となり、PythonでDaskやPySpark、Polarsなどを使っても根本的な解決にはなりません。ここで重要なのは、データがBigQueryにあり、それを効率的に取得する方法です。

解決策:BigQueryのData Exportを利用する

ここから先は

1,556字
1度限りなのでマガジンで購入される方が断然お得です

Google BigQueryなどSQLを使う場はこれまでもそしてこれからも存在します。このマガジンでは、アメリカのデータエンジニアやデー…

この記事が気に入ったらチップで応援してみませんか?