如何加载大量来自S3小CSV文件红移?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何加载大量来自S3小CSV文件红移?相关的知识,希望对你有一定的参考价值。

我有大量的CSV文件(〜12K),这是小(〜250记录每个)。我想加载它们红移大小3的集群在同一地区,但它采取了很长一段时间。

我在SQL工作台使用的查询/ J是:

copy gsod from 's3://[path to folder]' access_key_id '******' secret_access_key '******' delimiter ',' BLANKSASNULL emptyasnull IGNOREHEADER 1 maxerror as 100000;

查询在几秒钟内工作,如果我用单个文件。但是,什么是尽可能快地加载所有的人最好的方法是什么?

我试图从群集的同一区域加载从S3文件。

copy gsod from 's3://[path to folder]' access_key_id '******' secret_access_key '******' delimiter ',' BLANKSASNULL emptyasnull IGNOREHEADER 1 maxerror as 100000;
答案

manifest文件选项。它会做真快。

https://docs.aws.amazon.com/redshift/latest/dg/loading-data-files-using-manifest.html

  {
"entries": [
{"url":"s3://mybucket-alpha/2013-10-04-custdata", "mandatory":true},
{"url":"s3://mybucket-alpha/2013-10-05-custdata", "mandatory":true},
{"url":"s3://mybucket-beta/2013-10-04-custdata", "mandatory":true},
{"url":"s3://mybucket-beta/2013-10-05-custdata", "mandatory":true}
]}

这将做copy并联,而不是由一个处理文件中的一个,它会加载一次尝试的所有文件。

copy customer from 's3://mybucket/your-manifest-file' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;

希望这有助于。

以上是关于如何加载大量来自S3小CSV文件红移?的主要内容,如果未能解决你的问题,请参考以下文章

使用 talend 将 CSV 文件红移

胶水加载作业不保留红移中的默认列值

有没有办法通过数据管道以预定义的顺序将文件从 S3 复制到红移

Spark - 加载许多小 csv 需要很长时间

我们可以使用复制命令使用访问密钥和秘密密钥将数据从 S3 加载到红移表中吗(不使用 IAM 角色)

使用 Redshift 的 Ignoreheader CSV 文件