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

最終更新日: 2021 年 1 月 18 日

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

解決方法

注: AWS コマンドラインインターフェイス (CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

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

1.    AWS DMS コンソールからターゲット Amazon SE エンドポイントを作成し、次のように 追加の接続属性 (ECA) を追加します。また、S3 ターゲットで Parquet オブジェクトの保存に使用できるその他の 追加の接続属性を確認します 。

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 for S3 endpoint>, "BucketName": <S3 bucket name to migrate to>, "DataFormat": "parquet"}'

2.    次の追加の接続属性を使用して、出力ファイルのパーケットバージョンを指定します。

parquetVersion=PARQUET_2_0;

3.    describe-endpoints コマンドを実行して、作成した S3 エンドポイントに、S3 設定の DataFormat か、追加の接続属性 dataFormat「parquet」 に設定されているかどうかを確認します。S3 設定の DataFormat を確認するには、次のようなコマンドを実行します。

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

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

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

pip install parquet-cli --user

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

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.    最後に、ファイルの内容を印刷します。

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

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


請求に関するサポートまたは技術的なサポートが必要ですか?