【问题标题】:Snowflake micropartitions in case of inserts插入时的雪花微分区
【发布时间】:2020-12-27 16:12:59
【问题描述】:

如果我们将数据一一插入到表中并加载整个文件,雪花的微分区是如何工作的? 与从文件中加载数据相比,使用insert逐个加载数据时,微分区的数量会增加吗?

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    不确定问题的目的是什么,但显然批量加载文件比单独插入记录要好得多,这不仅是因为您的问题,还因为实际的加载性能。

    至于您的问题,Snowflake 将确定如果它有一个单记录微分区并且您要插入 1 个额外的记录,它将创建一个新的 2 记录微分区(假设它们不是非常大的记录)。因此,活动表本身不会有更多的微分区,但您仍将拥有该单记录微分区作为时间旅行和故障安全的一部分。因此,如果您一次又一次地执行 1 条记录,您将需要支付大量额外的微分区。

    单记录插入在 Snowflake 中并不是一个好主意。值得研究将它们分批并批量加载的方法。

    【讨论】:

    • 但是微分区在一段时间后开始,它将所有新记录重新排列到微分区中,即使是批量插入它也必须逐条记录重新排列。那么批量加载或少量记录加载的情况不一样吗?
    • 如果你在谈论压缩和列化,这一切都是在创建微分区之前在仓库中完成的。如果您指的是集群,那是事后由服务完成的,实际上与这个问题无关。
    • 我的问题是,在雪花中,数据存储在微分区中,例如,如果我们使用插入语句加载 1000 行并从文件中加载相同的 1000 行,那么这种情况下会有更多的微分区文件或插入一个
    • 如果您在 1 个批量插入语句中插入 1000 行,而不是从文件中插入 COPY INTO,那么微分区计数将是相同的。如果您一次插入 1 条记录,1000 次,那么我在上面的回答。
    猜你喜欢
    • 2020-04-06
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2020-05-12
    相关资源
    最近更新 更多