从s3复制时,AWS Redshift不设置整数默认值

时间:2018-02-12 07:27:35

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

创建查询: CREATE TABLE IF NOT EXISTS test.test_table ( "test_field1" INTEGER DEFAULT 0 NOT NULL, "test_field2" INTEGER DEFAULT 0 NOT NULL)

test_file.csv(注意第二行没有第一列值):

test_field1,test_field2 100, 234 ,30542

test.manifest:

{"entries":[{"url":"s3://MY_BUCKET_NAME/some_path/test_file.csv","mandatory":true}]}

COPY查询:

COPY test.test_table ("test_field1", "test_field2") FROM 's3://MY_BUCKET_NAME/some_path/test.manifest' CREDENTIALS 'aws_access_key_id=some_access_key;aws_secret_access_key=some_secret' CSV IGNOREHEADER 1 MANIFEST REGION AS 'some-region-n' TIMEFORMAT 'auto' ACCEPTINVCHARS

当我执行复制查询时,我从stl_load_error收到错误:"缺少非空字段的数据" 为什么?我试图在查询中省略test_field1,但又出现了另一个错误:找到了额外的列。 当我将字段类型更改为VARCHAR(256)时,redshift返回ok。 也许我想念一些东西,对我来说太难以理解了...... 请帮忙。

0 个答案:

没有答案