SlideShare a Scribd company logo
⼤量データ(LDV)の考慮点
(LDV: Large Data Volume)
認定 Data Architecture and Management デザイナー
2019/10/18(⾦)
Salesforce Architects Meetup Osaka#02
今回の対象︓
認定 Data Architecture and Management デザイナー
本⽇の
トピック
2
今回の対象︓
認定 Data Architecture and Management デザイナー
http://tandc.salesforce.com/credentials
3
認定 Data Architecture and Management デザイナー
に求められるスキル・知識
4
Salesforceの
データストレージソリューション
Salesforceの
データストレージソリューション
データストレージ
ソリューション
データの所在
Salesforce UI
での検索・表⽰・
変更
⾃動化プロセス
WF・トリガ・
プロセスビルダー
件数規模
標準・カスタム
オブジェクト
Salesforce(コア) ○ ○
⽬安として
〜2,000万件
Salesforce Connect
外部システム
(OData または
Apex Connectorで参照)
○ 不可
⽬安として
〜2,000万件
Heroku Connect
(⼀⽅向/双⽅向同期)
Salesforce
(Herokuとコアと同期)
○ ○ ⽬安として
〜2,000万件
Heroku Connect
(Proxy)
Salesforce(Heroku)
(Salesforce Connectの
外部Objectとして利⽤)
○ 不可
⽬安として
〜2,000万件
Big Objects Salesforce(⾮RDB) 不可 不可 〜数⼗億⾏
Einstein Analytics Salesforce(BI) 不可 不可 〜10億⾏
6
Salesforce Connect の例
7
外部オブジェクトを
シームレスに表⽰
データストレージソリューションの選択
https://trailhead.salesforce.com/ja/content/learn/
modules/big-data-strategy/choose-the-right-big-
data-solution 8
データのコピーを
Salesforceに置く
必要はある︖
顧客向けのモバイル
アプリでデータを公開
する必要はある︖
どのくらいの
データが格納
されますか︖
顧客向けのモバイル
アプリでデータを公開
する必要はある︖
2000万件
未満
データは2,000万件
を超えて成⻑して
いますか︖
2000万件を
超える
データはどの
ように分析さ
れますか︖ データの⼀部の
ビジネスロジッ
クを⾃動化する
必要があります
か︖
同じエン
ティティで
集約・
サブセット
Salesforceデータストレージでの
⼤量データの取り扱い
マルチテナントを可能とするアーキテクチャ
データ スキーマ
マルチテナントアーキテクチャ
組織(org)
インスタンス
データ スキーマ
組織(org)
仮想テーブル、メタデータ、
セキュリティ(共有・権限)、
性能(ガバナ制限)
10
RDBMSとSalesforceのアーキテクチャ⽐較
アプリケーション
11
インデックス テーブル外部キー
統計情報 実⾏計画
RDBMS
SQL 結果セット
アプリケーション
Salesforce
SQL 結果セット
RDBMS︖
SOQL 結果(レコード)
マルチテナント
アーキテクチャ
標準項⽬
インデックス
カスタム項⽬
関連
参照・主従
権限・共有
ガバナ制限
RDBMSとSalesforceのLDV対策の例
12
CRUD RDBMS Salesforce
C:登録 ・登録時はインデックスを削除、後で作成
・可能であれば、登録後に関連を設定
・共有の適⽤を延期
・WFルールなど⾃動化機構を無効化
R:参照
・選択性の⾼いインデックスを利⽤
・クエリする項⽬を少なく
・Mview、パーティショニング
・インデックス/カスタムインデックス
・スキニーテーブル
U:更新 ・・・
・UpdateとUpsertの特性を理解、
使い分け
D:削除 ・全件削除はtruncate
・論理削除、物理削除
・ごみ箱
・切り捨て
⾮
同
期
処
理
の
活
⽤
(
バ
þ
チ
︑
Bulk)
LDV︓データモデリングの考慮
親レコード ⼦レコード
Ø データスキュー(Skew、偏り)の回避
例︓⼦レコードの更新時、内部では親・⼦両⽅がロックされる。
→複数スレッドで更新を⾏う場合、ロックが取得できず失敗する場合がある
・1件の親レコードが⼤量の⼦レコードを持つ場合に考慮する(⽬安として1万件)
・1⼈のユーザが同じObjのレコードを⼤量に所有する場合、
1件のレコードに⼤量のレコードが関連付けられている場合、
などのスキュー(偏り)があるときも、共有やロックの問題が起こり得る。
⼦レコード
⼦レコード
⼦レコード
13
LDV︓クエリ・検索の考慮
Ø ⾮同期処理の活⽤
①Apexの⼀括処理(バッチApex)
バッチ単位で⾮同期処理する。
最⼤5,000万件のレコードにクエリを実⾏して処理できる。
14
LDV︓クエリ・検索の考慮
Ø ⾮同期処理の活⽤
②⼀括クエリ(Bulk APIクエリ)
10万件(既定値)〜25万件(最⼤)のチャンク(データの塊)に分割して抽出する。
最⼤15GBのデータを取得できる(1GB x 15ファイル)。
チャンクが1GBを超える場合や、取得に10分以上かかる場合、失敗する。
PK Chunking(IDによるチャンク分割)を検討する。
1,000万件を超えるオブジェクトをクエリする場合に推奨。
15
外部システム
Bulk API
例
Dataloader
①クエリの処理時間は2分まで
Bulk API
ジョブ
バッチ チャンク
チャンク
③結果は、1GBまでのファイルが
最⼤15個作成される
結果ファイル
結果ファイル
結果ファイル
PK チャンクが有効な場合、
分割して処理される
結果ファイル
LDV︓クエリ・検索の考慮
Ø スキャンするデータの削減
①スキニーテーブル(Skinny、痩せた)
特定のオブジェクトの⼀部の項⽬のみで構成されたDBテーブル
16
標準項⽬・カスタム項⽬は、
内部では別TBLで保持。
都度結合して結果セットを作成
⇒検索コストが⾼い
ユーザが参照
したい項⽬
スキニーテーブル
・参照に必要な項⽬をすべて保持(結合不要)
・参照しない項⽬は保持しない
(スキャンの効率良)
考慮点︓
・作成はSalesforceに申請が必要
・データは同期されるが、オーバーヘッドもあり
・Sandboxにコピーされない(Full Sandbox除く)
・ユーザーからは⼀切⾒えない
・利⽤するかどうかはクエリオプティマイザが決定
LDV︓クエリ・検索の考慮
Ø スキャンするデータの削減
②インデックス/カスタムインデックス
下記の項⽬には⾃動的にインデックスが作成される︓
ID、Name、RecordTypeId、Division、CreatedDate、参照関係、主従関係、
Systemmodstamp(LastModifiedDate)、Email(取引先責任者・リード)
カスタムインデックスの作成︓
・外部ID、ユニーク項⽬には⾃動的に作成
・Salesforce サポートへの申請により作成
考慮点︓
・クエリでインデックスが使⽤されるかは、オプティマイザの判断による
(統計情報から選択性を判断)
17
LDV︓読み込み(登録・ロード)の考慮
Ø ロードの前にデータをきれいにする
https://www.slideshare.net/DeveloperForceJapan/jp-extreme-salesforce-datavolumes/32
18
LDV︓読み込み(登録・ロード)の考慮
Ø 重要ではないプロセスを先送りする
①組織の共有設定
「⾮公開」は、レコード追加時に共有が適⽤される(時間がかかる)。
⇒「公開/参照・更新可能」として後で共有を適⽤する。必要以上にデータを保護しすぎない。
②オブジェクト間の関連
オブジェクト間の関連が多いと、レコード追加時に必要なチェックも増える。
⇒後で関連を確⽴することができれば、レコード追加スループットは向上する。
③共有ルール
レコード追加都度チェックが必要となる。
⇒レコード追加後に共有ルールを有効にする。共有適⽤の延期を検討する。
④ワークフロールール、⼊⼒規則、トリガ
レコード追加都度チェックが必要となる。
⇒無効化し、レコード追加後にApex⼀括処理(バッチ)で処理する
19
LDV︓読み込み(登録・ロード)の考慮
Ø 効率よいAPIの利⽤
①Bulk API の利⽤
・⼤量のデータを処理するのに向いている。
・サーバ側では要求を複数のジョブに分割し、⾮同期で処理される。
20
外部システム
Bulk API
例
Dataloader
①バッチの登録数は、24時間あたり
10,000個まで
Bulk API
ジョブ
バッチ
バッチ
チャンク
チャンク
②バッチのあたりの処理時間は10分まで
③バッチのあたりの処理件数は10,000件まで
さらに内部では
チャンクに分割して処理される
⼊⼒ファイル
リソース
参考︓認定 Data Architecture and Management デザイナー
Trailmix
22
参考︓⼤量データの取り扱いに関する Trailhead モジュール
23
参考︓Webinar資料
https://www.slideshare.net/DeveloperForceJapan/
jp-extreme-salesforce-datavolumes
https://www.slideshare.net/DeveloperForceJapan/
tips-30066265
24
参考︓⼤量データの取り扱いに関する 開発者ドキュメント
25

