SalesforceのBig Objectとは、セールスフォース上で大量データを保存可能なストレージです。(通常のオブジェクトとは異なる)。本記事ではビッグオブジェクトの概要や特徴、使い方、ストレージ上限の確認方法など詳しく解説します。
SalesforceのBig Objectとは?
Big Object は、Salesforce上で大量データを保存可能な、通常のオブジェクトとは異なるストレージとなります。厳密にはLightning プラットフォームの異なる部分で保存されていますが、カスタムオブジェクトなどを扱う感覚で標準の API セットを使用して Big Object データにアクセスすることができます。オブジェクトとは似て非なるモノになりますが、主な特徴としては以下のものが挙げられます。
最大の特徴は「大容量のレコードが登録できる」こと
Big Objectの一番の特徴でありメリットです。Bigと名前がついているだけあって、大量のレコードを登録可能です。どれくらい大量かというと、ライセンスによっては10億レコードといった桁違いの容量を格納することが可能です。
ストレージの上限については、組織のディスク使用量から確認ができます。デフォルトでは100万レコードまで上限があります。データストレージは容量による上限ですが、Big Objectストレージはレコード数による上限管理となっています。追加購入することで、レコード数を拡張することもできます。
検索効率の悪いデータが取り扱えない
前述した通り、Big Objectには大容量のレコード数が登録できる反面、それを取り出す際には検索効率を求められます。Big ObjectにもSOQLを適用することはできますが、検索にはいくつかのルールがあり、検索効率を重視するためインデックスとなる項目を中心に絞り込みをかけることになります。
またBig Objectには億単位のレコードが登録できることが想定されており、それらのレコードを効率よく検索できるようにする必要があります。そのため、カスタムオブジェクトで扱える一部のデータ型(チェックボックス・選択リスト・日付など)がBig Objectでは使用できません。
これらに共通して言えることは、絞り込みが難しい、いわゆる検索効率の悪いデータ型が取り扱えないことになります。
Big Objectを使った方が良い例、シーン
Big Objectの特徴が分かった上ところで、カスタムオブジェクトとの使い分けについて考えてみましょう。
Big Objectの特徴を活かして、カスタムオブジェクトよりBig Objectを使用したほうが良いものとして以下のものが挙げられます。
- 大量のレコードのデータが見込まれるもの
- 比較的簡素な情報管理ができるもの
- 非同期で動かすことを見越して、リアルタイム性が求められないもの
上記に当てはまる事例としては、履歴管理や監査や追跡などを行うための細かいデータ収集、マーケティング目的の顧客情報管理(ロイヤルティプログラム、フィード、クリック、請求、プロビジョニング情報)といったものなどがあります。近年のビッグデータの普及から、分析や情報収集で使われる場面が多くなりそうです。
重ねて言うことになりますが、Big Objectはカスタムオブジェクトに比べて検索の効率はどうしても劣ってしまうため、同期処理には不向きになります。Big Objectは非同期処理での扱いが推奨となります。
Big Objectの冪等性(べきとうせい)とは
SalesforceのBig Objectとして覚えておくべき性質として冪等性(べきとうせい)というものがあります。なかなか聞きなれない言葉ではありますが、数学的には「同じ操作を1回実施しても、複数回実施しても結果は同じ」という意味を持っています。
これをSalesforceのBig Objectに当てはめていくと、Big Objectで管理するレコードには必ずインデックスとなる項目が存在します。インデックスはBig Objectのレコードを一意に特定するためのキー情報のようなものです。このインデックスとなる項目が同一であればBig Objectでは同一のレコードとして見なされ、1回Insertしても100回InsertしてもBig Objectのレコードとして登録できるのは1レコードとなります。
おわりに
記事を見ていただきありがとうございました。Big Objectについて簡単ですが概要や特徴について説明しました。
次回以降、Salesforce上でどのように使用するか具体的に手順や注意点について以下テーマごとに述べたいと思います。
- Big Objectのオブジェクト定義
- SOQLを使用したBig Object検索方法
- ApexによるBig Objectの操作方法
- Big Objectと各標準機能の使用可否について
カスタムオブジェクトとは違い、扱い方にクセがある分、使いこなせれば便利な機能ではあるので是非マスターしておきましょう。