Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在红移中复制JSON列_Json_Copy_Amazon Redshift - Fatal编程技术网

在红移中复制JSON列

在红移中复制JSON列,json,copy,amazon-redshift,Json,Copy,Amazon Redshift,我必须从s3导入一个红移的csv文件。 表中的一列是JSON格式 在使用COPY命令时,出现以下错误- Invalid timestamp format or value [YYYY-MM-DD HH24:MI:SS] 使用的命令是- COPY api_log FROM 's3://X/Y' credentials 'aws_access_key_id=;aws_secret_access_key=' delimiter ',' maxerror as 250 TRUNCATECOLUM

我必须从s3导入一个红移的csv文件。 表中的一列是JSON格式

在使用COPY命令时,出现以下错误-

Invalid timestamp format or value [YYYY-MM-DD HH24:MI:SS]   
使用的命令是-

COPY api_log FROM 's3://X/Y' credentials 'aws_access_key_id=;aws_secret_access_key=' delimiter ',' maxerror as 250 TRUNCATECOLUMNS;
承诺

样本数据为-

c1 c2    c3

  X       Y     {a:b,c:d}

如果将引号添加到json,并将
REMOVEQUOTES
删除到副本中,则它可以工作

将测试文件放入s3:

echo x,y,'"{a:b,c:d}"' | aws s3 cp - s3://[bucket]/json/test_file.csv
创建表:

CREATE TABLE IF NOT EXISTS api_log
(c1 varchar,
c2 varchar,
json_colum varchar(65535));
负载:

或者,如果不喜欢引号,可以使用制表符或其他一些不在数据中的字符。例如:

echo -e "x\ty\t{a:b,c:d}" | aws s3 cp - s3://[bucket]/json/test_file.csv
然后:

无论哪种方式,您都会得到:

select * from api_log;
 c1 | c2 | json_colum 
----+----+------------
 x  | y  | {a:b,c:d}
COPY api_log 
FROM 's3://[bucket]/json/' 
CREDENTIALS 'aws_access_key_id=;aws_secret_access_key='
delimiter '\t' 
maxerror as 250 
TRUNCATECOLUMNS
REMOVEQUOTES;
select * from api_log;
 c1 | c2 | json_colum 
----+----+------------
 x  | y  | {a:b,c:d}