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.
Filtrage des données pour les intégrations Aurora Zero-ETL avec Amazon Redshift
Les intégrations Aurora Zero-ETL prennent en charge le filtrage des données, ce qui vous permet de contrôler quelles données sont répliquées depuis votre cluster de DB source vers votre entrepôt de données Amazon Redshift cible. Au lieu de répliquer l'intégralité de la base de données, vous pouvez appliquer un ou plusieurs filtres pour inclure ou exclure des tables spécifiques de manière sélective. Cela vous permet d'optimiser les performances de stockage et de requête en garantissant que seules les données pertinentes sont transférées. Actuellement, le filtrage est limité aux niveaux de la base de données et de la table. Le filtrage au niveau des colonnes et des lignes n'est pas pris en charge.
Le filtrage des données peut être utile lorsque vous souhaitez :
-
Joignez certaines tables provenant d'au moins deux clusters de sources différents, et vous n'avez pas besoin de données complètes provenant de l'un ou l'autre des clusters de de données.
-
Réduisez les coûts en effectuant des analyses en utilisant uniquement un sous-ensemble de tables plutôt qu'un parc complet de bases de données.
-
Filtrez les informations sensibles, telles que les numéros de téléphone, les adresses ou les informations de carte de crédit, de certains tableaux.
Vous pouvez ajouter des filtres de données à une intégration sans ETL à l' AWS Management Console aide de l' AWS Command Line Interface API,AWS CLI the () ou Amazon RDS.
Si l'intégration a un cluster Amazon Redshift provisionné comme cible, le cluster doit être doté du correctif 180 ou supérieur pour utiliser le filtrage des données.
Rubriques
Format d'un filtre de données
Vous pouvez définir plusieurs filtres pour une seule intégration. Chaque filtre inclut ou exclut les tables de base de données existantes et futures qui correspondent à l'un des modèles de l'expression du filtre. Les intégrations Aurora Zero-ETL utilisent la syntaxe du filtre Maxwell pour le filtrage
Chaque filtre comporte les éléments suivants :
Element | Description |
---|---|
Type de filtre |
Un type de |
Expression de filtrage |
Liste de modèles séparés par des virgules. Les expressions doivent utiliser la syntaxe du filtre Maxwell |
Modèle |
Un modèle de filtre au format NotePour Aurora MySQL, les expressions régulières sont prises en charge à la fois dans le nom de la base de données et dans le nom de la table. Pour Aurora PostgreSQL, les expressions régulières ne sont prises en charge que dans le nom du schéma et de la table, et non dans le nom de la base de données. Vous ne pouvez pas inclure de filtres ou de listes de refus au niveau des colonnes. Une seule intégration peut avoir un maximum de 99 modèles au total. Dans la console, vous pouvez saisir des modèles au sein d'une seule expression de filtre ou les répartir entre plusieurs expressions. La longueur d'un modèle unique ne peut pas dépasser 256 caractères. |
Important
Si vous sélectionnez un cluster de base de données source Aurora PostgreSQL, vous devez spécifier au moins un modèle de filtre de données. Le modèle doit au minimum inclure une seule base de données (
) pour la réplication vers Amazon Redshift.database-name
.*.*
L'image suivante montre la structure des filtres de données Aurora MySQL dans la console :

