如何使用 AWS DMS 将数据以 Parquet 格式迁移到 Amazon S3?

2 分钟阅读
0

我想使用 AWS Database Migration Service(AWS DMS)将 Apache Parquet(.parquet)格式的数据迁移到 Amazon Simple Storage Service(Amazon S3)。

解决方案

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅对 AWS CLI 错误进行故障排除。此外,确保您使用的是最新的 AWS CLI 版本

如果您使用 3.1.3 或更高版本的复制,请使用 AWS DMS 将数据迁移到 Apache Parquet 格式的 S3 桶。默认的 Parquet 版本是 Parquet 1.0。

1.    在 AWS DMS 控制台中,创建一个目标 Amazon S3 端点,然后添加额外的连接属性。另外,请检查可用于在 S3 目标中存储 parquet 对象的其他额外连接属性:

dataFormat=parquet;

或者,在 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.    要指定 .parquet 输出文件,请使用以下额外连接属性:

parquetVersion=PARQUET_2_0;

3.    运行 describe-endpoints 命令检查 S3 设置 DataFormat 或额外连接属性 dataFormat 是否已在 S3 端点中设置为 parquet

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

4.    如果 DataFormat 参数的值为 CSV,则重新创建端点。

5.    安装 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

相关信息

使用 Amazon S3 作为 AWS Database Migration Service 的目标

AWS 官方
AWS 官方已更新 6 个月前