Filtrage des données pour les intégrations Aurora Zero-ETL avec Amazon Redshift - Amazon Aurora

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

Vous pouvez utiliser le filtrage des données pour les intégrations Aurora Zero-ETL afin de définir l'étendue de la réplication depuis le cluster de bases de source vers l'entrepôt de données Amazon Redshift cible. Plutôt que de répliquer toutes les données vers la cible, vous pouvez définir un ou plusieurs filtres qui incluent ou excluent de manière sélective certaines tables de la réplication. Seul le filtrage au niveau de la base de données et de la table est disponible pour les intégrations sans ETL. Vous ne pouvez pas filtrer par colonnes ou par lignes.

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 pour cible un cluster Amazon Redshift provisionné, le cluster doit être doté du correctif 180 ou supérieur.

Note

À l'heure actuelle, vous ne pouvez filtrer les données que sur les intégrations dotées de sources Aurora MySQL. La version préliminaire des intégrations Zero-ETL d'Aurora PostgreSQL avec Amazon Redshift ne prend pas en charge le filtrage des données.

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 des données.

Chaque filtre comporte les éléments suivants :

Element Description
Type de filtre

Un type de Include filtre inclut toutes les tables qui correspondent à l'un des modèles de l'expression du filtre. Un type de Exclude filtre exclut toutes les tables correspondant à l'un des modèles.

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 formatdatabase.table. Vous pouvez spécifier des noms de base de données et de tables littéraux (tels quemydb.mytable, ou utiliser des caractères génériques (*). Vous pouvez également définir des expressions régulières dans le nom de la base de données et de la table.

Aurora prend en charge le filtrage uniquement au niveau de la base de données et de la table. Vous ne pouvez pas inclure de filtres au niveau des colonnes (database.table.column) ou de listes noires (). blacklist: bad_db.*

Une seule intégration peut avoir un maximum de 99 modèles au total. Dans la console, vous pouvez contenir des modèles au sein d'une seule expression de filtre ou les répartir entre plusieurs expressions. Un seul modèle ne peut pas dépasser 256 caractères.

L'image suivante montre la structure des filtres de données dans la console :

Filtres de données pour une intégration sans ETL
Important

N'incluez pas d'informations d'identification personnelle, confidentielles ou sensibles dans vos modèles de filtrage.

Filtres de données dans le 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. Chaque modèle individuel doit être associé à son propre type de filtre (IncludeouExclude). Vous ne pouvez pas regrouper plusieurs modèles avec un seul type de filtre.

Par exemple, dans la console, vous pouvez regrouper les modèles suivants séparés par des virgules au sein d'une seule Include instruction :

mydb.mytable, mydb./table_\d+/

Toutefois, lorsque vous utilisez le AWS CLI, le même filtre de données doit être au format suivant :

'include: mydb.mytable, include: mydb./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 include:*.* et réplique toutes les tables dans l'entrepôt de données cible. Toutefois, si vous spécifiez au moins un filtre, la logique part d'une hypothèseexclude:*.*, ce qui signifie que toutes les tables sont automatiquement exclues de la réplication. Cela vous permet de définir directement les tables et les bases de données à inclure.

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, seules table1 et table2 à partir de la base de données nommée db sont répliquées vers l'entrepôt de données cible.

Priorité du filtre

Aurora évalue les filtres de données dans l'ordre dans lequel ils sont spécifiés. Dans le AWS Management Console, cela signifie qu' Aurora évalue les expressions de filtre de gauche à droite et de haut en bas. Si vous spécifiez un certain modèle pour le premier filtre, un second filtre ou même un modèle individuel spécifié immédiatement après celui-ci peut le remplacer.

Par exemple, votre premier filtre peut inclure Include books.stephenking une seule table nommée stephenking à partir de la books base de données. Toutefois, si vous ajoutez un second filtre de Excludebooks.*, il remplace le Include filtre défini avant lui. Ainsi, aucune table de l'booksindex n'est répliquée sur Amazon Redshift.

Si vous spécifiez au moins un filtre, la logique commence par une hypothèseexclude:*.*, ce qui signifie que toutes les tables sont automatiquement exclues de la réplication. Par conséquent, en règle générale, il est recommandé de définir vos filtres du plus large au moins large. Par exemple, utilisez une ou plusieurs Include instructions pour définir toutes les données que vous souhaitez répliquer. Commencez ensuite à ajouter des Exclude filtres pour exclure de manière sélective certaines tables de la réplication.

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 ils sont spécifiés, de sorte qu'un modèle peut remplacer un modèle spécifié avant lui.

Exemples

Les exemples suivants montrent comment fonctionne le filtrage des données pour les intégrations sans 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îne mystery :

    'include: books.*, exclude: books./.*mystery.*/
  • Incluez toutes les tables de la books base de données, à l'exception de celles commençant par mystery :

    'include: books.*, exclude: books./mystery.*/'
  • Incluez toutes les tables de la books base de données, à l'exception de celles se terminant par mystery :

    '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 ou table_books serait répliqué, mais nontable_stephen_king.

    '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 réévalue le filtre comme s'il avait toujours existé. Il supprime toutes les données qui se trouvent actuellement dans l'entrepôt de données Amazon Redshift cible et qui ne répondent pas aux nouveaux critères de filtrage. Cette action entraîne la resynchronisation de toutes les tables concernées.

À l'heure actuelle, vous ne pouvez filtrer les données que sur les intégrations dotées de sources Aurora MySQL. La version préliminaire des intégrations Zero-ETL d'Aurora PostgreSQL avec Amazon Redshift ne prend pas en charge le filtrage des données.

Pour ajouter des filtres de données à une intégration sans ETL
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. 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.

  3. Sous Source, ajoutez une ou plusieurs Exclude déclarations Include et.

    L'image suivante montre un exemple de filtres de données pour une intégration :

    Filtres de données pour une intégration zéro ETL dans la console RDS
  4. Lorsque toutes les modifications sont telles que vous le souhaitez, 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. Outre l'identifiant d'intégration, spécifiez le --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.

Pour LinuxmacOS, 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é. Aurora réplique ensuite toutes les données qui ne répondaient pas auparavant aux critères de filtrage (mais qui le sont désormais) dans l'entrepôt de données Amazon Redshift cible.

La suppression d'un ou de plusieurs filtres de données entraîne la resynchronisation de toutes les tables concernées.