AWS DMS を使用して Parquet 形式で Amazon S3 にデータを移行するにはどうすればよいですか?

最終更新日: 2019 年 9 月 30 日

AWS Database Migration Service (AWS DMS) を使用して Apache Parquet (.parquet) 形式のデータを Amazon Simple Storage Service (Amazon S3) に移行する方法を教えてください。

解決方法

レプリケーション 3.1.3 以降のバージョンを使用する場合は、AWS DMS を使用して Apache Parquet 形式で S3 バケットにデータを移行できます。デフォルトの Parquet バージョンは Parquet 1.0 です。

AWS DMS コンソールからターゲット Amazon S3 エンドポイントを作成し、以下のようなイベント条件アクションを追加します。

dataFormat=parquet;

または、AWS コマンドラインインターフェイス (AWS CLI) の create-endpoint コマンドを使用して、ターゲット Amazon S3 エンドポイントを作成します。

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”}'

下のイベント条件アクションを使用して、出力ファイルの Parquet バージョンを指定します。

parquetVersion=PARQUET_2_0;

出力ファイルがまだ CSV 形式である場合は、describe-endpoints コマンドを実行して、DataFormat パラメータの値が Parquet 形式であるかどうかを確認します。

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

DataFormat パラメータの値が CSV である場合は、エンドポイントを再作成します。

Parquet 形式で出力したら、Apache Parquet コマンドラインツールをインストールして出力ファイルを解析できます。

pip install parquet-cli --user

次に、ファイル形式を調べます。

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

最後に、ファイルの内容を印刷します。

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

この記事は役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合