【问题标题】:Copy Redshift without table structure复制没有表结构的 Redshift
【发布时间】:2020-09-23 13:50:09
【问题描述】:

我想通过复制指令将一个临时表从 S3 加载到 Redshift,然后选择一些字段并创建一个最终表,但我不知道如何在不知道所有结构的情况下从 s3 加载文件。

让我用一个例子来解释:

我的文件在 s3 中

col1   col2   col3
a       1     b
b       4     c

我想要一个只有 col2 的决赛桌,所以我执行以下操作:

CREATE TEMPORARY TABLE stg(col1 varchar, col2 integer, col3 varchar);
COPY stg FROM myfile
CREDENTIALS
'aws_access_key_id=***;aws_secret_access_key=***'
 NULL as '' IGNOREHEADER AS 1
;
create table FINAL as
select
              col2
from stg

我想要这样的东西(所以我不需要知道结构,只知道它会有 col2):

CREATE TEMPORARY TABLE stg as (
COPY stg FROM myfile
CREDENTIALS
'aws_access_key_id=***;aws_secret_access_key=***'
 NULL as '' IGNOREHEADER AS 1
);

create table FINAL as
select
              col2
from stg

【问题讨论】:

标签: amazon-web-services amazon-s3 copy amazon-redshift


【解决方案1】:

你正在做正确的过程。

通过COPY 命令加载数据时,无法“跳过”列。

替代方法是在将数据加载到 Redshift 之前对文件进行预处理并删除不需要的列

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 2019-02-08
    • 2019-09-19
    • 2012-05-11
    相关资源
    最近更新 更多