Comment utiliser AWS DMS pour migrer des données vers Amazon S3 au format Parquet ?

Dernière mise à jour : 18/01/2021

Comment utiliser AWS Database Migration Service (AWS DMS) pour migrer des données au format Apache Parquet (.parquet) vers Amazon Simple Storage Service (Amazon S3) ?

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d’AWS CLI.

Vous pouvez utiliser AWS DMS pour migrer des données vers un compartiment S3 au format Apache Parquet si vous utilisez la réplication 3.1.3 ou une version plus récente. La version Parquet par défaut est Parquet 1.0.

1.    Créez un point de terminaison Amazon SE cible à partir de la console AWS DMS, puis ajoutez un attribut de connexion supplémentaire (ECA), comme suit. Vérifiez également les autres attributs de connexion supplémentaires que vous pouvez utiliser pour stocker des objets parquet dans une cible S3.

dataFormat=parquet;

Vous pouvez également créer un point de terminaison Amazon S3 cible à l'aide de la commande create-endpoint dans l'interface de ligne de commande AWS (CLI AWS) :

aws dms create-endpoint --endpoint-identifier s3-target-parque --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": <IAM role ARN for S3 endpoint>, "BucketName": <S3 bucket name to migrate to>, "DataFormat": "parquet"}'

2.    Utilisez l' attribut de connexion supplémentaire suivant pour spécifier la version Parquet du fichier de sortie :

parquetVersion=PARQUET_2_0;

3.    Exécutez la commande describe-endpoints pour voir si le point de terminaison S3 que vous avez créé a le paramètre S3 DataFormat ou l'attribut de connexion supplémentaire DataFormat défini sur « parquet ». Pour vérifier le paramètre S3 DataFormat, exécutez une commande similaire à la suivante :

aws dms describe-endpoints --filters Name=endpoint-arn,Values=<S3 target endpoint ARN> --query "Endpoints[].S3Settings.DataFormat"
[
    "parquet"
]

4.    Si la valeur du paramètre DataFormat est au format CSV, recréez le point de terminaison.

5.    Une fois que la sortie est au format Parquet, vous pouvez analyser le fichier de sortie en installant l'outil de ligne de commande Apache Parquet :

pip install parquet-cli --user

6.    Ensuite, examinez le format du fichier :

parq LOAD00000001.parquet 
 # Metadata 
 <pyarrow._parquet.FileMetaData object at 0x10e948aa0>
  created_by: AWS
  num_columns: 2
  num_rows: 2
  num_row_groups: 1
  format_version: 1.0
  serialized_size: 169

7.    Enfin, imprimez le contenu du fichier :

parq LOAD00000001.parquet --head
   i        c
0  1  insert1
1  2  insert2

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?