データサイエンティストがBigQueryを導入して、管理負担も分析リードタイムも改善したって話
Insight Edge / hnakano
メンバー / データサイエンティスト / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
オンデマンド | 10名以下 | 2021年12月 | B to B |
利用プラン | オンデマンド |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2021年12月 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
BigQueryはCloud Storage上のCSVファイルを直接読み取る機能もありますが、 本件では文字コードの変換などいくつか前処理してBigQueryにデータを格納する必要があったため、 Cloud Functionsを使用してファイルを前処理して、BigQueryにデータを格納するようにしました。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
データサイエンティストとして、クライアントから不定期に大容量のCSVファイルを共有いただき、分析を行うプロジェクトを推進していました。 CSVファイルの前処理や分析には、pandas(Pythonのデータ分析ライブラリ)を使用してましたが処理時間がかかったり、共有されたファイルに誤りがあった場合はその都度クライアントへ問い合わせる必要があるなど、データ管理にも多くの時間を費やしていました。
どのような状態を目指していたか
- クライアントから共有されたCSVファイルが自動的に検証・確認される状態
- データを高速に処理できる環境が整備された状態
比較検討したサービス
- Cloud SQL
比較した軸
- 導入や管理の容易性
- データ分析の処理速度
- 運用コスト
選定理由
- BigQueryはサーバーレスであるため管理の手間がかからない点
- データの前処理がデータ量の増大にかかわらず高速に行える点
導入の成果
- データの自動検証・確認の仕組みの構築
- Google Cloud Storage上にアップロードされたCSVファイルを、Cloud Functionsを使用して検証・処理し、BigQueryにデータを格納する仕組みを構築しました。
- その結果、CSVファイルの文字コードが適切でない場合など、エラーが発生した場合は自動的に検知できるようになりました。
- 分析リードタイムの短縮
- クエリにより、データの読み取りや処理時間を短縮できました。
- Pythonからも容易にデータをロードできるため、従来のCSVファイル読み取りと同様のコードでデータを読み取ることができました。
- 可視化ツールとの連携
- Looker Studioとの連携が容易であるため、データの可視化やレポート結果をクライアントへ容易に共有することができるようになりました。
導入時の苦労・悩み
特別苦労した点はありませんが、細かい仕様に慣れておらず理由のわからないエラーでハマることはありました。
例えば、パーティション分割テーブルの1日のパーティション変更数の上限は3万回であるところ、1000個に分割されたテーブルの全体に30回書き込みをするような事をしていると、その日はプロジェクト内で書き込みができなくなる、などです。当時は「パーティション変更数」の単語の意味がわからずハマりました。
導入に向けた社内への説明
上長・チームへの説明
当初は社内の3名程度の小規模チームで導入したため、特に説明はしていません。
活用方法
よく使う機能
スキャン量削減のため、サイズの大きいデータを格納する場合はパーティション分割テーブルを使用しています。
ツールの良い点
- ソフトウェアエンジニアリングの知識がなくとも、標準的な活用方法であれば導入/管理が容易な点
- データ量に対するスケーラビリティが高く、クエリが高速に実行される点
- Looker Studioなど、他のGoogle Cloudのサービスと連携が容易な点
ツールの課題点
- クエリの書き方を誤ると高額に課金される可能性がある点 (ただし1日あたりのクエリ使用料等には上限を設定できます。)
ツールを検討されている方へ
データサイエンティストにとって、テーブルデータを分析する際にはpandasなどのDataFrameライブラリを使用することが多いと思います。もしGoogle Cloudが使える環境ならば、BigQueryも併用することで、データの前処理時間や管理負担の大幅な改善が期待できます!
※またBigQueryはここで紹介した機能以外にも、AutoMLや地理情報を扱う機能も充実しています。地理情報については、弊社テックブログのBigQuery上の地理情報を可視化する方法 3選 - Insight Edge Tech Blog もご参照ください!!!
Insight Edge / hnakano
メンバー / データサイエンティスト / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
よく見られているレビュー
Insight Edge / hnakano
メンバー / データサイエンティスト / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法