もしもいま、BigQueryをイチから学ぶならどうしたい? ドクターメイト株式会社 榎本さんが考える学習ロードマップ

めまぐるしく変化するテックの世界。技術を身に着けるうえで学ぶべきポイントや学習環境なども年々変わっています。

そこで「もしもいまの環境で、テックのことをイチから学び直すことになったら、自分はどんな風に勉強したいか」というIFストーリーを通じて、技術との向き合い方を考え直してみる企画「テック転生」。

今回は、ドクターメイト株式会社・榎本さんに“自分だったらこう進めたい、BigQueryの学習ロードマップ”を伺いました。

自己紹介

ドクターメイト株式会社でエンジニアをしている榎本(@motumotuo)です。新卒からソフトウェア開発に関わっているので、かれこれ20年くらいになります。フロントエンド〜インフラまで必要なことはなんでもやってきましたが、TypeScript、PHPが扱う言語としては多かったと思います。 今はエンジニア組織設計・採用・全体的なアーキテクチャの方向性を作っていく傍らで、全社のデータ活用についても力を入れています。 今回は私自身が最も今興味を持っているデータ関連、特に BigQueryとその周辺技術についてお伝えできればと思います。

今回はもしもある技術をいま、イチから学び直すとしたら?という「テック転生」というテーマになるので、自分自身が技術者としての記憶を全て失った立場でデータを扱うなら…という想定で話を進めていきたいと思います。

序章

今まで複数の会社に所属してきたのですが、よく見てきたのは特定の業務システムからエクスポートされたCSVをExcelやスプレッドシートに取り込んでデータ集計をするシーンでしょうか。

今回はより具体的にイメージするために、営業部の予実管理と予測をするためのデータを日常的に扱う部署に所属する人になったことにします。日々の売上データ、営業活動データ(商談数、受注率など)、顧客データなどを扱い、それらを分析して今後の売上予測や営業戦略立案に役立てることが私のミッションです。 「そんな自分に、半年間でBigQueryを学んでもらうとしたらどうするか」を中心に話を進めていくことにしてみます。

STEP1:BigQueryとその概念を知る (2ヶ月)

目標:

BigQueryの基本操作、データの取り込み、簡単なクエリ実行を理解する。

学習内容:

  1. BigQueryサンドボックス: 無料枠でBigQueryを体験。Google Cloudアカウントの作成から始める。

  2. 公式ドキュメント「BigQueryを使ってみる」: チュートリアルを通して、UI操作、クエリ実行、データセット作成などを学ぶ。

  3. 一般公開データセットの活用: 実際に公開されているデータセットを使ってクエリを実行し、データ取得の感覚を掴む。SQLの基礎に触れる。

  4. データの取り込み: CSV、JSON、スプレッドシートなど、様々な形式のデータの取り込み方法を学ぶ。

  5. BigQueryの料金体系: プロジェクトの作成、課金設定など、実運用に必要な基礎知識を習得する。

学び方:

  • 公式ドキュメントのチュートリアルを忠実に実行する。

  • わからない用語はまず公式ドキュメントで調べる。

  • 簡単なクエリを自分で作成し、結果を確認する練習を繰り返す。

  • 公開データセットを使って、様々なクエリを試してみる。

  • エラーメッセージを理解し、解決策を検索する練習をする。

ここまででできるようになること:

  • Google CloudコンソールからBigQueryのクエリ編集画面を開き、クエリを実行できる。

  • SQLのSELECT, FROM句を使って、特定の列のデータを取得できる。

  • 一般公開データセットにアクセスし、簡単なクエリを実行できる。

  • 営業実績データのサンプルCSVをBigQueryにアップロードし、クエリを実行できる。

  • 想定しているデータ(売上、商談、顧客)がBigQueryでどのように管理できるかイメージできる。

STEP2:初めてSQLに触れる、学ぶ (2ヶ月)

目標:

SQLの基本構文を理解し、実務で必要なデータ抽出・集計クエリを作成できるようになる。

学習内容:

