gpt4 book ai didi

split - 如何拆分 CSV 或 JSON 文件以实现最佳 Snowflake 摄取?

转载 作者:行者123 更新时间:2023-12-05 01:28:22 26 4
gpt4 key购买 nike

Snowflake 建议在摄取之前拆分大文件:

To optimize the number of parallel operations for a load, we recommend aiming to produce data files roughly 100-250 MB (or larger) in size compressed. https://docs.snowflake.com/en/user-guide/data-load-considerations-prepare.html

拆分和压缩大文件的最佳方法是什么?

最佳答案

这是我能想出的最好的命令行序列:

cat bigfile.json  | split -C 1000000000 -d -a4 - output_prefix --filter='gzip > $FILE.gz'

将第一步替换为将 JSON 或 CSV 输出到标准输出的任何内容,具体取决于源文件。如果它是一个普通文件 cat 就可以,如果它是一个 .gz 那么 gzcat,如果它是一个 .zstd然后 unzstd --long=31 -c file.zst

然后拆分:

  • -C 1000000000 创建 1GB 的文件,但尊重行完整性的结束行。
  • -d 给每个文件一个数字后缀(我更喜欢这个而不是默认字母_
  • -a4 使数字后缀长度为 4(而不是只有 2)
  • - 将读取管道中前一个 cat 的输出
  • output_prefix 是所有输出文件的基本名称
  • --filter='gzip > $FILE.gz' 使用 gzip 动态压缩 1GB 的文件,因此每个最终文件的大小约为 100MB。

Snowflake 可以摄取 .gz 文件,因此最后的压缩步骤将帮助我们在网络中移动文件。

关于split - 如何拆分 CSV 或 JSON 文件以实现最佳 Snowflake 摄取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68718175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com