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

派生プロパティのリファレンス

このページでは、派生プロパティで利用可能な集計と式を一覧で示し、それぞれを使用できる場所とパフォーマンスの比較について説明します。

集計

集計は、多数のリンクされたオブジェクトの値を1つの値にまとめます。リンクの走査で複数のオブジェクトに到達する可能性がある場合は、必ず集計が必要です。オントロジー定義の派生プロパティと実行時定義の派生プロパティは、どちらも集計をサポートします。

リンクを介した選択と集計には、別の派生プロパティ定義を埋め込めませんが、それらのプロパティセレクターは、すでにスコープ内にあるプロパティを参照できます。式では、以下で説明するように、ネイティブプロパティ、またはリンクを介した選択と集計の結果を使用できます。

次のテーブルは、各集計について、Ontology Manager での名前、オントロジー SDK でのメソッド名、入力として受け付けるプロパティタイプ、および生成する値のプロパティタイプを示しています。

Ontology Manager での名前オントロジー SDK でのメソッド名ソースのプロパティタイプ結果のプロパティタイプ
件数$count該当なしLong
平均avg数値Double
合計sum数値数値、拡張あり(以下を参照)
最小値min数値、文字列、ブール値、日付、タイムスタンプソースと同じ
最大値max数値、文字列、ブール値、日付、タイムスタンプソースと同じ
近似カーディナリティapproximateDistinct数値、文字列、ブール値、日付、タイムスタンプLong
完全一致カーディナリティexactDistinct数値、文字列、ブール値、日付、タイムスタンプLong
リストを収集collectListvector 以外のすべてソースのデータ型の配列
セットを収集collectSetvector 以外のすべてソースのデータ型の配列
利用不可approximatePercentile数値ソースと同じ

このテーブルでは、数値には byte、short、integer、long、float、double、decimal が含まれます。

有効なソースのプロパティタイプはそれぞれ、スカラーまたはそのデータ型の配列にできます。集計では、結果を計算する前に配列の入力をフラット化します。たとえば、array<integer> プロパティのパーセンタイルは integer を返します。

結果のデータ型の拡張

合計集計は、オーバーフローを避けるために結果の数値データ型を拡張します。

ソースのデータ型結果のデータ型
short, integerlong
longlong
floatdouble
doubledouble
decimaldecimal、精度を増やし、必要に応じてスケールを減らします

収集の動作

リストを収集集計とセットを収集集計には、次の共通の動作があります。

  • プロパティリデューサーが定義されていない場合、収集された値の順序は保証されません。プロパティリデューサーが定義されている場合、Foundry はリデューサーが適用されているかどうかにかかわらず、それらを使用して返される値を並べ替えます。
  • プロパティの値がないオブジェクトはスキップされるため、結果の配列に null が含まれることはありません。
  • セットを収集は重複する値を削除します。リストを収集は重複する値を保持します。
  • セットを収集では、上限が適用される前に重複が削除されます。上限は、考慮される値の総数ではなく、返される一意の値の数を制御します。
  • 上限のデフォルトは 10 です。最大 100 まで増やせます。
  • 上限によって決まるのは返される値であり、プラットフォームが評価する値ではありません。収集されたプロパティを使って絞り込む前に、収集の上限の詳細を確認してください。

プロパティリデューサーは、表示とインターフェースの実装のために、収集された配列から代表値を1つ選択できます。リデューサーは、クエリで使用される配列全体を変更しません。

集計のデータ型に関する制限

ベクトルプロパティは、派生プロパティによる集計や選択の対象にできません。派生プロパティはベクトル値を生成できません。

式

式は、値を算術的に組み合わせたり、日付の一部を抽出したりします。実行時定義の派生プロパティでのみ利用可能です。

現在、式では固定リテラルはサポートされていません。式ベースの派生プロパティは、宣言順序で先に定義された派生プロパティのみを参照できます。具体的には、内側のオブジェクトセット式で定義された派生プロパティです。たとえば、複数の withProperties 操作を連結する場合、派生プロパティは後続の式ベースの操作で参照できますが、同じ操作内や、宣言順序でそれより前の操作では参照できません。リンクされたプロパティベースおよび集計ベースの派生プロパティは、ほかの派生プロパティを一切参照できません。

数値の式

