カテゴリ:

差分プライバシー関数テーブル関数

ESTIMATE_REMAINING_DP_AGGREGATES

プライバシー予算の上限に達するまで実行可能な集計関数の推定数を返します。残りの集計数は 推定 です。プライバシー予算の上限に達するまで許可される集計関数の実際の数値は、様々な要因によって実際には異なる場合があります。

この関数は、差分プライバシーの実装とプライバシー保護されたテーブルのクエリの両方に役立ちます。

  • アナリストはこの機能を使って、予算ウィンドウにどれだけのプライバシー予算が残っているかを大まかに推定することができます。

  • プライバシーポリシーの所有者は、プライバシー予算の上限がすべてのユーザーにとって適切になるように、この関数を使って、 プライバシー予算の設定を微調整する ことができます。

プライバシー予算は、クエリごとではなく、 集計関数 ごとに計算されます。そのため、 SELECT SUM(age), COUNT(age) FROM T GROUP BY STATE; のクエリは、 SELECT SUM(age) FROM T; のクエリの2倍のプライバシー損失が発生します(つまり、クエリに2倍の「コスト」がかかります)。一般的に、すべての集計関数のコストは同じで、プライバシーポリシーの本文にある MAX_BUDGET_PER_AGGREGATE パラメーターの値です。GROUP BY 句は集計関数とは みなされず、プライバシーの損失は発生しないことに注意してください。

この関数は、費やされた予算(つまり、現在の累積プライバシー損失)も返しますが、Snowflakeは、費やされた予算ではなく、残りの推定予算に焦点を当てるためにこの関数を使用することをお勧めします。費やされる予算は線形関数(集計数 集計あたりのコスト)ではなく、むしろ 準線形* 関数です。つまり、追加集計の合計コストは、予算ウィンドウ中に使用すると減少します。このため、残りの集計の推定数は、式(プライバシー損失の残りの予算)/(関数ごとのプライバシー損失)よりも大きくなります。

構文

SNOWFLAKE.DATA_PRIVACY.ESTIMATE_REMAINING_DP_AGGREGATES('<table_name>')
Copy

引数

table_name

差分プライバシーポリシーで保護されているテーブルの名前。この関数は、前回の予算更新以降にこのテーブルに対して実行したクエリに基づいて、プライバシー予算データを返します。

出力

この関数は、以下の列を持つテーブルを返します。

データ型

説明

NUMBER_OF_REMAINING_DP_AGGREGATES

INT

アナリストがプライバシー予算の制限を超えるまで呼び出すことができる残りの集計関数の推定数。

BUDGET_LIMIT

DECIMAL

プライバシーポリシーで定義されている、指定されたテーブルを保護するプライバシー予算の現在の上限。

プライバシー予算の上限を調整するには、 プライバシーバジェットの設定 をご参照ください。

BUDGET_WINDOW

STRING

プライバシー予算の更新期間、つまり累積プライバシー損失が0にリセットされる頻度。テーブルを保護するプライバシーポリシーで定義されます。

予算ウィンドウを調整するには、 更新期間の変更 をご参照ください。

BUDGET_SPENT

DECIMAL

現在の予算ウィンドウ中に、現在のロールを使用している現在のユーザーに発生したプライバシー累積損失。

アクセス制御権限

この関数を実行するには以下の権限が必要です。

  • 指定したテーブルに対する SELECT 権限。

  • 指定したテーブルのデータベースとスキーマに対する USAGE 権限。

使用上の注意

  • 推定は、関数を実行するユーザーが実行したクエリに基づいています。クエリは、いくつかの条件に基づいてプライバシー予算に関連付けられます。したがって、この関数を実行するために使用する環境が、クエリを実行するために使用する環境(例えば、ユーザー、ロール、アカウント)とまったく同じであることを確認してください。

  • 複数のテーブルを使用するクエリを実行する場合は、テーブルごとに ESTIMATE_REMAINING_DP_AGGREGATES を1回実行し、 NUMBER_OF_REMAINING_DP_AGGREGATES の最低値を推定使用量上限として使用する必要があります。

  • 空の出力は、テーブルが差分プライバシーによって保護されていない(つまり、プライバシーポリシーが割り当てられていない)ことを示しています。

SELECT * FROM TABLE(SNOWFLAKE.DATA_PRIVACY.ESTIMATE_REMAINING_DP_AGGREGATES('my_table'));
Copy
+-----------------------------------+--------------+---------------+--------------+
| NUMBER_OF_REMAINING_DP_AGGREGATES | BUDGET_LIMIT | BUDGET_WINDOW | BUDGET_SPENT |
|-----------------------------------+--------------+---------------+--------------|
|                 994               |     233      |     WEEKLY    |     1.8      |
+-----------------------------------+--------------+---------------+--------------+

ESTIMATE_REMAINING_DP_AGGREGATES 関数を使ってクエリーの効果を見る方法を示している拡張された例については、 プライバシーバジェット支出の追跡 をご参照ください。