我想使用 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 的目标