注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

派生プロパティ

派生プロパティは、クエリ時にほかのプロパティやリンクされたオブジェクトから値が計算されるプロパティです。派生プロパティは値を保存するのではなく、その計算方法を定義します。計算方法には、リンクをたどってリンクされたオブジェクトからプロパティを選択する方法、多数のリンクされたオブジェクトを横断して集計する方法、値を算術演算で組み合わせる方法があります。

派生プロパティは保存されるのではなく計算されるため、基になるデータが変化しても正しい値を維持します。たとえば、リンクされた Employee オブジェクトの件数を計算する派生プロパティは、パイプラインを再実行したり更新ロジックを保守したりすることなく、入社や退職を自動的に反映します。

派生プロパティでは、次の3つの方法のいずれかで値を計算できます。

  • リンクされたオブジェクトを横断して集計する: Department オブジェクトタイプで、リンクされた Employee オブジェクトの平均給与を公開できます。
  • リンクされたオブジェクトから選択する: Employee オブジェクトタイプで、リンクされた1個の Employee オブジェクトから選択した上司の名前を公開できます。
  • 式を計算する: Employee オブジェクトタイプで、salary と bonus を加算して計算した報酬総額を公開できます。

派生プロパティは読み取り専用です。アクションや関数で編集することはできず、オブジェクトストレージには保存されません。

オントロジー定義と実行時定義の派生プロパティ

派生プロパティは、オントロジーまたは実行時に定義できます。どちらの形式を使用するかによって、設定する場所、ほかに誰が閲覧できるか、利用可能な機能が決まります。

派生プロパティの2つの形式の比較。オントロジー定義の派生プロパティは Ontology Manager で設定し、Workshop、オントロジー SDK、Insight などのほかのアプリケーションで使用できます。一方、実行時定義の派生プロパティは、それを宣言するワークフロー内でのみ使用できます。

オントロジー定義実行時定義
設定する場所Ontology ManagerWorkshop モジュール、Insight ワークブック、またはオントロジー SDK リクエスト
保存先オントロジー定義オブジェクトセット定義
閲覧範囲オブジェクトタイプを利用するすべての利用者宣言元のリクエストまたはモジュール、およびその派生プロパティを含む保存済みオブジェクトセットにアクセスできるユーザー
リンク走査の最大回数3Workshop、Insight: 1;オントロジー SDK:固定の上限なし
式利用できません利用可能
開発ステータスベータ版一般提供
ベータ版

オントロジー定義の派生プロパティは開発のベータ版フェーズにあり、お使いのエンロールメントでは利用できない場合があります。開発が進む中で機能が変更される可能性があります。実行時定義の派生プロパティは一般提供されています。

計算が組織によるオブジェクトタイプのモデル化の一部であり、すべての利用者に表示する必要がある場合は、オントロジー定義の派生プロパティを使用します。計算が単一のアプリケーションや分析に属する場合、または算術式や日付式が必要な場合は、実行時定義の派生プロパティを使用します。

利用可能な集計と式の完全な一覧については、派生プロパティリファレンスを参照してください。

式とリンクベースの派生プロパティ

リンクベースの派生プロパティは、リンクされたオブジェクトから値を選択または集計します。オントロジー定義と実行時定義のどちらの派生プロパティも、リンクベースの計算に対応しています。

式は、ネイティブプロパティ、またはリンクや集計による派生プロパティを使用して、算術計算や日付計算を実行します。式を利用できるのは、実行時定義の派生プロパティのみです。計算プロパティは、同じ withProperties 操作で宣言された別の計算プロパティを参照できません。代わりに、依存するプロパティを後続の操作で宣言してください。

利用可能なアプリケーション

アプリケーション対応内容
Ontology Managerオブジェクトタイプにオントロジー定義の派生プロパティを設定します。
Workshopオントロジー定義の派生プロパティを使用するか、一部のウィジェット向けにモジュールレベルで実行時定義の派生プロパティを定義します。
オントロジー SDKオントロジー定義の派生プロパティを使用するか、withProperties 操作で実行時定義の派生プロパティを定義し、結果、フィルター、並べ替え、集計で使用します。
Insightオントロジー定義の派生プロパティを使用するか、テーブル分析に実行時定義の派生プロパティを追加します。

TypeScript オントロジー SDK(オントロジー SDK 2.x)では、対応する @osdk/client パッケージの最小バージョンは 2.2.0-beta.x です。リンクされたオブジェクトからプロパティを選択する場合や、算術式または日付式を使用する場合は、バージョン 2.4.0 以降が必要です。詳細については、Developer Console の API ドキュメントを参照してください。

派生プロパティのセキュリティ

派生プロパティは、その計算に使用されるすべてのオブジェクトからセキュリティを継承します。値を組み合わせる前に、計算に含まれる各オブジェクトに対してアクセスチェックが適用されます。これには、複数ホップの走査における中間オブジェクトも含まれます。

