- スタート アップ ガイド
- ライセンス
- セットアップと構成
- サービスの利用
- 参照
- 例とチュートリアル
- ログ
エンティティ モデリングとクエリのベスト プラクティス
Data Fabric / Data Service のエンティティのモデリングとクエリのガイダンス: ビジネス オブジェクト スコープ、クロスエンティティ クエリ、フィルター、クエリ量、トランザクション スコープ。
Data Fabric/Data Service のエンティティは 1 つのビジネス オブジェクトを表します。このページのプラクティスでは、エンティティ スキーマをその境界に沿った状態に保ち、プラットフォームとそのソース システムが確実に処理するボリューム内にクエリを保持します。
特定のエンティティに適用されるプラクティスは、そのエンティティが ネイティブ かフェ デレーションかによって異なります。この 2 つの違いについては、「 エンティティ型」をご覧ください。
| 実践 | 適用対象 |
|---|---|
| ビジネス オブジェクトあたり 1 つのエンティティ | ネイティブおよびフェデレーション |
| ビジネス オブジェクト間の結合 | ネイティブおよびフェデレーション |
| ソースでのフィルター処理と集計 | ネイティブおよびフェデレーション |
| フェデレーション クエリの量 | 連携 |
| トランザクション スコープ | ネイティブ |
ビジネス オブジェクトあたり 1 つのエンティティ
エンティティは 1 つのビジネス オブジェクトを表すように設計されており、各エンティティは 1 つに制限されています。1 つのエンティティに複数のビジネス オブジェクトを埋め込むことはできません。また、ビジネス プロセス全体をモデリングしてはなりません。
ビジネス プロセスが複数のビジネス オブジェクトにまたがっている場合、各オブジェクトはそれ自体のエンティティに属し、それらの間の接続はリレーションシップとしてモデル化されます。リレーションシップの定義方法については、「 リレーションシップを作成する」をご覧ください。
ビジネス オブジェクト間の結合
多くの場合、1 つのオートメーションで複数のビジネス オブジェクトからのデータが必要になります。[ 複数のエンティティ レコードにクエリを実行 ] アクティビティには、1 つのエンティティを拡張してすべてのエンティティを保持するのではなく、複数のエンティティにまたがるデータを取得する 1 つのインターフェイスが用意されています。
ソースでのフィルター処理と集計
ネイティブ エンティティとフェデレーション エンティティはどちらも、フィルターと集計をサポートします。使用しているインターフェイスに応じて、このプラットフォームは SQL スタイルの WHERE 句または OData フィルター クエリに加え、 SUM、 COUNT、 AVGなどの集計関数を受け入れます。
この作業をオートメーション内で実行するのではなく、プラットフォームに任せると、以下の 3 つの影響があります。
- 実行時のデータ移動が減る
- クエリのパフォーマンスが向上します。
- オートメーションにコード化されるロジックはシンプルなままです。
フェデレーション クエリの量
フェデレーション エンティティに対するクエリは、Workday、Salesforce、SAP などのライブの記録システムから読み取ります。このようなシステムは、トランザクション要求によって大量のデータを取得する場合、一貫して信頼性の高いパフォーマンスを提供できません。Data Fabric/Data Service のエンティティは、トランザクションのユース ケース向けに設計されています。
各クエリを 50 MB 未満の取得データに保持するフィルターにより、要求をこれらのソースが確実に提供する範囲内に維持されます。外部データを読み取るクエリにプラットフォーム自体が適用する制限については、「 外部データのクエリの制限」をご覧ください。
トランザクション スコープ
Data Fabric / Data Service は、ACID 準拠のトランザクション (アトミック、一貫性、分離性、耐久性) を提供し、単一のネイティブ エンティティにスコープが設定されて提供されます。
複数のネイティブ エンティティを変更する操作には、それを 1 つのユニットとしてカバーするプラットフォーム レベルのトランザクションはありません。ユース ケースでその保証が必要な場合、トランザクション セマンティクスはアプリケーション レイヤーまたはオートメーション レイヤーで処理されます。