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

Date de la dernière mise à jour : 30/09/2019

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

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.

Créez un point de terminaison Amazon S3 cible à partir de la console AWS DMS et ajoutez une règle Event Condition Action similaire à ce qui suit :

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", "BucketName": "dms-target-s3bucket", "DataFormat": "parquet”}'

Utilisez la règle Event Condition Action suivante pour spécifier la version Parquet du fichier de sortie :

parquetVersion=PARQUET_2_0;

Si les fichiers de sortie sont toujours au format CSV, exécutez la commande describe-endpoints pour voir si la valeur du paramètre DataFormat est au format Parquet :

aws dms describe-endpoints
"DataFormat": "parquet"

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

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

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

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 ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?