見出し画像

[SQL Tips] Pythonユーザー必見! 1時間の作業を5分に短縮!BigQueryでのデータ処理術

職場で学んだSQLやBigQueryの効果のあった使い方をシェアします。

職場で他のデータサイエンティストのコードを見て気づいたことがあります。私たちはデータウェアハウスとしてBigQueryを使用していますが、同僚の多くはRやPythonで処理を終わらせたがります。SQLを書くことを避け、「SQLできるよ」と言いつつも、「SELECT something FROM table WHERE …」のレベルで「十分だ」と思っているようです。

SQLは覚える量が少なくて済むにもかかわらず、PythonやRに比べて苦手意識を持っている人が多いようです。本来、BigQueryやDuckDBのように分析を得意とするツールは、その環境下で処理を行うほうがパフォーマンスが良いのですが、PythonやRで処理を終わらせようとして、無駄に時間がかかるコードを書いている人が多く見受けられます。

例えば、各行に緯度、経度、場所の名前があるシンプルなテーブルAがあり、それぞれの場所の過去3年の天候データを日毎に取得したいとします。100箇所分の3年分のデータを取得する場合、結果は365*3*100で109,500行のテーブルとなります。これを1行ずつSQLを実行してデータを取得し、既存のデータフレームに追加する形をとると、処理に1時間以上かかることがあります。

これを改善する方法は非常にシンプルです。テーブルAをBigQueryに一時的にアップロードし、BigQuery側で処理を済ませるだけで、パフォーマンスが10倍以上向上します。

以下に、実際のコード例を示します。

ここから先は

1,806字
100問程度まで増やしていくのでマガジンで購入される方が断然お得です

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

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?