[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倍以上向上します。
以下に、実際のコード例を示します。
ここから先は
技術面接問題を通してSQLを学ぶ
Google BigQueryなどSQLを使う場はこれまでもそしてこれからも存在します。このマガジンでは、アメリカのデータエンジニアやデー…
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?