BigQuery での SQL の概要から基礎を学んで聞きます

  1. SQLの基本構文: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, JOIN などの基本的なSQL構文。

  2. 集計関数: SUM, AVG, COUNT, MAX, MIN などの集計関数と、GROUP BY句を使ったデータ集計方法。

  3. DATE関数: 日付データの操作 (月初、月末、週次集計など) に必要な EXTRACT, DATE_TRUNC, DATE_ADD などの関数を重点的に学ぶ。これは営業実績の集計や分析に不可欠。

  4. CASE式: 条件分岐処理を使いこなし、売上データから特定の条件に合致するデータ (例: 特定商品、特定顧客セグメント) を抽出できるようになる。

  5. ウィンドウ関数: LAG, LEAD 関数を使って前期比の売上増減を計算するなど、時系列データの分析に役立つテクニックを学ぶ。

  6. JOIN: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN などのJOIN句を使い、複数のテーブルからデータを取得する方法を学ぶ。

  7. 複雑なクエリ: サブクエリやWITHを使った比較的複雑なデータ集計方法を学ぶ。

  8. BigQueryのSQL特有の関数: STRING_AGG, ARRAY_AGG, STRUCTなど、BigQuery特有の関数やデータ型を学ぶ。

学び方:

  • 実践的な演習: 営業予実管理を想定したデータセットを作成し、売上データ、商談データ、顧客データなどを含む複数のテーブルを作成し、それらを結合して必要な情報を取り出す練習をする。例えば、「月ごとの売上実績」「顧客セグメント別の売上」「商談の成約率」などを計算するクエリを作成してみる。

  • SQLスタイルガイドの参照: 可読性の高いSQLを書くためのスタイルガイドを参考に、クエリを記述する。

  • コードレビュー: エンジニア向けQAサービスで不明な点や「これで良いのかな?」と思うクエリを見てもらい、フィードバックをもらう。

ここまででできるようになること:

  • SUM, AVG などの集計関数と、GROUP BY, HAVING 句を使って、必要なデータを集計できる。

  • 前年同月比、前期比などの売上増減を計算するクエリを書ける。

  • 顧客セグメント別、商品カテゴリ別など、様々な切り口で売上データを分析できるクエリを書ける。

STEP3:作ったデータをビジュアライズする (1ヶ月)

目標:

Looker Studio を使って、BigQueryのデータを分かりやすく可視化し、ダッシュボードを作成できるようになる。

学習内容:

Looker Studioのクイックスタートを使って下記のことを学ぶ。

  1. Looker Studio の基本操作: データソースの接続、チャートの作成、ダッシュボードのカスタマイズなどを学ぶ。

  2. 様々なチャートタイプ: 折れ線グラフ、棒グラフ、円グラフ、散布図など、様々なチャートタイプを使い分ける方法を学ぶ。

  3. データのフィルタリングと絞り込み: 特定の条件でデータを絞り込み、必要な情報だけを表示する方法を学ぶ。

  4. インタラクティブなダッシュボードの作成方法: ユーザーが自由にデータ操作できるインタラクティブなダッシュボードを作成する。

  5. レポートの共有と公開: 作成したダッシュボードをチームメンバーや関係者と共有する方法を学ぶ。

学び方:

  • Looker Studioの公式ドキュメントとチュートリアル: 基本操作から応用まで、公式ドキュメントで学ぶ。

  • サンプルデータを使った実践: 公開されているサンプルデータや、自分で作成したデータを使って、様々なチャートやダッシュボードを作成する練習をする。

  • 既存のダッシュボードの分析: 公開されている優れたダッシュボードを分析し、デザインや機能を参考に学ぶ。

ここまででできるようになること:

  • BigQueryのデータソースに接続し、Looker Studioでチャートを作成できる。

  • 顧客セグメント別、商品カテゴリ別などの売上実績をインタラクティブに分析できるダッシュボードを作成できる。

  • 営業目標に対する実績の進捗状況をリアルタイムでモニタリングできるダッシュボードを作成できる。

STEP4:LLMを使ってインターフェースを作る (1ヶ月)

目標:

Vertex AI Agent Builder を使って、「先月の売上はどれくらい?」「今期の売上予測は?」といった、営業に関連する自然言語の質問を理解し、適切なデータを取得・表示するエージェントを作成する。

