在Amazon Redshift中,我有一个表,需要在其中从多个CSV文件加载数据:
create table my_table (
id integer,
name varchar(50) NULL
email varchar(50) NULL,
processed_file varchar(256) NULL
);
前三列引用文件中的数据。最后一列processed_filed
指示从哪个文件导入记录。
我在Amazon S3中有文件,我想使用COPY
命令导入它们。就像是:
COPY {table_name} FROM 's3://file-key'
WITH CREDENTIALS 'aws_access_key_id=xxxx;aws_secret_access_key=xxxxx'
DATEFORMAT 'auto' TIMEFORMAT 'auto' MAXERROR 0 ACCEPTINVCHARS '*' DELIMITER '\t' GZIP;
有没有一种方法可以processed_file
使用COPY命令自动填充第四列,以插入文件名。
我可以在COPY之后执行UPDATE语句,但是我正在处理大量数据,因此理想情况下,如果可能的话,我希望避免这种情况。
这不可能。
您将需要预处理文件(以包括名称列)或在加载后更新数据(但是这样一来,很难同时从多个文件进行批量加载,这是加载数据的最有效方法)进入Redshift)。
请参阅:RedshiftCOPY
命令文档
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句