ESTIMATE_REMAINING_DP_AGGREGATES¶
Renvoie le nombre estimé de fonctions d’agrégation qui peuvent être exécutées avant que la limite d’un budget de confidentialité ne soit atteinte. Le nombre d’agrégats restants est estimé. Le nombre réel de fonctions agrégées autorisées avant d’atteindre la limite du budget de confidentialité peut varier dans la pratique, en fonction de divers facteurs.
Cette fonction est utile à la fois pour mettre en œuvre la confidentialité différentielle et pour interroger des tables protégées par la confidentialité :
Les analystes peuvent utiliser cette fonction pour estimer approximativement le montant du budget de confidentialité qui leur reste dans une fenêtre budgétaire.
Les propriétaires de politiques de confidentialité peuvent utiliser cette fonction pour affiner leurs paramètres de budget de confidentialité afin que la limite d’un budget de confidentialité soit appropriée pour chaque utilisateur.
Le budget de confidentialité est calculé par fonction d’agrégation, pas par requête. Donc la requête SELECT SUM(age), COUNT(age) FROM T GROUP BY STATE;
entraîne deux fois plus de perte de confidentialité que la requête SELECT SUM(age) FROM T;
(c’est-à-dire que la requête « coûte » deux fois plus cher). En général, toutes les fonctions agrégées ont le même coût : la valeur du paramètre MAX_BUDGET_PER_AGGREGATE
dans le corps de la politique de confidentialité. Notez qu’une clause GROUP BY n’est pas considérée comme une fonction d’agrégation et n’entraîne pas de perte de confidentialité.
La fonction renvoie également le budget dépensé (c’est-à-dire la perte de confidentialité cumulée actuelle), mais Snowflake recommande d’utiliser la fonction pour se concentrer sur le budget restant estimé plutôt que sur le budget dépensé. Le budget dépensé n’est pas une fonction linéaire (nombre d’agrégations coût par agrégation), mais plutôt une fonction sous-linéaire*. Cela signifie que le coût total des agrégations supplémentaires diminue avec l’utilisation pendant une fenêtre budgétaire. C’est pourquoi le nombre estimé d’agrégats restants est supérieur à la formule (budget restant de perte de confidentialité) / (perte de confidentialité par fonction).
Syntaxe¶
SNOWFLAKE.DATA_PRIVACY.ESTIMATE_REMAINING_DP_AGGREGATES('<table_name>')
Arguments¶
table_name
Le nom de la table protégée par une politique de confidentialité différentielle. La fonction renvoie les données budgétaires de confidentialité en fonction des requêtes que vous avez exécutées sur cette table depuis la dernière actualisation du budget.
Sortie¶
La fonction renvoie un tableau avec les colonnes suivantes :
Colonne |
Type de données |
Description |
---|---|---|
|
INT |
Le nombre estimé de fonctions agrégées restantes qu’un analyste peut appeler avant de dépasser la limite du budget de confidentialité. |
|
DECIMAL |
La limite actuelle du budget de confidentialité protégeant la table spécifiée, telle que définie dans la politique de confidentialité. Pour ajuster la limite du budget de confidentialité, voir Définir les paramètres de confidentialité pour un budget de confidentialité. |
|
STRING |
La période d’actualisation du budget de confidentialité, c’est-à-dire la fréquence à laquelle la perte de confidentialité cumulée est réinitialisée à 0. Défini dans la politique de confidentialité protégeant la table. Pour ajuster la fenêtre budgétaire, voir Modifier la période d’actualisation. |
|
DECIMAL |
La perte de confidentialité cumulée subie par l’utilisateur actuel utilisant le rôle actuel pendant la fenêtre budgétaire actuelle. |
Privilèges de contrôle d’accès¶
Vous avez besoin des privilèges suivants pour exécuter cette fonction :
Privilège SELECT sur la table spécifiée.
Privilège USAGE sur la base de données et le schéma de la table spécifiée.
Notes sur l’utilisation¶
Les estimations sont basées sur les requêtes exécutées par l’utilisateur qui exécute la fonction. Une requête est associée à un budget de confidentialité en fonction de plusieurs conditions. Assurez-vous donc que l’environnement que vous utilisez pour exécuter cette fonction est exactement le même que celui utilisé pour exécuter les requêtes (par exemple, utilisateur, rôle et compte).
Si vous exécutez une requête qui utilise plusieurs tables, vous devez exécuter ESTIMATE_REMAINING_DP_AGGREGATES une fois par table, puis utilisez la valeur la plus basse
NUMBER_OF_REMAINING_DP_AGGREGATES
comme plafond d’utilisation estimé.Une sortie vide indique que la table n’est pas protégée par la confidentialité différentielle (c’est-à-dire qu’aucune politique de confidentialité ne lui est attribuée).
Exemples¶
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 |
+-----------------------------------+--------------+---------------+--------------+
Pour un exemple détaillé qui montre comment utiliser la fonction ESTIMATE_REMAINING_DP_AGGREGATES pour voir les effets des requêtes, voir Suivi des dépenses du budget de confidentialité.