创建查询:
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。 也许我想念一些东西,对我来说太难以理解了...... 请帮忙。