雪花 - Azure 文件上传 - 如果文件大小超过 40MB,我如何对文件进行分区

Posted

技术标签:

【中文标题】雪花 - Azure 文件上传 - 如果文件大小超过 40MB,我如何对文件进行分区【英文标题】:Snowflake - Azure File upload - How can i partition the file if size is more than 40MB 【发布时间】:2021-04-14 21:40:00 【问题描述】:

我必须使用 COPYINTO 命令将雪花表中的数据上传到 Azure BLOB。我拥有的复制命令适用于 SINGLE = TRUE 属性,但如果大小超过 40MB,我想将其分成多个文件。

例如,雪花中有一个 100MB 的表“TEST”,我想将这些数据上传到 azure BLOB 中。

copy into 命令应该创建以下格式的文件 TEST_1.csv (40MB) TEST_2.csv (40MB) TEST_3.csv (20MB)

--COPY INTO 命令我正在使用 copy into @stage/test.csv from snowflake.test file_format = (format_name = PRW_CSV_FORMAT) header=true OVERWRITE = TRUE SINGLE = TRUE max_file_size = 40000000

【问题讨论】:

请提供您正在运行的 COPY INTO 语句以创建多个文件,并说明您在运行时遇到的错误/问题? 【参考方案1】:

我们无法控制文件卸载的输出大小,只能控制最大文件大小。文件的数量和大小基于并行操作时的最大性能。如果您想控制文件的数量/大小,那将是一个功能请求。否则,只需在 Snowflake 之外制定一个流程,然后再合并文件。更多卸载详情请参考blog

【讨论】:

以上是关于雪花 - Azure 文件上传 - 如果文件大小超过 40MB,我如何对文件进行分区的主要内容,如果未能解决你的问题,请参考以下文章

将文件从本地上传到雪花表阶段时出现问题

将文件上传到 Azure Blob 存储导致大小为 0

使用 SAS 令牌从 Azure 阶段读取时出现雪花错误

Azure Blob 存储的文件大小限制?

java中文件大小超过多大需要断点续传

Azure ARM 上传自定义镜像