

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 zéro ETL Aurora
<a name="zero-etl.filtering"></a>

Les intégrations zéro ETL Aurora 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 bases de données Aurora source vers votre entrepôt de données 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 base de données et de 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 :
+ Joindre certaines tables provenant d’au moins deux bases de données source différents, et vous n’avez pas besoin de données complètes provenant de l’un ou l’autre des bases de données.
+ Réduisez les coûts en effectuant des opérations d’analytique en utilisant uniquement un sous-ensemble de tables plutôt qu’une flotte complète 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 certaines tables.

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 provisionné comme cible, le cluster doit être sur le [correctif 180](https://docs.aws.amazon.com/redshift/latest/mgmt/cluster-versions.html#cluster-version-180) ou supérieur pour utiliser le filtrage des données.

**Topics**
+ [Format d’un filtre de données](#zero-etl.filtering-format)
+ [Logique de filtrage](#zero-etl.filtering-evaluate)
+ [Ordre de priorité de filtre](#zero-etl.filtering-precedence)
+ [Exemples Aurora MySQL](#zero-etl.filtering-examples-mysql)
+ [Exemples Aurora PostgreSQL](#zero-etl.filtering-examples-postgres)
+ [Ajout de filtres de données à une intégration](#zero-etl.add-filter)
+ [Suppression des filtres de données d’une intégration](#zero-etl.remove-filter)

## Format d’un filtre de données
<a name="zero-etl.filtering-format"></a>

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 zéro ETL Aurora utilisent la [syntaxe du filtre Maxwell](https://maxwells-daemon.io/filtering/) pour le filtrage des données.

Chaque filtre contient les éléments suivants :


| Element | Description | 
| --- | --- | 
| Type de filtre |  Un type de filtre `Include` *inclut* toutes les tables qui correspondent à l’un des modèles de l’expression du filtre. Un type de filtre `Exclude` *exclut* toutes les tables correspondant à l’un des modèles.  | 
| Expression de filtre |  Une liste de modèles séparée par des virgules. Les expressions doivent utiliser la [syntaxe du filtre Maxwell](https://maxwells-daemon.io/filtering/).  | 
| Modèle |  Un modèle de filtre au format `database.table` pour Aurora MySQL, ou `database.schema.table` pour Aurora PostgreSQL. Vous pouvez spécifier des noms littéraux ou définir des expressions régulières.  Pour 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 schéma et le nom 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 intégration unique peut avoir un maximum de 99 modèles. Dans la console, vous pouvez saisir des modèles dans 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 bases de données Aurora PostgreSQL source, 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 (`database-name.*.*`) pour la réplication vers l’entrepôt de données cible.

L’image suivante montre la structure des filtres de données Aurora MySQL dans la console :

![\[Filtrage des données pour les intégrations zéro ETL\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/AuroraUserGuide/images/zero-etl-filter.png)


**Important**  
N’incluez pas de données d’identification personnelle, confidentielles ou sensibles dans vos modèles de filtrage.

### Filtres de données dans le AWS CLI
<a name="zero-etl.filtering-cli"></a>

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` ou `Exclude`) à 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 instruction `Include` :

**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
<a name="zero-etl.filtering-evaluate"></a>

Si vous ne spécifiez aucun filtre de données dans votre intégration, Aurora suppose un filtre par défaut de `include:*.*`, 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 à `exclude:*.*`, 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.

## Ordre de priorité de filtre
<a name="zero-etl.filtering-precedence"></a>

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 second filtre ou un modèle individuel qui suit le premier peut le remplacer.

Par exemple, si le premier filtre est `Include books.stephenking`, il inclut uniquement la table `stephenking` de la base de données `books`. Toutefois, si vous ajoutez un second filtre, `Exclude books.*`, il remplace le premier filtre. Cela empêche la réplication des tables de l’index `books` vers l’entrepôt de données cible.

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. Une bonne pratique consiste à définir des filtres du plus large au plus spécifique. Commencez par une ou plusieurs instructions `Include` pour spécifier les données à répliquer, puis ajoutez des filtres `Exclude` pour supprimer certaines tables de manière sélective.

Le même principe s’applique aux filtres que vous définissez à l’aide de l’ 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 Aurora MySQL
<a name="zero-etl.filtering-examples-mysql"></a>

Les exemples suivants montrent comment fonctionne le filtrage des données pour intégrations zéro ETL Exemples Aurora MySQL :
+  Incluez toutes les bases de données et toutes les tables :

  ```
  'include: *.*'
  ```
+  Incluez toutes les tables de la base de données `books` :

  ```
  'include: books.*'
  ```
+ Excluez toutes les tables nommées `mystery` :

  ```
  'include: *.*, exclude: *.mystery'
  ```
+ Incluez deux tables spécifiques dans la base de données `books` :

  ```
  'include: books.stephen_king, include: books.carolyn_keene'
  ```
+ Incluez toutes les tables de la base de données `books`, à l’exception de celles contenant la sous-chaîne `mystery` :

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

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

  ```
  'include: books.*, exclude: books./.*mystery/'
  ```
+ Incluez toutes les tables de la base de données `books` qui commencent par `table_`, à l’exception de celle nommée `table_stephen_king`. Par exemple, `table_movies` ou `table_books` serait répliqué, mais pas `table_stephen_king`.

  ```
  'include: books./table_.*/, exclude: books.table_stephen_king'
  ```

## Exemples Aurora PostgreSQL
<a name="zero-etl.filtering-examples-postgres"></a>

Les exemples suivants montrent comment fonctionne le filtrage des données pour intégrations zéro ETL Aurora PostgreSQL :
+ Incluez toutes les tables de la base de données `books` :

  ```
  'include: books.*.*'
  ```
+ Excluez toutes les tables nommées `mystery` de la base de données `books` :

  ```
  'include: books.*.*, exclude: books.*.mystery'
  ```
+ Incluez une table dans la base de données `books` dans le schéma `mystery`, et une table dans la base de données `employee` dans le schéma `finance` :

  ```
  'include: books.mystery.stephen_king, include: employee.finance.benefits'
  ```
+ Incluez toutes les tables de la base de données `books` et le schéma `science_fiction`, à l’exception de celles contenant la sous-chaîne `king` :

  ```
  'include: books.science_fiction.*, exclude: books.*./.*king.*/
  ```
+ Incluez toutes les tables de la base de données `books`, à l’exception de celles avec un nom de schéma commençant par `sci` :

  ```
  'include: books.*.*, exclude: books./sci.*/.*'
  ```
+ Incluez toutes les tables de la base de données `books`, à l’exception de celles dans le schéma `mystery` se terminant par `king` :

  ```
  'include: books.*.*, exclude: books.mystery./.*king/'
  ```
+ Incluez toutes les tables de la base de données `books` qui commencent par `table_`, à l’exception de celle nommée `table_stephen_king`. Par exemple, `table_movies` dans le schéma `fiction` et `table_books` dans le schéma `mystery` sont répliqués, mais pas `table_stephen_king` dans l’un ou l’autre des schémas :

  ```
  'include: books.*./table_.*/, exclude: books.*.table_stephen_king'
  ```

## Ajout de filtres de données à une intégration
<a name="zero-etl.add-filter"></a>

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 cible qui ne correspondent pas aux nouveaux critères de filtrage et resynchronise toutes les tables concernées.

### Console RDS
<a name="add-filter-console"></a>

**Pour ajouter des filtres de données à une intégration zéro ETL**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation de gauche, choisissez **Intégrations zéro ETL**. Sélectionnez l’intégration à laquelle vous souhaitez ajouter des filtres de données, puis choisissez **Modifier**.

1. Sous **Source**, ajoutez une ou plusieurs instructions `Include` et `Exclude`.

   L’image suivante montre un exemple de filtres de données pour une intégration MySQL :  
![\[Filtrage des données pour une intégration zéro ETL dans la console RDS\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/AuroraUserGuide/images/zero-etl-filter-data.png)

1. Lorsque vous êtes satisfait des modifications, choisissez **Continuer** et **Enregistrer les modifications**.

### AWS CLI
<a name="add-filter-cli"></a>

Pour ajouter des filtres de données à une intégration zéro ETL à l'aide de AWS CLI, appelez la commande [modify-integration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/modify-integration.html). Outre l’identifiant d’intégration, spécifiez le paramètre `--data-filter` à l’aide d’une liste séparée par des virgules de filtres Maxwell `Include` et `Exclude`.

**Example**  
L’exemple suivant ajoute des modèles de filtre à `my-integration`.  
Pour Linux, macOS ou Unix :  

```
aws rds modify-integration \
    --integration-identifier my-integration \
    --data-filter 'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
```
Pour Windows :  

```
aws rds modify-integration ^
    --integration-identifier my-integration ^
    --data-filter 'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
```

### API RDS
<a name="add-filter-api"></a>

Pour modifier une intégration zéro ETL à l'aide de l'API RDS, appelez l'[ModifyIntegration](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyIntegration.html)opération. Spécifiez l’identifiant d’intégration et fournissez une liste de modèles de filtre séparée par des virgules.

## Suppression des filtres de données d’une intégration
<a name="zero-etl.remove-filter"></a>

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 cible. Cela déclenche une resynchronisation de toutes les tables concernées.