Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'un filtre de données
Vous pouvez créer un ou plusieurs filtres de données pour chaque table du catalogue de données.
Pour créer un filtre de données pour une table du catalogue de données (console)
-
Ouvrez la console Lake Formation à l'adresse https://console.aws.amazon.com/lakeformation/
. Connectez-vous en tant qu'administrateur du lac de données, propriétaire de la table cible ou principal disposant d'une autorisation Lake Formation sur la table cible.
-
Dans le volet de navigation, sous Catalogue de données, sélectionnez Filtres de données.
-
Sur la page Filtres de données, choisissez Créer un nouveau filtre.
-
Dans la boîte de dialogue Créer un filtre de données, entrez les informations suivantes :
-
Nom du filtre de données
-
Base de données cible : spécifiez la base de données qui contient la table.
-
Tableau des cibles
-
Accès au niveau des colonnes : laissez ce paramètre défini sur Accès à toutes les colonnes pour spécifier le filtrage des lignes uniquement. Choisissez Inclure les colonnes ou Exclure les colonnes pour définir le filtrage des colonnes ou des cellules, puis spécifiez les colonnes à inclure ou à exclure.
Colonnes imbriquées : si vous appliquez le filtre à une table contenant des colonnes imbriquées, vous pouvez spécifier explicitement les sous-structures des colonnes de structure imbriquées dans un filtre de données.
Lorsque vous accordez l'autorisation SELECT à un principal sur ce filer, le principal exécutant la requête suivante ne verra que les données pour
customer.customerNameet noncustomer.customerId.SELECT "customer" FROM "example_db"."example_table";
Lorsque vous accordez des autorisations à la
customercolonne, le principal reçoit l'accès à la colonne et aux champs imbriqués situés sous la colonne (customerNameetcustomerID). -
Expression de filtre de ligne : entrez une expression de filtre pour spécifier le filtrage des lignes ou des cellules. Pour les types de données et les opérateurs pris en charge, consultezSupport partiQL dans les expressions de filtre de ligne. Choisissez Accès à toutes les lignes pour accorder l'accès à toutes.
Vous pouvez inclure des structures de colonnes partielles issues de colonnes imbriquées dans une expression de filtre de ligne afin de filtrer les lignes contenant une valeur spécifique.
Lorsqu'un principal est autorisé à accéder à une table avec une expression
Select * from example_nestedtable where customer.customerName <>'John'de filtre de ligne et que l'accès au niveau des colonnes est défini sur Accès à toutes les colonnes, les résultats de la requête n'affichent que les lignes dont la valeur estcustomerName <>'John'vraie.
La capture d'écran suivante montre un filtre de données qui implémente le filtrage des cellules. Dans les requêtes portant sur la
orderstable, il refuse l'accès à lacustomer_namecolonne et affiche uniquement les lignes contenant « pharma » dans laproduct_typecolonne.
-
-
Choisissez Create filter (Créer un filtre).
Pour créer un filtre de données avec des politiques de filtre cellulaire sur un champ imbriqué
Cette section utilise l'exemple de schéma suivant pour montrer comment créer un filtre de cellules de données :
[ { name: "customer", type: "struct<customerId:string,customerName:string>" }, { name: "customerApplication", type: "struct<appId:string>" }, { name: "product", type: "struct<offer:struct<prodId:string,listingId:string>,type:string>" }, { name: "purchaseId", type: "string" }, ]
-
Sur la page Créer un filtre de données, entrez le nom du filtre de données.
-
Ensuite, utilisez le menu déroulant pour choisir le nom de la base de données et le nom de la table.
-
Dans la section Accès au niveau des colonnes, choisissez Colonnes incluses, puis sélectionnez une colonne imbriquée ().
customer.customerName -
Dans la section Accès au niveau des lignes, choisissez l'option Accès à toutes les lignes.
-
Choisissez Create filter (Créer un filtre).
Lorsque vous
SELECTautorisez ce filtre, le principal a accès à toutes les lignes de lacustomerNamecolonne. -
Définissez ensuite un autre filtre de données pour la même base de données/table.
-
Dans la section Accès au niveau des colonnes, choisissez Colonnes incluses, puis sélectionnez une autre colonne imbriquée ().
customer.customerid -
Dans la section Accès au niveau des lignes, choisissez Filtrer les lignes, puis entrez une expression de filtre de ligne ()
customer.customerid <> 5. -
Choisissez Create filter (Créer un filtre).
Lorsque vous
SELECTautorisez ce filtre, le principal a accès à toutes les lignes descustomerIdchampscustomerName, à l'exception de la cellule dont la valeur est 5 dans lacustomerIdcolonne.