Mar*_*ski 3 import amazon-redshift
在Amazon Redshift中,我有一个表,需要在其中从多个CSV文件加载数据:
create table my_table (
id integer,
name varchar(50) NULL
email varchar(50) NULL,
processed_file varchar(256) NULL
);
Run Code Online (Sandbox Code Playgroud)
前三列引用文件中的数据。最后一列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;
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以processed_file使用COPY命令自动填充第四列,以插入文件名。
我可以在COPY之后执行UPDATE语句,但是我正在处理大量数据,因此理想情况下,如果可能的话,我希望避免这种情况。
这是不可能的。
您将需要预处理文件(以包括名称列)或在加载后更新数据(但是那样一来,很难同时从多个文件进行批量加载,这是加载数据的最有效方法)进入Redshift)。
| 归档时间: |
|
| 查看次数: |
4257 次 |
| 最近记录: |