その結果、2人のユーザーが同じオブジェクトの同じ派生プロパティに対して異なる値を見ることがあります。各ユーザーの計算値には、そのユーザーに閲覧権限があるソースオブジェクトと中間オブジェクトのみが反映されます。

リンクされた Quest オブジェクトの件数を計算し、報酬の最大値を返す Game World オブジェクトタイプの派生プロパティ。1つのリージョンにアクセスできるプレイヤーには、クエストの合計件数が2件、報酬の最大値が150と表示されます。一方、すべてのリージョンにアクセスできる管理者には、クエストの件数が34件、報酬の最大値が1,200と表示されます。

値をリストやセットに収集する集計では、収集された各値のセキュリティマーキングが保持されるため、リスト内の個々の値にそれぞれのマーキングが付与されます。詳細については、プロパティのセキュリティマーキングを参照してください。

パフォーマンスとスケール

派生プロパティの値は、保存やインデックス化されるのではなく、クエリ時に評価されます。ただし、プラットフォームでは、フィルターを基になるオブジェクトインデックスにプッシュダウンすることで多くのクエリを最適化し、派生値の計算前に処理する必要があるデータを削減できます。

パフォーマンスは、フィルター適用後に残るオブジェクトの数、リンクされたオブジェクトの数と中間結果のサイズ、集計の種類、リンク走査の回数によって異なります。派生値による絞り込みや並べ替えでは、通常、残りの候補オブジェクトについてその値を計算する必要があります。クエリによっては、一部の結合や集計もプッシュダウンできます。

実行のしきい値、フォールバックの動作、クエリ設計のガイダンスについては、オントロジークエリの制限を参照してください。派生プロパティのクエリにかかるコンピュートコストについては、クエリのコンピュート使用量を参照してください。派生プロパティとパイプラインで事前計算した値のどちらを選ぶかについては、オントロジーの構造に関するガイダンスを参照してください。

コレクションの制限

リストを収集およびセットを収集の集計では、返される値の数に上限を指定できます。この上限は返される値を制限しますが、プラットフォームが評価する値は制限しません。

収集されたプロパティに対するフィルター、並べ替え、集計は、切り詰められたリストではなく、すべての値を対象に実行されます。そのため、受け取るリストに含まれていない値によって、オブジェクトがフィルターに一致することがあります。

収集されたプロパティに対するフィルターは、コレクションの上限内の値だけでなく、元の値をすべて確認します。つまり、フィルターの条件を満たした値が返されるリストに含まれていなくても、一致することがあります。返されるリストは上限に合わせて切り詰められますが、フィルターの対象は制限されません。リデューサーも同様に動作します。リデューサーはコレクションの上限を 1 に設定することと同等ですが、返される1個の値だけでなく、元の値すべてをフィルターの対象にします。

Recipe オブジェクトで Healthy を検索した例。レシピタグをリストとして収集する派生プロパティがあり、表示上限は3です。Turkey Burger の Recipe はタグの1つが Healthy であるため一致しますが、最初の3個のタグ(Dinner、Weeknight、Grill)のみが返されます。

制限事項

派生プロパティは現在も開発が進められており、オントロジーで定義された派生プロパティはベータ版です。以下の制限事項は、現在の動作を反映しています。

すべての派生プロパティ

  • Object Storage v1: 派生プロパティを使用するクエリには、OSv1 を使用してインデックス化されたオブジェクトタイプを含めることはできません。
  • 主キー: 主キープロパティを派生プロパティにすることはできません。
  • 必須プロパティ: 派生プロパティを必須に指定することはできません。
  • Value Types: Value Type を派生プロパティに直接適用することはできません。ただし、派生プロパティはソースプロパティの Value Type を継承します。
  • 表示の書式設定: 派生プロパティには、条件付き書式設定ルールや値の書式設定を構成することはできません。
  • インラインアクション: 派生プロパティには、インラインアクションを構成することはできません。
  • Automate: Automate の条件で派生プロパティによる絞り込みを行えるのは、スケジュール監視を使用する場合のみです。ライブ監視は派生プロパティに対応していません。

オントロジーで定義された派生プロパティ

  • リンクのトラバーサル: 派生プロパティあたりのリンクのトラバーサルは最大3回です。
  • 算術式および日付式: 対応していません。オントロジーで定義された派生プロパティは、リンクのトラバーサルと集計のみに対応しています。算術計算や日付計算が必要な場合は、代わりに実行時に定義される派生プロパティを使用します。

実行時に定義される派生プロパティ

  • 連鎖した式: 算術式または日付式では、同じ withProperties 操作で宣言された別の式を参照できません。代わりに、依存する式を後続の withProperties 操作で宣言します。