使用 Spark 连接器时如何覆盖 Snowflake 中的单个分区

问题描述 投票:0回答:1

Spark 有没有办法从 Snowflake 表中读取单个日期分区,更新它,然后覆盖这个单个日期分区。应支持并发写入。目前Spark有两种覆盖模式,所以我没有看到覆盖单个分区的方法。在 Iceberg 中这是一件很容易的事情,因为覆盖模式仅覆盖单个分区。我是否错过了一些明显的解决方案?

我对不需要事务或复杂 SQL 的解决方案感兴趣。理想情况下,与 Iceberg 中的行为相同,即允许覆盖单个分区的操作

apache-spark pyspark snowflake-cloud-data-platform
1个回答
0
投票

Snowflake 不将数据保存为文件(假设您使用的是标准表),因此在这种情况下,您最后的评论,特别是“Snowflake 覆盖它的旧文件”,仍然没有多大意义。

假设您的 Snowflake 表有一列指示“一天”,那么您可以删除这些记录并将最新的 Spark 文件加载到 Snowflake 中。如果您的新文件集是对 Snowflake 中现有记录中的数据的更改,那么您可以使用合并语句插入/更新/删除。

如果您正在谈论某种类型的 Snowflake 外部表(位于云存储系统中保存的文件之上),那么您可以在 Snowflake 外部管理这些文件,并根据需要刷新 Snowflake 中的元数据。

如果您只是想将数据从 Spark 移动到 Snowflake,那么我首先要阅读文档的 this 部分

© www.soinside.com 2019 - 2024. All rights reserved.