Big Object の使用開始
学習の目的
- Big Object とは何かを説明する。
- カスタム Big Object の一般的な使用事例を挙げる。
- Big Object を照会する方法を特定する。
Big Object とは
有能な Salesforce プロの皆さんは、標準オブジェクト、カスタムオブジェクト、外部オブジェクトについてあらゆることを知っています。組織や外部システムで素晴らしい先駆的なことを行うために、これらのオブジェクトがデータ管理や操作にどのように役立つかも知っています。
このビッグデータの新時代には、自分自身の成功が災いして、データが多すぎるという状況に陥ることがよくあります。そのような場合には、分析する数値はあっても、効果的で効率的に分析することが困難です。パフォーマンスは影響を受け、標準オブジェクト、カスタムオブジェクト、外部オブジェクトがもっと大きかったらよかったのに、という気がしてくるでしょう。
そこで登場するのが Big Object です。Big Object を使用すれば、Salesforce プラットフォーム上で大量のデータを保存して管理することができます。大量というのはどれくらいでしょうか?
1000 レコード? いいえ、もっと大量です。
10 万レコード? もっとです。
100 万? まだまだ、全然違います。
Big Object は、10 億件以上のレコードでも安定したパフォーマンスを発揮し、組織や外部システムは API の標準セットを使用してアクセス可能です。それだけの大量のデータについて考えてみてください! 基本的には Big Object は、ユーザがすでに知っていて愛用しているオブジェクトを巨大化させたものです。
次の 2 種類の Big Object があります。
標準 Big Object は、Salesforce によって定義され、Salesforce 製品に含まれるオブジェクトです。項目監査履歴製品に含まれている FieldHistoryArchive は、標準 Big Object の例です。FieldHistoryArchive を使用すると、最大 10 年分のアーカイブ済みの項目履歴データを保存できるため、監査とデータ保持に関する業界の規制に準拠できます。
カスタム Big Object は、[設定] で定義されリリースされます。[設定] でカスタム Big Object を作成し、その定義や項目、インデックスを設定できます。Big Object のインデックスで定義された項目によって、その Big Object の ID と、その Big Object を照会する機能が決まります。その作成方法については、次の単元で説明します。
カスタム Big Object の使用例
Big Object を使用してさまざまな種類のデータを保存することができますが、Big Object はいくつかの特定のシナリオに対処するために作成されました。
顧客の 360 度ビュー
お客様には、保存する顧客情報が大量にあります。ロイヤルティプログラムから取引、注文、請求情報まで、カスタム Big Object を使用すれば、すべての詳細を追跡できます。
監査と追跡
分析またはコンプライアンス目的で、ユーザの Salesforce 利用状況を長期的に追跡します。
履歴アーカイブ
分析またはコンプライアンス目的で、履歴データへのアクセスを管理しながら、中核的な CRM または Lightning Platform アプリケーションのパフォーマンスを最適化します。
Big Object のクエリ
もちろん、それだけのデータを保持していても、レコードに対して適切な分析を実行できなければ役に立ちません。Big Object は、標準 SOQL または非同期 SOQL を使用して照会できます。
SOQL
標準 SOQL コマンドのサブセットを使用して、Big Object を照会できます。クエリで返されるデータが少量であることがわかっている場合や、結果を待ちたくない場合、Apex で使用するために結果をすぐに返す必要がある場合には、SOQL を使用します。Big Object での標準 SOQL の動作がどのように異なるかについては、次の単元で詳しく説明します。
非同期 SOQL
非同期 SOQL は、カスタム Big Object 内の何百万もの潜在的なレコードを管理するために開発されました。非同期 SOQL は、クエリ対象のデータが非常に大きいためにリアルタイムで結果を待てない場合に SOQL クエリを実行するための方法です。これは、非常に拡張性の高いソリューションで、SOQL コマンドのサブセットを使用するため、すでに SOQL に慣れているユーザは簡単に使用できます。非同期 SOQL は、クエリのスケジュールと実行をバックグラウンドで非同期に行うため、通常の SOQL ではタイムアウトするようなクエリを実行できます。非同期 SOQL を使用すれば、バックグラウンドで複数のクエリを実行して、それらの完了状況を監視できます。クエリを設定し、数時間後に戻ってくれば、素晴らしいデータセットが完成しています。非同期 SOQL は、Big Object にある大量のデータを最も効率的に処理する方法です。
注意事項
Big Object の操作は大規模であるため、その動作はその他のオブジェクトと完全に同じではありません。Big Object を使用するときには、次の点に注意してください。
- Big Object でサポートされるのは、オブジェクトと項目の権限のみです。
- Big Object のリリース後は、インデックスを編集したり削除したりすることはできません。インデックスを変更するには、新しい Big Object を使用してやり直します。
- SOQL リレーションクエリは、Big Object から標準オブジェクトまたはカスタムオブジェクトへの選択項目リストの参照項目に基づきます (検索条件やサブクエリは使用できません)。
- Big Object では、Salesforce カスタム Lightning コンポーネントと Visualforce コンポーネントがサポートされ、標準 UI 要素 (ホームページ、詳細ページ、リストビューなど) はサポートされません。
- 組織ごとに最大 100 個の Big Object を作成できます。Big Object 項目の制限は、カスタムオブジェクトの制限と同様で、組織のライセンスの種類によって異なります。
- Big Object では、Big Object、標準オブジェクト、カスタムオブジェクトを含むトランザクションはサポートされません。
- データ規模をサポートするため、Big Object ではトリガ、フロー、プロセス、Salesforce アプリケーションは使用できません。