Important
N'incluez pas d'informations d'identification personnelle, confidentielles ou sensibles dans vos modèles de filtrage.
Filtres de données dans AWS CLI
Lorsque vous utilisez le AWS CLI pour ajouter un filtre de données, la syntaxe est légèrement différente de celle de la console. Vous devez attribuer un type de filtre (Include
ouExclude
) à chaque modèle individuellement, afin de ne pas pouvoir regrouper plusieurs modèles sous un même type de filtre.
Par exemple, dans la console, vous pouvez regrouper les modèles suivants, séparés par des virgules, sous une seule Include
instruction :
Aurora MySQL
mydb
.mytable
,mydb
./table_\d+/
Aurora PostgreSQL
mydb
.myschema
.mytable
,mydb
.myschema
./table_\d+/
Toutefois, lorsque vous utilisez le AWS CLI, le même filtre de données doit être au format suivant :
Aurora MySQL
'include:
mydb.mytable
, include:mydb./table_\d+/
'
Aurora PostgreSQL
'include:
mydb.myschema.mytable
, include:mydb.myschema./table_\d+/
'
Logique de filtrage
Si vous ne spécifiez aucun filtre de données dans votre intégration, Aurora suppose un filtre par défaut deinclude:*.*
, qui réplique toutes les tables dans l'entrepôt de données cible. Toutefois, si vous ajoutez au moins un filtre, la logique par défaut passe à zéroexclude:*.*
, ce qui exclut toutes les tables par défaut. Cela vous permet de définir explicitement les bases de données et les tables à inclure dans la réplication.
Par exemple, si vous définissez le filtre suivant :
'include: db.table1, include: db.table2'
Aurora évalue le filtre comme suit :
'exclude:*.*, include: db.table1, include: db.table2'
Par conséquent, Aurora réplique uniquement table1
et table2
depuis la base de données nommée db
vers l'entrepôt de données cible.
Priorité du filtre
Aurora évalue les filtres de données dans l'ordre que vous spécifiez. Dans le AWS Management Console, il traite les expressions de filtre de gauche à droite et de haut en bas. Un deuxième filtre ou un modèle individuel qui suit le premier peut le remplacer.
Par exemple, si le premier filtre l'estInclude books.stephenking
, il inclut uniquement la stephenking
table de la books
base de données. Toutefois, si vous ajoutez un deuxième filtreExclude books.*
, il remplace le premier filtre. Cela empêche les tables de l'books
index d'être répliquées sur Amazon Redshift.
Lorsque vous spécifiez au moins un filtre, la logique commence par l'hypothèse exclude:*.*
par défaut, ce qui exclut automatiquement toutes les tables de la réplication. Il est recommandé de définir des filtres du plus large au plus spécifique. Commencez par une ou plusieurs Include
instructions pour spécifier les données à répliquer, puis ajoutez des Exclude
filtres pour supprimer certaines tables de manière sélective.
Le même principe s'applique aux filtres que vous définissez à l'aide du AWS CLI. Aurora évalue ces modèles de filtre dans l'ordre dans lequel vous les spécifiez, de sorte qu'un modèle peut remplacer celui que vous avez spécifié avant lui.
Exemples d'Aurora MySQL
Les exemples suivants montrent comment fonctionne le filtrage des données pour les intégrations Aurora MySQL Zero-ETL :
-
Incluez toutes les bases de données et toutes les tables :
'include: *.*'
-
Incluez toutes les tables de la
books
base de données :'include: books.*'
-
Excluez toutes les tables nommées
mystery
:'include: *.*, exclude: *.mystery'
-
Incluez deux tables spécifiques dans la
books
base de données :'include: books.stephen_king, include: books.carolyn_keene'
-
Incluez toutes les tables de la
books
base de données, à l'exception de celles contenant la sous-chaînemystery
:'include: books.*, exclude: books./.*mystery.*/'
-
Incluez toutes les tables de la
books
base de données, à l'exception de celles commençant parmystery
:'include: books.*, exclude: books./mystery.*/'
-
Incluez toutes les tables de la
books
base de données, à l'exception de celles se terminant parmystery
:'include: books.*, exclude: books./.*mystery/'
-
Incluez toutes les tables de la
books
base de données qui commencent partable_
, à l'exception de celle nomméetable_stephen_king
. Par exemple,table_movies
outable_books
serait répliqué, mais nontable_stephen_king
.'include: books./table_.*/, exclude: books.table_stephen_king'
Exemples d'Aurora PostgreSQL
Les exemples suivants illustrent le fonctionnement du filtrage des données pour les intégrations Aurora PostgreSQL Zero-ETL :
-
Incluez toutes les tables de la
books
base de données :'include: books.*.*'
-
Excluez toutes les tables nommées
mystery
dans labooks
base de données :'include: books.*.*, exclude: books.*.mystery'
-
Incluez une table dans la
books
base de données dans lemystery
schéma, et une table dans laemployee
base de données dans lefinance
schéma :'include: books.mystery.stephen_king, include: employee.finance.benefits'
-
Incluez toutes les tables de la
books
base de données etscience_fiction
du schéma, à l'exception de celles contenant la sous-chaîneking
:'include: books.science_fiction.*, exclude: books.*./.*king.*/
-
Incluez toutes les tables de la
books
base de données, à l'exception de celles dont le nom de schéma commence parsci
:'include: books.*.*, exclude: books./sci.*/.*'
-
Incluez toutes les tables de la
books
base de données, à l'exception de celles dumystery
schéma se terminant parking
:'include: books.*.*, exclude: books.mystery./.*king/'
-
Incluez toutes les tables de la
books
base de données qui commencent partable_
, à l'exception de celle nomméetable_stephen_king
. Par exemple,table_movies
dans lefiction
schéma ettable_books
dans lemystery
schéma sont répliqués, mais pastable_stephen_king
dans l'un ou l'autre des schémas :'include: books.*./table_.*/, exclude: books.*.table_stephen_king'
Ajouter des filtres de données à une intégration
Vous pouvez configurer le filtrage des données à l'aide de l' AWS Management Console API AWS CLI, de, ou de l'API Amazon RDS.
Important
Si vous ajoutez un filtre après avoir créé une intégration, Aurora le traite comme s'il avait toujours existé. Il supprime toutes les données de l'entrepôt de données Amazon Redshift cible qui ne correspondent pas aux nouveaux critères de filtrage et resynchronise toutes les tables concernées.
Pour ajouter des filtres de données à une intégration sans ETL
Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/
l'adresse. -
Dans le volet de navigation, choisissez Zero-ETL integrations. Sélectionnez l'intégration à laquelle vous souhaitez ajouter des filtres de données, puis choisissez Modifier.
-
Sous Source, ajoutez une ou plusieurs
Exclude
déclarationsInclude
et.L'image suivante montre un exemple de filtres de données pour une intégration MySQL :
-
Lorsque vous êtes satisfait des modifications, choisissez Continuer et Enregistrer les modifications.
Pour ajouter des filtres de données à une intégration zéro ETL à l'aide de AWS CLI, appelez la commande modify-integration--data-filter
paramètre à l'aide d'une liste séparée par des virgules de filtres Include
et de Exclude
Maxwell.
L'exemple suivant ajoute des modèles de filtre àmy-integration
.
Dans Linux, macOS, ou Unix:
aws rds modify-integration \ --integration-identifier
my-integration
\ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Dans Windows:
aws rds modify-integration ^ --integration-identifier
my-integration
^ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Pour modifier une intégration zéro ETL à l'aide de l'API RDS, appelez l'ModifyIntegrationopération. Spécifiez l'identifiant d'intégration et fournissez une liste de modèles de filtre séparés par des virgules.
Supprimer les filtres de données d'une intégration
Lorsque vous supprimez un filtre de données d'une intégration, Aurora réévalue les filtres restants comme si le filtre supprimé n'avait jamais existé. Il réplique ensuite toutes les données précédemment exclues qui répondent désormais aux critères dans l'entrepôt de données Amazon Redshift cible. Cela déclenche une resynchronisation de toutes les tables concernées.