0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(なぐり書き)資料作成にあたり、最低限必要な知識_データモデル・

Last updated at Posted at 2025-02-23

SalesCloud、ServiceCloud、FieldServiceにおける論理データモデルは必須で暗記する必要があります。
公式のデータモデル図は以下になります。(後段に参考のデータモデルも掲載していますが、オフィシャルはこちらとなります。)

かなり下にスクロールする必要あり。Data Model Gallery
https://architect.salesforce.com/diagrams#architecture-gallery

image.png

point

注意
先日の最終試験で、データモデル図が汚すぎ&一般的な書き方じゃなかったので、減点されました:scream:(本当にすみません。) これから受験されるかたは絶対にSalesforce公式おすすめの Lucidchartを使ってください!
私のこの記事はあまり参考にならないかもしれません…:cold_sweat:

データモデルをスライドにまとめる際に、凡例の記述が必須です。
標準オブジェクトなのか、カスタムオブジェクトなのか、線は参照なのか、主従なのか、大量データはどこか、識別します。(あと、私は時間がなくて端折ったんですけれど、本当はOWD(所有者)や共有設定(公開か非公開かなど)の記述が必要です。ほかの受験者のかたはみなさん書かれてました・・・)
また、大量データが存在する場合に、対処も口述する必要があります。

image.png

データモデルの記述について
まず、データモデルの定義の仕方ですが、目的や用途に応じてオブジェクトを定義します。
また、リレーションの性質として、権限が親に確実に同等なのか(いわゆる主従)、そうでないのか(参照)を記述する必要があります。

<Case1>
例えば、会社に従業員が複数名所属しています。そうすると以下のようなデータモデルになりますよね。
image.png

Salesforceには会社や従業員にマッチする取引先、取引先テーブルがありますので、データモデルは以下のように記述します。

image.png

<Case2>
例えば、トレーニングマスタがあって、だれがその受講をしたか管理したい場合、以下となります。
受講したトレーニングには、トレーニングと取引先責任者を紐づける中間テーブルです。(例:田中課長は10/23にTOEICトレーニングの受講が完了した。)

image.png

データ件数の数え方
もし、トレーニングが50個、従業員が50万人、平均5個受講している場合、受講したトレーニングは5個×50万で約250万となります。
100万件以上のデータを扱うため、大量データという判断になります。(私は今までの案件の経験から100万件以上データが入るとレポートやリストビューがタイムアウトしうるので、100万件を大量データの閾値としていますが、ここは人によって考え方が違います。ほかの受験者のかたは200万をバーにしているかたもいました。)
※ちなみに、一般的な案件でもそうだと思いますが、年間ではなく、一定期間システムが稼働したことを考慮し、5年間のランニングで100万件以上のデータを対象としていました。つまり毎年20万件増加していく場合はLDVの対象とします。

image.png

もし、トレーニングが見える人は、必ず受講したトレーニングが参照でき、かつ、トレーニング受講者が何件いたか数を積み上げたいケースは以下となります。(主従関係のリレーション)

image.png

大量データの対処(データ)
次に、LDV(大量データ)を特定した際に、その対処を伝えます。
・リストビューやレポートは大量データの場合、画面表示がタイムアウトする可能性があるので、スキニーテーブル(Salesforceサポートへ問合せがひつよう)やインデックスをはる対処を考えます。
・そもそもオブジェクトに投入されているデータが少なければガバナ制約に抵触しづらくなったり、タイムアウトの懸念が減るため、上記と合わせてデータパージ(削除)やアーカイブも検討します。その際に、どのようにパージやアーカイブをするか問われる可能性がありますので、回答を整理するようにしましょう。
例)ETLで定期的にSalesforceの履歴オブジェクトのデータを取得し、外部のストレージサービス(例えば安価で実績のあるAWSのS3)にデータを登録。そのあとSalesforceの履歴オブジェクトは削除する。
・もし、定義が変わりづらい単純な履歴要件であれば、BigObjectにデータを格納(画面で見たい場合、LWCでカスタム画面を構築)する手段もあるでしょう。(BigObjectはインデックスを変更するなどの際に、テーブルを作成しなおし、データの再投入が必要となりますので、よくテーブル定義が変わるようなデータの保管は向いていません。)
・仮にSalesforceに持ってくることのできない大量データをSalesforce上で参照したい場合、SalesforceConnectを活用するのも一案です。ただし1時間あたり2万回CallOutなどの制限が存在します。また、細やかなアクセス権限はできません。左記に抵触する可能性がある場合、カスタムで画面を作ることも検討が必要です。
<アクセス権限>SalesforceConnectの外部データソースは、Apexから取得でき、Where句で条件をかけられるのか?
・尚、海外の人では、Salesforceに履歴カスタムオブジェクトを用意し、ETLでAWSS3にアーカイブする際に、AWSS3へのリンクを履歴カスタムオブジェクトに書き込む、というかたもいました。そうすればアクセス権限も柔軟に対応できるかと思います。