More Related Content

PPTX
Salesforce integration architecture 20200529
PPTX
Master data management (mdm) & plm in context of enterprise product management
PPTX
Salesforce sharing and visibility Part 1
PDF
Salesforce Certified Platform Developer Ⅰ 勉強会資料
PPTX
世界一わかりやすいClean Architecture
PPTX
Diabetes Mellitus
PPTX
Hypertension
PPTX
Republic Act No. 11313 Safe Spaces Act (Bawal Bastos Law).pptx
Salesforce integration architecture 20200529
Master data management (mdm) & plm in context of enterprise product management
Salesforce sharing and visibility Part 1
Salesforce Certified Platform Developer Ⅰ 勉強会資料
世界一わかりやすいClean Architecture
Diabetes Mellitus
Hypertension
Republic Act No. 11313 Safe Spaces Act (Bawal Bastos Law).pptx

What's hot (20)

PDF
認定 Integration Architecture デザイナー試験を復習してみた
PDF
認定テクニカルアーキテクト取ろうぜ
PPTX
Restriction Rules(制限ルール) 調べてみた
PPTX
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
PDF
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
PDF
Inside the Force.com Query Optimizer Webinar
PDF
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
PDF
データ連携の新しいカタチ - 変更データキャプチャ/プラットフォームイベントを MuleSoft Anypoint Platform と組み合わせて試してみよう
PDF
Best Practices with Apex in 2022.pdf
PDF
モダンなイベント駆動型システム連携を学ぼう〜Platform Events 入門
PDF
運用を見据えた失敗しないOffice365導入
PPTX
Apexトリガと標準自動化プロセスの違い
PDF
データローダについてちょっと詳しくなる
PDF
Lightning web components - Episode 1 - An Introduction
PDF
Force.com canvas入門ガイド
PPTX
Apex code (Salesforce)
PPTX
Lightning web components
PPTX
Admin Webinar—An Admin's Guide to Profiles & Permissions
PPTX
ApexトリガのBest Practiceを目指して
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
認定 Integration Architecture デザイナー試験を復習してみた
認定テクニカルアーキテクト取ろうぜ
Restriction Rules(制限ルール) 調べてみた
SalesforceにおけるCDC(変更データキャプチャ)の実装・活用法について
大量データを扱う際のクイックTips インデックス&スキニーテーブル編-
Inside the Force.com Query Optimizer Webinar
Lightning コンポーネント開発〜実装例から学ぶ開発のコツ
データ連携の新しいカタチ - 変更データキャプチャ/プラットフォームイベントを MuleSoft Anypoint Platform と組み合わせて試してみよう
Best Practices with Apex in 2022.pdf
モダンなイベント駆動型システム連携を学ぼう〜Platform Events 入門
運用を見据えた失敗しないOffice365導入
Apexトリガと標準自動化プロセスの違い
データローダについてちょっと詳しくなる
Lightning web components - Episode 1 - An Introduction
Force.com canvas入門ガイド
Apex code (Salesforce)
Lightning web components
Admin Webinar—An Admin's Guide to Profiles & Permissions
ApexトリガのBest Practiceを目指して
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Ad

