如何将 <file name>.csv.gz 从雪花阶段加载到雪花 table 中?

How do I load <file name>.csv.gz from snowflake stage into a snowflake table?

我已成功将 1000 个文件加载到 Snowflake stage=MT_STAGE。 每个文件都有完全相同的架构。 每个文件都有完全相同的命名约定(文件名)。csv.gz 每个文件大约 50 兆(+/- 几兆)。 每个文件都有 115k-120k 条记录。 每个文件有 184 列。 我创建了一个雪花 table=MT_TABLE。 我一直在尝试执行“COPY INTO”以将文件从舞台移动到单个 table 时出错。 我已经尝试了无数的命令变体,有或没有不同的选项。我花了 3 天时间阅读文档并尝试观看视频。我失败了。有人可以帮忙吗?

copy into MT_TABLE from @MT_STAGE;

Copy executed with 0 files processed

copy into MT_TABLE from @MT_STAGE (type=csv field_delimiter=”,” skip_header=1);

Syntax error: unexpected '('. (line 1)

copy into MT_TABLE from @MT_STAGE type=csv field_delimiter=”,” skip_header=1;

Syntax error: unexpected '”,'. (line 1)

根据 Mike 的说法,如果您的数据中有逗号

col_a col_b col c
no comma one, comma two,, commas
col_a, col_b, col_b
no comma, one, comma, two,, commas

怎么知道什么是知道什么是什么的正确方法

col_a col_b col c
no comma one, comma two,, commas
no comma, one , comma two,, commas
no comma one, comma, two , commas
no comma, one , comma, two , commas
no comma one, comma, two, commas
no comma, one , comma, two, commas

哪一行是正确的。

所以你将字段分隔符从 , 更改为管道 | 或者你引用数据

no comma| one, comma| two,, commas

双引号

"no comma","one, comma"," two,, commas"

单引号

'no comma','one, comma',' two,, commas'

很酷的是,如果您更改列定界符,它不能出现在数据中,或者数据必须被引用。

如果您更改为引用,则它必须不在字段中或必须转义。

或者你可以编码为像 base64 这样的安全数据类型,它需要更多 space,但现在它是运输安全的:

bm8gY29tbWE,IG9uZSwgY29tbWE,IHR3bywsIGNvbW1hcw