学習内容:

公式ドキュメントから Vertex AIの概要、LLMの基礎知識、APIの使い方を学ぶ。

  1. Agent Builder の使い方: Agent Builder のUI操作、BigQueryとの接続設定、エージェントの作成方法を学ぶ。

  2. プロンプトエンジニアリング: LLMが意図したとおりに動作するように、効果的なプロンプトを作成する方法を学ぶ。

  3. パラメータの調整: LLMの出力結果を最適化するために、パラメータを調整する方法を学ぶ。

  4. セキュリティとプライバシー: LLMを利用する際のセキュリティとプライバシーに関する考慮事項を学ぶ。

学び方:

  • Vertex AI の公式ドキュメントとチュートリアル: Agent Builder の使い方、APIの使い方などを学ぶ。

  • サンプルコードの実行: 提供されているサンプルコードを元に、実際にエージェントを作成し、動作を確認する。

  • 実践してみる: Google Cloud のコンソール画面から実際に Vertex AI Agent Builder を操作してGUI上で自分自身の作ったBigQueryと接続してみる。

ここまででできるようになること:

  • Vertex AI Agent Builder を使って、BigQueryに接続するエージェントを作成できる。

  • 「先月の売上を教えて」のような自然言語の質問に対し、売上実績データを表示できる対話型インターフェースを作成できる。

  • 「A社の売上予測は?」といった質問に対し、過去の売上データに基づいて予測値を提示できる対話型インターフェースを作成できる。

自分は実際にどんな風に学んできた?

ここまで、BigQueryを学ぶための具体的なステップを書いてみました。

私自身は、「実データを使いながらクエリをとにかく書いて動かして検証して…」の繰り返しをしています。実際に手を動かして試行錯誤することで、より深く理解できるタイプかな、と思っています。

新しい技術を学ぶ際、まず公式ドキュメントを隅々まで読む人もいるかもしれません。もちろん、公式ドキュメントは重要な情報源であり、最終的には必ず参照すべきです。しかし、私の場合、最初のステップはとにかく手を動かすところにおくようにしています。

まず、興味を持った技術に関するブログ記事やチュートリアルを探します。特に、他社のテックブログや個人の発信は、実践的なTipsや落とし穴などが紹介されていることが多く、参考にすることが多いです。これらの情報を通して、その技術の大まかな概要や可能性を掴みます。

次に、実際に自分の手でコードを書いてみます。サンプルデータを使って簡単なクエリを作成し、動作を確認します。この段階では、細かい構文や仕様を完全に理解していなくても構いません。とにかく動かしてみて、どのような結果が得られるのか、どのようなことができるのかを体感することを重視しています。

そして、試行錯誤を繰り返しながら、徐々に理解を深めていきます。公式ドキュメントを活用しながらベストプラクティスに向かって近づいていきます。

周囲に詳しい方がいる場合は自分が作成したクエリを見てもらい、フィードバックをもらうことも良いと思います。 客観的な視点からアドバイスを受けることで、新たな発見や改善点に気付くことができますし、コードレビューを通じてより洗練されたコードの書き方や、効率的なクエリの実装方法を学ぶこともできます。

テクノロジーの進化は非常に早く、新しいツールやサービスが次々と登場します。常にアンテナを張り、最新の情報をキャッチアップできるともっとワクワクが広がっていくかもしれません。

まとめ

もしかしたら、私が紹介した学習方法がすべての人に当てはまるわけではないかもしれません。しかし、データを取り扱う仕事は、業種を問わず、どこの会社にも存在する業務です。そして、データ分析やLLMを活用するハードルは、日々下がっています。

データ分析は、一見難しそうに思えるかもしれません。しかし、実際には粘り強く試行錯誤を繰り返していけば必ず習得できるスキルです。そして、データ分析を通じて得られた洞察は、ビジネスの意思決定に大きく貢献することができます。

もし、あなたがデータ分析に興味を持っているなら、怖がらずにどんどんチャレンジしてみてください。BigQueryは低コストかつ強力なツールであり、あなたのデータ分析の可能性を大きく広げてくれるはずです。

ではでは!!