6

我在 S3 上有一堆 Parquet 文件,我想以最佳方式将它们加载到 redshift 中。

每个文件被分成多个块......将数据从 S3 加载到 Redshift 的最佳方式是什么?

另外,如何在 Redshift 中创建目标表定义?有没有办法从 Parquet 推断模式并以编程方式创建表?我相信有一种方法可以使用 Redshift 频谱来做到这一点,但我想知道这是否可以在脚本中完成。

感谢你的帮助!

我正在考虑使用所有 AWS 工具(例如 Glue、Lambda 等)以最佳方式执行此操作(在性能、安全性和成本方面)。

4

2 回答 2

7

Amazon Redshift COPY 命令可以使用以下参数本机加载 Parquet 文件:

FORMAT AS PARQUET

请参阅:Amazon Redshift 现在可以从 Parquet 和 ORC 文件格式复制

该表必须是预先创建的;它不能自动创建。

另请注意COPY from Columnar Data Formats - Amazon Redshift

COPY 以与列在列式数据文件中出现的顺序相同的顺序将值插入到目标表的列中。目标表中的列数和数据文件中的列数必须匹配。

于 2018-09-06T01:30:39.983 回答
1

从 GitHub使用parquet-tools来剖析文件:

parquet-tool schema <filename> #will dump the schema w/datatypes
parquet-tool head <filename> #will dump the first 5 data structures

使用jsonpaths文件指定映射

于 2020-03-10T14:02:06.557 回答