無料でSalesforceのデータ基盤をBigQueryに構築する方法

無料でSalesforceのデータ基盤をBigQueryに構築する方法 Salesforce
無料でSalesforceのデータ基盤をBigQueryに構築する方法

どんな取り組みか

本記事は、無料でSalesforce.com(以下SFDC)のデータを使ったデータ基盤構築のやり方について紹介します。SFDCのデータを使ったレポートはSFDC上で作成できますが、ビッグデータの取り扱いやデータの加工といった要件を満たすことが難しい場合があります。また、Googleスプレッドシートを使ったダッシュボードが定着している環境では、スプレッドシートでデータを閲覧したいというニーズもあります。プロダクトによってはデータ基盤環境が存在せず、ゼロから構築する必要がある状況で、コストをかけずにデータ基盤を構築し、その価値をアピールする必要がありました。本記事では、この課題を解決するために実践された方法をまとめます。

使われた技術スタック

  • Salesforce.com (SFDC): データソースとして使用
  • Google Workspace (スプレッドシート): データ取得・加工・ダッシュボード作成に使用
  • BigQuery: データ基盤として使用
  • Notion (おまけ): ダッシュボード化に使用
  • Slack (おまけ): 通知に使用

実装のポイント

スプレッドシートのSFDCコネクターによるSFDCデータの取得

SFDCのデータを効率的に取得するために、Googleスプレッドシートの拡張機能である「Salesforce Connector」を使用します。このコネクターはGoogle謹製であり、セットアップは容易です。スプレッドシートの拡張機能メニューからアドオンを取得し、SalesforceのIDとパスワードで認証することで利用可能になります。

主な利用方法としては、SFDC上でレポートを作成し、Salesforce ConnectorのReportsメニューから該当レポートを指定して取り込みます。さらに、Refreshメニューのスケジューラ機能で日ごとに更新設定を行うことで、定期的に最新データをスプレッドシートに取り込むことができます。このコネクターは、SFDCのデータをスプレッドシートに数分で取り込めるほどの高速性が特徴です。

注意点として、一度に読み込めるレコード数は20万件までという制限があります。これを超える場合は、SFDC側のレポートを分割してフィルターをかけるなどの対処が必要です。また、日次スケジューラは時間指定ができず、毎日16時に発火します。

BigQueryサンドボックス(無料)環境の構築

スプレッドシートにSFDCデータが取り込めたら、次にBigQueryでデータ基盤を構築します。データ基盤を構築する理由は、データの⼀元管理、スプレッドシートでは扱いきれないビッグデータの操作、そして散らばった業務データの集約です。

BigQueryを無料で利用するには、BigQueryのサービス紹介サイトからコンソールへ移動し、利用許諾にチェックを入れてプロジェクトを作成します。サンドボックス状態のBigQueryでは、スプレッドシートの外部テーブル読み込み、CSVファイルなどのアップロードによるテーブル作成、Select文の実行、クエリやビューの保存などが可能です。

サンドボックス状態の機能制限としては、1か月あたり10GBのアクティブストレージ、1か月あたり1TBのクエリデータ処理の制限があり、テーブルの有効期限が60日であること、INSERTやUPDATE、DELETEが使用できないこと、スケジューリングクエリやData Transfer Serviceが利用できないことなどが挙げられます。

テーブルの有効期限が60日であるため、外部テーブルは60日後に消えてしまいますが、データの本体はスプレッドシート側にあるため、再度外部テーブルを作成することで復元可能です。ただし、早いタイミングでのBigQueryへの請求アカウント設定を目標とすることが推奨されます。請求アカウントを設定しても、サンドボックス状態で作成したデータセットやテーブルの有効期限は60日のままなので、速やかに「なし」に変更する必要があります。

SFDCデータを取り込んだスプレッドシートをBigQueryで扱う方法

