Dreamforce2016 Day1:Bringing Big Data to Force.com with BigObjects and Async SOQL

みなさんこんにちは。 Dreamforce2016始まりました。
今年は午前中小雨でしたが、来場者数は約17万に上り大いに盛り上がっておりました。
私が参加した数あるセッションの中から今回は「BigObjectsとAsync SOQL」に
ついて現地よりレポートいたします。

昨今SalseforceにはSFAやCRMのデータだけでなく、
様々なデータがカスタマーにより登録され、内部のシステムデータや
外部システムからの連携データ、またその履歴データなどにより
Salesforce上には大量のデータが蓄積されるようになっています。

大量に蓄積されたデータに対応する一つのソリューションとして
「BigObjectsとAsync SOQL」が効果を発揮するかもしれません。

BigObjectsとは

セッションではBigObjectsで扱うデータ件数は10億件を想定されていました。
標準機能としては「項目監査履歴(FieldHistoryArchive)」がBigObjects扱いとなります。
※項目監査履歴を有効化するにはサポートへの連絡が必要みたいです。

また、PilotではありますがカスタムでBigObjectsを
作成することも可能ですが、下図の制限があります。

Async SOQL(Pilot)

Async SOQLはRestAPIを使用し、BigObjectsからデータを抽出し、
sObjectにデータを投入することができます。

実行方法は下記URLに対して、JSON形式でRequestを投げる形となります
https://<<yourInstance>>.salesforce.com/services/data/v38.0/async-queries/

Request

query BigObjectsからデータを抽出するSOQL
targetObject 結果を投入するsObject
targetFieldMap queryとtargetObjectの項目をマッピング

カスタマーはAsync SOQLによって投入されたsObjectの
データを画面、レポート/ダッシュボードで確認することができます

セッションでWorkBenchを使用したDemoをがありましたので載せておきます。

targetObjectの項目をマッピング

Async SOQLには使える日付関数や集計関数に制限があります。
Spring17以降に増えていくみたいなので楽しみにしておきましょう。

【Spring17】
・CALENDAR_MONTH()、CALENDAR_YEAR() の追加
・UpsertによるtargetObjectへのデータ投入

最後に

明日もセッション盛りだくさんなので
新しい発見に期待して、残り3日間Dreamforceを満喫したいと思います。

是非、2日目以降のレポートも楽しみにしておいてください。