我在S3上有一堆Parquet文件,我想以最佳方式将它们加载到redshift中。
每个文件被分成多个块......将数据从S3加载到Redshift的最佳方式是什么?
另外,如何在Redshift中创建目标表定义?有没有办法从Parquet推断模式并以编程方式创建表?我相信有一种方法可以使用Redshift频谱,但我想知道这是否可以在脚本中完成。
感谢您的帮助!
我正在考虑所有AWS工具,如Glue,Lambda等,以最佳方式(在性能,安全性和成本方面)。
Amazon Redshift COPY command可以使用以下参数本机加载Parquet文件:
FORMAT AS PARQUET
见:Amazon Redshift Can Now COPY from Parquet and ORC File Formats
该表必须预先创建;它无法自动创建。
还有来自COPY from Columnar Data Formats - Amazon Redshift的说明:
COPY将值插入到目标表的列中,其顺序与列数据文件中的列相同。目标表中的列数和数据文件中的列数必须匹配。