Similar to Salesforce LDV(Large Data Volume) 20191018 (20)

PDF
【de:code 2020】 Power Platform で広がるデータ インテグレーションの世界 (1/2)
PDF
[de:code 2019 振り返り Night!] Data Platform
PDF
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
PPTX
Microsoft Ignite Fall 2021 Data Platform Update Topics
PDF
【de:code 2020】 ~すでに時代遅れ? 個人情報や紙のためにオフィスに行くのは今すぐやめよう~ 日本郵政スタッフが実現したステイ ホーム/クラウ...
PPTX
Polyglot Persistence and Graph Schema
PDF
20200617_archjapan-tokyo-05
PPTX
Azure Data Platform
PDF
Synapse lakedatabase
PDF
20240412_HCCJP での Windows Server 2025 Active Directory
PDF
[Japan Tech summit 2017] DAL 006
PPTX
Powering Performance: メルセデス・ベンツにおけるDatabricksとQlikのリアルなユースケース
PPTX
分散グラフデータベース DataStax Enterprise Graph
PDF
BigData-JAWS#16 Lake House Architecture
PDF
Cm re growth-devio-mtup11-sapporo-004
PPTX
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
PDF
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
PPTX
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
PDF
【de:code 2020】 PostgreSQL もスケールさせよう! - Hyperscale (Citus) -
PDF
Smart data integration to hybrid data analysis infrastructure
【de:code 2020】 Power Platform で広がるデータ インテグレーションの世界 (1/2)
[de:code 2019 振り返り Night!] Data Platform
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
Microsoft Ignite Fall 2021 Data Platform Update Topics
【de:code 2020】 ~すでに時代遅れ? 個人情報や紙のためにオフィスに行くのは今すぐやめよう~ 日本郵政スタッフが実現したステイ ホーム/クラウ...
Polyglot Persistence and Graph Schema
20200617_archjapan-tokyo-05
Azure Data Platform
Synapse lakedatabase
20240412_HCCJP での Windows Server 2025 Active Directory
[Japan Tech summit 2017] DAL 006
Powering Performance: メルセデス・ベンツにおけるDatabricksとQlikのリアルなユースケース
分散グラフデータベース DataStax Enterprise Graph
BigData-JAWS#16 Lake House Architecture
Cm re growth-devio-mtup11-sapporo-004
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
ビッグデータやIoTシステムを支えるデータベース 『GridDB』
しばちょう先生が語る!オラクルデータベースの進化の歴史と最新技術動向#1
【de:code 2020】 PostgreSQL もスケールさせよう! - Hyperscale (Citus) -
Smart data integration to hybrid data analysis infrastructure
Ad

Salesforce LDV(Large Data Volume) 20191018