以下も試験前に自分の中でシミュレーションすることをおすすめします。
・このデータは誰がどのように検索するのか?
・スキニーテーブルやインデックス、BigObjectの定義、制約
・SalesforceConncetは具体的にどこに何を設定するのか?
※ERPの請求データを、Salesforce上にSalesforceConnectを使って表示するケースがありますが、SAPのERPだと、すでにOdataに対応しており、ミドルウェアで変換せずに直接つなぐことができるケースがあります。古いERPだと、ミドルウェア(ESB)がODataプロバイダとして振る舞います。

大量データの対処(ファイル)
データだけでなくファイルストレージ(いわゆる見積書、アップロード画像など)についても、現状のキャパシティにはまるのか否か、はまらない場合は多少であれば追加ストレージの購入を検討、かなり外れるのであれば外部ストレージの購入/アーカイブを検討します。(私は、5年程度のファイルがキャパシティにはまりそうなら標準のSalesforceFileを使うことにしていました。)

具体例を挙げると、
 ・社員数が1,000人 ※内部
 ・利用しているSalesforceのEdition(いわゆるOrg・組織のグレード)はエンタープライズ向けの大規模システムのため、Unlimited(Performance) Edition
 ・ファイル数は、10万件のケースに10MBの問題商品画像がアップロードされる。(5年間)

キャパシティ=2,020GB=10GB(Unlimited組織のキャップ)+2GB×1,000人(Salesforceライセンスは2GB)
利用ストレージ(5年)=1,000GB=100,000×10MB
⇒明らかに キャパシティ<利用ストレージ のため、外部ストレージを検討します。

※コミュニティユーザに、ファイルストレージの容量はつきません。
※B, KB, MB, GB, TBくらいまでは単位の定義を覚えておきましょう。
※ファイルストレージのキャパシティ計算は必須、知識としてデータストレージやAPIコール数の上限の計算はできるようにしておきましょう。

ストレージ計算
https://help.salesforce.com/s/articleView?id=sf.overview_storage.htm&type=5

APIコール数
https://developer.salesforce.com/docs/atlas.ja-jp.salesforce_app_limits_cheatsheet.meta/salesforce_app_limits_cheatsheet/salesforce_app_limits_platform_api.htm

<ひっかけ>注意ポイントとして、外部ストレージにアーカイブする際に、画面を標準にするのかカスタムにするのか検討が必要です。

<必読>大量のデータを使用するリリースのベストプラクティス
https://developer.salesforce.com/docs/atlas.ja-jp.salesforce_large_data_volumes_bp.meta/salesforce_large_data_volumes_bp/ldv_deployments_introduction.htm

その他参考

・Data Model Gallery:かなり下にスクロールする必要あり。
https://architect.salesforce.com/diagrams#architecture-gallery

・私の過去のブログ
https://qiita.com/nori83/items/492132cb298e4cece5eb

<注意>今後受験されるかたはlucidchartを使ってください!!
SalesとServiceのデータモデル ※一部抜粋

image.png

FieldServiceのデータモデル ※一部抜粋

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?