我正在尝试将以下csv文件导入YugaByte DB YSQL。请注意,每行的第二个条目是JSON
对象。
"15-06-2018","{\"file_name\": \"myfile1\", \"remote_ip\": \"X.X.X.X\"}"
"15-06-2018","{\"file_name\": \"myfile2\", \"remote_ip\": \"Y.Y.Y.Y\"}"
我的表架构是:
postgres=# create table downloads_raw (request_date text, payload jsonb);
我希望导入的文件中的JSON代码段成为JSONB
值。
我尝试执行以下操作:
postgres=# COPY downloads_raw FROM 'data.csv';
出现以下错误:
ERROR: 22P04: missing data for column "payload"
CONTEXT: COPY downloads_raw, line 1: ""15-06-2018","{\"file_name\": \"myfile1\", \"remote_ip\": \"X.X.X.X\"}""
LOCATION: NextCopyFrom, copy.c:3443
Time: 2.439 ms
答案 0 :(得分:1)
您需要指定FORMAT csv和ESCAPE'\'。另外,格式和转义选项需要用括号括起来。这应该起作用:
COPY downloads_raw FROM 'data.csv' WITH (FORMAT csv, ESCAPE '\');
可在此处找到COPY命令支持的选项列表: https://docs.yugabyte.com/latest/api/ysql/commands/cmd_copy/