企業のSalesforceインスタンスは、ビジネスで最も強力で構成が簡単なデータベース上に構築されています。そのため、データ統合にSalesforce データベースを直接使用することは理にかなっているかもしれません。この記事では、理論的には理にかなっていることが、なぜ企業が採用したいと思うような実践的な利用に向かないのかについて解説します。

SalesforceはCRMであり、データウェアハウスではありません

Salesforceは、世界No.1のCRMプラットフォームだと謳っています。これは何を意味するのでしょうか?まず、Salesforceが何を実現しようとしているのかを見ていくところからスタートしましょう。それは、ユーザーがインタラクティブなアプリケーションでデータを活用できる、常に利用可能な高性能システムを提供するということです。多くの企業がリソースを共有しているクラウド環境では、アナリストが勤務時間中にリソース集約型のクエリを作成している間に、優れたパフォーマンスを確保するのは大きな技術的課題です。SalesforceのCRMソリューションでは、Salesforce のほぼすべてのタイプのプログラムやクエリのアクティビティを制限するガバナリミットを使用してリソースへのアクセスを制限しています。  これらの制限は、データウェアハウスアプリケーションで行われるようなクエリによって簡単に達してしまいます。 

もちろん、Salesforceインスタンスをアップグレードして制限を増やすこともできますし、Salesforceデータのみをクエリしたい場合は、Salesforce 独自の分析ツールを購入することもできます。ほとんどの企業は、他のシステムからのデータをSalesforceに統合したいと考えており、データウェアハウスはそのための場所です。データウェアハウス、オンプレミスもしくはクラウドベースのETLツールは、インタラクティブなワークロードではなくクエリ用に最適化されており、価格も設定されているため、ガバナの限界を超えないようにデータをデータウェアハウスに送信したいと思うでしょう。

 

Salesforceデータの抽出 - 課題とツール

Salesforceからデータを抽出することについての良いニュースとしては、データウェアハウスには多くのオプションが用意されていることです。あなたの組織はすでに標準を持っているかもしれませんが、そうでない場合は、RedShiftGoogle BigQuerySnowflakeなどのクラウドソリューションが、クエリ負荷に最適化されたデータベースを提供しています。インスタンスの規模にもよりますが、Amazon RDS Microsoft Azure SQL Databaseのような、従来のリレーショナル・データベースを使用するツールも選択肢の一つになります。また、データウェアハウスまたはリレーショナルクラウドデータベースのいずれかからデータをクエリすることができる分析ツールも数十種類あります。

あまり良いニュースとしては、優れたデータベースや分析ツールが利用できるからといって、Salesforce ETL の課題が魔法のようになくなるわけではありません。Salesforceから別のデータベースにデータを抽出する場合、どのデータベースであっても、2 つのデータベースを管理することになります。最低限、以下の ETL の質問に答える必要があります。

  1. Salesforce から抽出する必要があるデータは何ですか?
  2. そのデータはどのくらいの頻度で必要になりますか?
  3. Salesforce で変更が発生した場合、その変更が評価され、必要に応じてデータウェアハウスに複製されるようにするには、どのようなプロセスを使用する必要がありますか?
  4. Salesforce のリソースを無駄に使わない方法で ETL を実行するにはどうすればいいですか?

Salesforce ETLに関して決めるべきこと

どのような Salesforceデータを抽出したいのか、どのくらいの頻度でデータを抽出する必要があるのか、そしてそのデータをどのように管理するのかを選択する必要があります。私たちの考えでは、上記の質問1〜3には、4を見る前に回答する必要があるので、これらの質問に回答する際に考慮すべき問題点をいくつか検討してみましょう。

Salesforceから連携するデータの選択

Salesforce セールスクラウドインスタンスには、何十もの標準オブジェクトがあります。包括的なアプローチですべてのオブジェクトを抽出することもできますが、このアプローチでは、Salesforce のすべてのオブジェクトに対して変更管理を実行する必要があるため、メンテナンスコストが高くなります。少数のオブジェクトだけを抽出することを選択した場合、それらのオブジェクトに対する変更管理は最小限に抑えられますが、データウェアハウスが役に立たなくなったり、抽出するオブジェクトを常に追加することになるというリスクを負うことになります。自社にとっての正解は自分だけが知っていることであり、自分にぴったりのものが見つかるまでさまざまなアプローチを試していくうちに、ちょっとしたゴルディロックスのおとぎ話のような気分になるかもしれません。

頻度

どのデータを抽出するかを決めたら、どのくらいの頻度で抽出するのかを把握する必要があります。オーディエンスによって抽出頻度が異なるため、この質問に対する答えは1つではないかもしれません。例えば、アナリストが毎日実行するクエリに必要なオブジェクトが10個あり、週次または月次の管理レポートで使用される追加のオブジェクトが10個あるとします。データウェアハウス内には、最初の10テーブルのデータベースと、最初の10テーブルに加えて追加の10テーブルのデータベースの2つのデータベースが必要になるかもしれません。 

