注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry では、扱うデータの複雑さと量によっては、カーディナリティの高い集計の性質上、アプリケーションに完全に正確な結果が表示されない場合があります(「不正確な集計」とも呼ばれます)。
object-set-service API には、集計の精度に関連する次のフィールドがあり、利用可能な場合はこれらを使用して精度を高めることができます。
AggregationExecutionMode を追加し、PREFER_ACCURACY に設定できます。設定すると、API のレスポンスは遅くなりますが、より正確な結果が提供されます。ただし、完全な正確性は保証されません。AggregateResultAccuracy フィールドが含まれます。Foundry の各製品では、集計が不正確である可能性を示す挙動が少しずつ異なります。以下のセクションでは、Foundry で不正確な集計がどのように現れるかの例と、正確な結果を得るためにユーザーが考慮すべき事項を説明します。
詳しいガイダンスについては、Palantir サポートにお問い合わせください。
以下の2枚のヒストグラムのスクリーンショットは、2,000万個のオブジェクトを含むデータセットのデータを示しています。1枚目は Object Explorer に取り込んだデータセットのスクリーンショットで、2枚目は Workshop 内の Workshop フィルターリストウィジェットです。
これらのヒストグラムは、2回の集計リクエストを使用して作成されています。1回目のリクエストでは、件数の多い上位100個のバケットの取得を試み、近似のレスポンスを受け取ります。2回目のリクエストでは、同じ100個のバケットの件数を再度取得しますが、さらに、この100個のバケットだけに絞り込むことで件数の正確性を確保します。
表示される件数は正確ですが、1回目の集計レスポンスが正確ではなかったため、表示されるバケットが件数の多い実際の上位100個のバケットではないという点で、2つ目のヒストグラムは依然として不正確です。
Object Explorer と Workshop から OSS へのリクエストでは AggregationExecutionMode が指定されず、OSS のデフォルトは PREFER_SPEED です。
Quiver と Workshop のピボットテーブルで列を件数の降順に並べ替えると、上位のバケットが正しい順序で表示されません。この場合、不正確な集計は次のいずれかのエラーメッセージで示されることがあります。
column の値が多すぎるため、一部の値は表示されていません」以下の例では、Example Bucket 列が意図したとおりに降順で並んでいません。
Quiver と Workshop は、ピボットテーブルの元となる集計リクエストで順序を指定しないため、これらは件数の多い実際の上位バケットではありません。並べ替えは、返されたバケットを使用してフロントエンドで行われます。
オントロジー SDK は PREFER_ACCURACY に設定されており、集計の複雑さが限定されているため、すべてのクエリレスポンスが ACCURATE になります。

Functions は常に PREFER_ACCURACY を使用するため、特定のバケットの値は正確になります。現在、関数呼び出し中に groupBy と orderBy を同時に実行する方法はありません。次のコードスニペットは、バックエンドで groupBy を実行し、メモリー内で並べ替える現在の例を示しています。
@Function()
public async aggregateOnMoreBucketsThanAuthorized(): Promise<TwoDimensionalAggregation<string, Double>> {
// 集計して合計します
const aggregation = await Objects.search()._af20mInstancesObv2()
.groupBy(o => o.exampleBucket.topValues())
.count()
aggregation.buckets.sort((b1, b2) => b2.value - b1.value);
return aggregation;
}
結果の例:
{
"buckets": [
{
"key": {
"string": "10105",
"type": "string"
},
"value": {
"double": 461,
"type": "double"
}
},
{
"key": {
"string": "10163",
"type": "string"
},
"value": {
"double": 454,
"type": "double"
}
},
{
"key": {
"string": "10848",
"type": "string"
},
"value": {
"double": 454,
"type": "double"
}
},
...