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

上次更新日期:2021 年 1 月 18 日

我要如何使用 AWS Database Migration Service (AWS DMS) 将数据以 Apache Parquet 格式 (.parquet) 迁移到 Amazon Simple Storage Service (Amazon S3)?

解决方法

注意:如果您在运行 AWS 命令行界面 (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.    使用以下额外连接属性来指定输出文件的 Parquet 版本:

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

这篇文章对您有帮助吗?


您是否需要账单或技术支持?