アナリストがアクセスしたいデータに加えて、企業内の他の部門が、データ分析やレポートの一部として、自社のデータをSalesforceのデータに結合したい場合もあります。  データ選定プロセスには、他の部門との連携も含まれますが、選択したETLツールとデータベースのコンセプトを実証するために、まず独自のデータ抽出を実行に移すことをお勧めします。 

変更管理

変更管理は、データガバナンスプロセスの一部とすべきです。Salesforce はカスタムフィールドやオブジェクトを簡単に追加できるため、「お菓子屋の子供」のように慌ててデータ要素を追加してしまうことがあるからです。よく運営されているSalesforce組織は、データの混乱を避けるために、慎重に実行されるレビュープロセスを持つ必要があります。このプロセスには、ユーザコミュニティがデータウェアハウス内の新しいフィールドやオブジェクトを必要としているかどうかを判断するステップが含まれている必要があります。 (データ移行のベストプラクティスに関する記事がありますので、移行プロセスを開始する前に一読する価値があります)。

何を抽出したいか、抽出する頻度、Salesforce ソースデータベースとターゲットデータウェアハウス間の変更をどのように追跡するかを決定したら、ETL ツールを探しましょう。

適切なSalesforce ETLツールを選択する

Salesforce ETLに適したツールを選択するには、技術的な問題とユーザビリティの問題があります。 

  • 技術的な観点からは、ガバナの限界を超えず、データ統合のために安定した効率的なツールが必要です。
  • ユーザビリティの観点からは、変更管理戦略に応じたツールを選択する必要があります。データ抽出プロセスを変更するのに時間がかかる場合、データウェアハウスのスキーマはSalesforceのスキーマよりも後回しになってしまいます。

効率的なSalesforceデータ抽出のためにETL(extract, transform, load)ツールが使用すべき重要な技術は、Salesforce Bulk APIです。Salesforce API の対話型クエリとは異なり、Bulk APIクエリはキューに送信され、バッチとして実行されます。そのため、SalesforceはBulk API 呼び出しでリソース使用量をより最適化することができ、より少ない API 呼び出しでより大きなバッチのデータを取得できるため、抽出をガバナ制限の範囲内に抑えることができます。

もちろん、利用可能な最も効率的なAPIを使用してSalesforceからデータを引き出すことができるツールであっても、データをデータウェアハウスに送信する必要があります。選択したETLツールは、ターゲットデータベースを効率的にサポートしなければなりません。また、問題をログに記録したり、抽出物に問題がある場合にアラートを送信したり、データパイプラインで安定性と優れたパフォーマンスを発揮したりと、Salesforce以外のコンテキストで優れたETLツールに期待されることをすべて実行しなければなりません。

ユーザビリティに関しては、ETL ツールは、データを抽出して変換するために、ある種の非コード・インターフェースを使用するのが理想的です。データ抽出パイプラインのグラフィカルな表示を見たり、コードではなくクリックで変更を加えたりする方がはるかに簡単です。Salesforceの管理者は、メニューから項目を選択したり、フローチャートのようなワークフローを作成したりしてSalesforceを変更することに慣れているため、これは Salesforceに関しては特に重要です。Amazon Glueのようなツールはある面においては素晴らしいものですが、Salesforceの管理者は、PythonやScalaのコードを修正して抽出したものに別のフィールドやオブジェクトを追加することを嫌がるでしょう。 

また、ETLツールは、インストールと構成が簡単なものでなければなりません。オンプレミスのETLツールはまだありますが、Salesforceクラウドアプリケーションのターゲットとしてクラウドデータベースを選択した場合、オンプレミスのETLインストールを行うのは、一歩後退したように感じるでしょう。 

Salesforceに適したETL: Integrate.io

Integrate.ioがSalesforceからデータをデータウェアハウスに送信するための優れたETL(抽出、変換、ロード)ツールとしてフィットすると我々が考えていたとしても驚くことはないでしょう。しかし、もしあなたがSalesforceのデータはデータウェアハウスでアクセスするのが最善であるという私たちの主張を受け入れるなら、Integrate.ioはその仕事に最適なツールの一つであると考えます。

  • 私たちのソリューションはSalesforce Bulk APIをネイティブにサポートしているので、データ抽出では可能な限り最小限のSalesforceリソースを使用します。
  • 私たちの製品は、Salesforceからデータを抽出したり、Salesforceへデータをロードすることができる限られたETLツールの一つです。 
  • 主要なデータソース、データウェアハウス、リレーショナルデータベースをすべてサポートしています。
  • 私たちのドラッグアンドドロップ式のデータパイプラインビルダーは、素早く作成でき、修正も簡単な抽出物を、クリックするだけで構築することができるコードレスの方法です。
  • 私たちのツールを習得するためのスタッフリソースがない場合は、弊社のエキスパートチームがお客様に代わって統合を構築することも可能です。また、お客様のスタッフが他の優先事項で忙しい場合は、我々がメンテナンスを行います。

SalesforceデータをデータウェアハウスにETLする準備ができている場合、またはオプションについて話したい場合は、実装チームとのオンラインデモをご予約ください。