Salesforce Connectorでスプレッドシートに取り込んだデータを、外部テーブル機能を使ってBigQueryから参照します。まず、テーブルを配置するデータセットを作成し、その後、データセット名の横の三点リーダーからテーブルを作成します。Googleドライブを指定し、スプレッドシートのURLと読み込み範囲を指定します。カラム名とデータ型を指定し、詳細オプションでスキップするヘッダー行に「1」を入力してテーブルを作成します。

作成したテーブルが参照できるか、SELECT * FROM `プロジェクト名.データセット名.テーブル名` LIMIT 1000 のようなクエリで確認します。注意点として、日付データはハイフン区切りでないとBigQueryは読み込まないため、スプレッドシート側でフォーマットを変更する必要があります。また、一度外部テーブル設定を変更するにはテーブルを削除して作り直す必要があります。

読み込んだSFDCデータを変形・カスタマイズする

スプレッドシートのデータを読み込んだ外部テーブルを複数参照し、データマート的なビューを作成します。データマート用のデータセットを作成し、外部テーブルのデータを加工するクエリを記述してビューとして保存します。作成したデータマートテーブルは、スプレッドシート側から「シートを使って調べる」機能で参照できます。スプレッドシート側のクエリスケジュール実行機能を利用すれば、Salesforceコネクタが16時に発火するのに合わせて、17時に最新情報を表示させることが可能です。

最後の仕上げ

ピボットテーブルのデータを加工してグラフを作成すれば、スプレッドシート上でダッシュボードが完成します。この一連の流れは無料で行えます。

おまけ1: Notionをダッシュボード化

作成したグラフを共有し、生成されたURLをNotionの「/埋め込み」機能で貼り付けることで、Notion上でグラフを表示できます。これにより、重いBIツールを立ち上げなくても、Notionで手軽に状況を把握できます(Notionの契約は別途必要です)。

おまけ2: スプレッドシートのグラフを定期的にSlackにプッシュ

GAS(Google App Script)を使用することで、スプレッドシートのグラフを定期的にSlackにプッシュすることが可能です。Slack Botの準備として、SlackのYourAppsページでアプリを作成し、必要なスコープ(chat:write, files:write)を設定してワークスペースにインストールします。その後、GASコードをスプレッドシートに記述し、スケジュール実行を設定します(Slackの契約は別途必要です)。

得られた成果や学び

本記事で紹介された方法を用いることで、コストをかけずにSalesforceのデータをBigQueryに連携し、データ基盤を構築することが可能です。スプレッドシートとBigQueryの連携により、データの集約、加工、可視化が容易になり、データ活用の促進が期待できます。また、NotionやSlackとの連携により、情報共有の効率化も図れます。

まとめ

本記事では、無料でSalesforceのデータ基盤をBigQueryに構築する手順を、スプレッドシートの活用を中心に解説しました。Salesforce Connectorによるデータ取得、BigQueryサンドボックス環境の利用、外部テーブル機能を使ったデータ参照、そしてデータマートビューの作成といった一連の流れを、具体的なポイントや注意点と共に説明しています。さらに、NotionやSlackとの連携についても触れ、無料でも高度なデータ活用基盤を構築できる可能性を示しています。

出典: https://qiita.com/tarox/items/fa5af6c41b273493cbc7

Related Certifications

この記事に関連する技術領域の認定資格

Salesforce 関連資格

  • Salesforce Certified Administrator
  • Salesforce Certified Platform Developer I
  • Salesforce Certified Platform Developer II
  • Salesforce Certified Application Architect
  • Salesforce Certified System Architect
  • Salesforce Certified Technical Architect

※ 認定資格は技術スキルの体系的な学習に役立ちます。試験の出題範囲や受験要件は変更される場合があるため、受験前に必ず公式サイトで最新情報をご確認ください。

SF Tech & Win

Salesforce × AWS × AI 連携の実装ノウハウ

SIer・スタートアップ・中小企業のDX推進に役立つアーキテクチャ事例・実装パターン・最新アップデート情報を毎朝配信。

コメント

タイトルとURLをコピーしました