オントロジー SDK説明
add2つの値を加算します。
subtract1つ目の値から2つ目の値を減算します。
multiply2つの値を乗算します。
divide1つ目の値を2つ目の値で除算します。
max2つの値のうち大きい方を返します。
min2つの値のうち小さい方を返します。
abs絶対値を返します。
negate値の符号を反転します。

日付とタイムスタンプの式

オントロジー SDK説明
min2つの値のうち早い方を返します。
max2つの値のうち遅い方を返します。
extractPart日付の構成要素を抽出します。DAYS、MONTHS、QUARTERS、YEARS を受け付けます。

式には、@osdk/client パッケージのバージョン 2.4.0 以降が必要です。

選択するか集計するかを選ぶ

プロパティを直接選択できるかどうかは、各リンクの走査で到達できるオブジェクトの数によって決まります。複数のオブジェクトに到達できる場合は、集計が必要です。

リンクチェーン利用可能な操作
すべての走査で到達するオブジェクトが最大1個プロパティを直接選択、または集計
いずれかの走査で複数のオブジェクトに到達できる集計が必要
チェーンに多対多リンクが含まれる集計が必要。選択は一切許可されない
外部キーが配列である一対多リンク集計が必要。どちらの方向でも多数のオブジェクトに到達する可能性があるものとして扱われる

派生プロパティをネイティブプロパティと比較する

定義された派生プロパティは、同じリクエスト内ではネイティブプロパティとほぼ同様に動作しますが、いくつかの違いがあります。

操作サポートの有無注記
結果に含めて返すはい派生プロパティは、プロパティタイプにかかわらず明示的に選択する必要があります。
絞り込むはい完全一致、範囲、接頭辞、フレーズ、全文、地理、相対日付のフィルターが含まれます。
並べ替えはいWorkshop では、派生プロパティを使用するオブジェクトセットを並べ替えると、セットが200行に制限されます。
集計はい
グループ化はい
別の派生プロパティから参照する制限ありリンクされたプロパティベースおよび集計ベースの派生プロパティは、ほかの派生プロパティを参照できません。式ベースでのサポートは、上記のとおり宣言順序によって異なります。
アクションまたは関数で編集するいいえ派生プロパティは読み取り専用です。
主キーとして使用するいいえ
リンクタイプの外部キーとして使用するいいえ

集計別のスケールとパフォーマンス

派生プロパティの値はクエリ時に評価され、インデックス化されません。パフォーマンスは主にデータの規模、つまり評価されるオブジェクト数と、それぞれから到達するリンクされたオブジェクトの数に依存します。相対的なコストは、リクエストの遅延とコンピューティング使用量を反映します。

  • 派生プロパティの読み込みとは、その値を結果として返すことを意味し、どの集計でも比較的低コストです。コストは集計リクエストとほぼ同等です。
  • 派生プロパティでの検索とは、その値による絞り込みや並べ替えを意味し、ほとんどの集計でコストが高くなります。リストを収集とセットを収集は例外です。これらの集計での検索は、多くの場合、プラットフォームがソースプロパティの既存のインデックスにプッシュダウンできます。
集計読み込みコスト検索コスト注記
件数低高
合計、平均、最小値、最大値低高
近似カーディナリティ低高正確な件数が必要でない限り、正確なカーディナリティよりもこちらを推奨します。
正確なカーディナリティ中高
近似パーセンタイル低高実行時に定義されるもののみです。
リストを収集、セットを収集低低コストは表示上限ではなく、リンクされたオブジェクトの数に応じて増加します。

追加のガイダンス:

  • 近似カーディナリティを優先する: 正確なカーディナリティは、パフォーマンスが大幅に低下します。正確な件数が必要で、追加の遅延を許容できる場合にのみ使用します。
  • 走査回数とリンクのカーディナリティを考慮する: 走査のたびに中間結果のサイズが増加する可能性があります。全体のパフォーマンスは、データの規模とリンクされたオブジェクトの数の両方に依存します。
  • 集計前に絞り込む: リンクされたオブジェクトセットにフィルターを適用すると、集計で処理する必要があるオブジェクトの数が減少します。
  • 大規模な場合は事前計算した値を検討する: 派生プロパティによって許容できない遅延が発生する場合は、オントロジーの構造に関するガイダンスで、非正規化が適切なトレードオフとなる条件を確認してください。

プラットフォーム全体の実行しきい値とフォールバック動作については、オントロジークエリの制限を確認してください。コンピューティングコストについては、クエリのコンピューティング使用量を確認してください。