我正在尝试将S3目录中的gz文件复制到Snowflake。
CREATE TABLE accesslog
(
loghash VARCHAR(32) NOT NULL,
logdatetime TIMESTAMP,
ip VARCHAR(15),
country VARCHAR(2),
querystring VARCHAR(2000),
version VARCHAR(15),
partner INTEGER,
name VARCHAR(100),
countervalue DOUBLE PRECISION,
username VARCHAR(50),
gamesessionid VARCHAR(36),
gameid INTEGER,
ingameid INTEGER,
machineuid VARCHAR(36),
extra variant,
ingame_window_name VARCHAR(2000),
extension_id VARCHAR(50)
);
copy INTO accesslog
FROM s3://XXX
pattern='.*cds_201911.*'
CREDENTIALS = (
aws_key_id='XXX',
aws_secret_key='XXX')
FILE_FORMAT=(
error_on_column_count_mismatch=false
FIELD_OPTIONALLY_ENCLOSED_BY = '"'
TYPE = CSV
COMPRESSION = GZIP
FIELD_DELIMITER = '\t'
)
ON_ERROR = CONTINUE
a17589e44ae66ffb0a12360beab5ac12 2019-11-01 00:08:39 155.4.208.0 SE 0.136.0 3337 game_process_detected 0 OW_287d4ea0-4892-4814-b2a8-3a5703ae68f3 e9464ba4c9374275991f15e5ed7add13 765 19f030d4-f85f-4b85-9f12-6db9360d7fcc [{"Name":"file","Value":"wowvoiceproxy.exe"},{"Name":"folder","Value":"C:\\Program Files (x86)\\World of Warcraft\\_retail_\\Utils\\WowVoiceProxy.exe"}]
能否请您告诉我导致此错误的原因? 谢谢!
答案 0 :(得分:0)
我在猜测;
'Error parsing JSON'
当然与extra variant
字段相关。
JSON看起来不错,但是反斜杠\
可能存在问题。
如果您查看成功加载的行,是否已删除反斜杠?
如果您具有涉及转义字符的STAGE
设置,则可能会发生这种情况。
然后,Windows路径值中的\\Utils
子字符串可以触发Unicode解码错误,例如
Error parsing JSON: hex digit is expected in \U???????? escape sequence, pos 123
更新:
事实证明,您必须通过将以下内容添加到FILE_FORMAT
中来关闭转义字符处理:
ESCAPE_UNENCLOSED_FIELD = NONE
另一种选择是双引号或双转义反斜杠,例如。 C:\\\\Program Files
。