ESTIMATE_REMAINING_DP_AGGREGATES¶
返回聚合函数的估计数量,该聚合函数可以在达到隐私预算限制之前运行。剩余聚合函数的数量是 估计 值。在实际操作中,达到隐私预算限制之前允许的聚合函数的实际数量可能会有所不同,这取决于各种因素。
这个函数对于实现差分隐私和查询隐私保护表都很有用:
分析师可以使用此函数大致估算他们在预算窗口中剩余的隐私预算。
隐私政策所有者可以使用此函数来 微调其隐私预算设置,以便每个用户的隐私预算限制是合适的。
隐私预算是根据每个 聚合函数 计算的,而不是根据每个查询。所以查询 SELECT SUM(age), COUNT(age) FROM T GROUP BY STATE;
的隐私损失是查询 SELECT SUM(age) FROM T;
的两倍(也就是说,查询的“成本”是两倍)。一般来说,所有聚合函数的成本是相同的:隐私政策正文中 MAX_BUDGET_PER_AGGREGATE
参数的值。请注意,GROUP BY 子句 不 被视为聚合函数,并且不会导致隐私损失。
该函数还返回已花费的预算(即当前累积隐私损失),但 Snowflake 建议使用该函数专注于估计的剩余预算,而不是已花费的预算。预算支出不是线性函数(聚合函数的数量 * 每个聚合的成本),而是一个 次线性 函数。这意味着在预算窗口期间,其他聚合函数的总成本随着使用而降低。这就是为什么剩余聚合函数的估计数量大于公式(隐私损失的剩余预算)/(每个函数的隐私损失)。
语法¶
SNOWFLAKE.DATA_PRIVACY.ESTIMATE_REMAINING_DP_AGGREGATES('<table_name>')
实参¶
table_name
受差分隐私政策保护的表的名称。根据自上次预算刷新以来您对该表运行的查询,该函数返回隐私预算数据。
输出¶
该函数返回一个包含以下列的表:
列 |
数据类型 |
描述 |
---|---|---|
|
INT |
分析师在超过隐私预算限制之前可以调用的剩余聚合函数的估计数量。 |
|
DECIMAL |
当前保护指定表的隐私预算限制,如隐私政策中所定义。 要调整隐私预算限制,请参阅 为隐私预算设置隐私设置。 |
|
STRING |
隐私预算的刷新周期,即累积隐私损失重置为 0 的频率。在保护表的隐私政策中定义。 要调整预算窗口,请参阅 修改刷新时间段。 |
|
DECIMAL |
当前用户在当前预算窗口内使用当前角色所造成的累积隐私损失。 |
访问控制权限¶
您需要以下权限才能运行此函数:
对指定表的 SELECT 权限。
对数据库和指定表架构的 USAGE 权限。
使用说明¶
估计基于执行该函数的用户所运行的查询。查询与基于多个条件的隐私预算相关,因此请确保您用于执行此函数的环境与用于执行查询的环境完全相同(例如,用户、角色和账户)。
如果您正在运行一个使用多个表的查询,您应该每个表运行一次 ESTIMATE_REMAINING_DP_AGGREGATES,然后使用最低的
NUMBER_OF_REMAINING_DP_AGGREGATES
值作为估计的使用上限。空输出表示该表未受到差分隐私保护(即未分配隐私政策)。
示例¶
SELECT * FROM TABLE(SNOWFLAKE.DATA_PRIVACY.ESTIMATE_REMAINING_DP_AGGREGATES('my_table'));
+-----------------------------------+--------------+---------------+--------------+
| NUMBER_OF_REMAINING_DP_AGGREGATES | BUDGET_LIMIT | BUDGET_WINDOW | BUDGET_SPENT |
|-----------------------------------+--------------+---------------+--------------|
| 994 | 233 | WEEKLY | 1.8 |
+-----------------------------------+--------------+---------------+--------------+
要查看如何使用 ESTIMATE_REMAINING_DP_AGGREGATES 函数以了解查询效果的扩展示例,请参阅 跟踪隐私预算消耗。