【问题标题】:Parallel inserts/delete on single snowflake table在单个雪花表上并行插入/删除
【发布时间】:2021-01-26 06:12:10
【问题描述】:

我有一个场景,我必须在雪花表上运行并行插入/删除。 例如:该表包含与不同国家相关的数据。并且每个插入管或螺纹将仅包含特定国家/地区的数据。 同样,当我运行并行删除时,每个删除线程将仅删除特定国家/地区的数据。 我希望根据国家/地区对雪花表中的数据进行分区,这可能有助于避免任何锁定。但是,雪花中似乎没有该选项。

您能否建议我如何实现并行插入/删除并避免和争用或锁定。

注意:我正在使用 matillion 并行运行不同的 ELT 作业来执行插入操作。

【问题讨论】:

  • 看看here 的一些想法。

标签: snowflake-cloud-data-platform


【解决方案1】:

在雪花中,没有分区选项。这是一款真正的 SaaS 产品,几乎为零管理。

关于并行插入和删除的问题,如果有很大的延迟,您可以扩大或自动扩大。 Snowflake 数据平台实现了一种强大且独特的分区形式,称为微分区,它提供了静态分区的所有优点而没有已知限制,并提供了额外的显着优势。

你也可以去桌clustering

【讨论】:

    【解决方案2】:

    您极不可能(几乎不可能)锁定您的数据表。如果您要锁定元数据表,请按照上面@sergiu 链接中建议的解决方案进行操作。

    如果您有性能问题(但不是表/记录锁定),那么可能的解决方案包括:

    • 更大的仓库(不太可能大大提高性能,但如果其他方法都失败了,值得一试)
    • 自动扩展您的仓库(如上一个答案中所建议的那样),以便在工作负载高时并行运行更多仓库
    • 运行多个仓库:每个国家 1 个或每个国家组 1 个。除非某些国家/地区的数据比其他国家/地区的数据多得多,并且调整仓库大小以匹配数据大小是有好处的,否则自动扩展没有真正的好处

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2021-08-01
      • 1970-01-01
      • 2022-06-14
      • 2019-03-27
      • 1970-01-01
      相关资源
      最近更新 更多