当查询从文件中合并时,row_produced 计数在雪花 query_history 视图中代表啥

Posted

技术标签:

【中文标题】当查询从文件中合并时,row_produced 计数在雪花 query_history 视图中代表啥【英文标题】:What does row_produced count represent in snowflake query_history view when query is MERGE from file当查询从文件中合并时,row_produced 计数在雪花 query_history 视图中代表什么 【发布时间】:2020-05-18 08:45:29 【问题描述】:

我正在执行 MERGE 查询以执行 CDC 操作。我有一个目标表,其中包含大约 5000 万条记录,而作为 MERGE 源的传入文件包含 230 条记录。文件数据中的表 ID 和 id 列有简单的连接。执行后,History 视图显示插入的记录 200 和更新的记录 30。但是它显示 rows_produced 为 5K。在这种情况下,我需要了解 rows_produced 是什么。它是否显示作为 join 的一部分返回的行?如果是,那么它应该匹配文件的行数。

【问题讨论】:

【参考方案1】:

我相信 rows_produced 是写出底层微分区时创建的记录总数。

例如,如果您更新了 1 条记录,您实际上是在重新创建该 1 条记录所在的整个数据微分区(微分区是不可变的,因此永远不会更新)。如果该 1 条记录存在于包含 100 条记录的微分区中,那么您将获得更新了 1 条记录的输出,但输出为 100 rows_produced

此信息“有趣”,但在尝试确保您的 MERGE 语句的正确结果时没有帮助。使用 MERGE 的插入、更新和删除输出是正确的查看方式。

【讨论】:

谢谢迈克。这有助于澄清有关 rows_produced 列的混淆。是否可以在历史视图中显示 rows_inserted、rows_updated 和 rows_deleted,以便我们在查看查询时可以快速看到它,而不是从 query_history 或表函数中找到相同的信息

以上是关于当查询从文件中合并时,row_produced 计数在雪花 query_history 视图中代表啥的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 Access 中的表单传递到 Word 中的邮件合并

Power Query:如何使电源查询更新合并文件?

当总计为正数时将订单计为“订单”,但当总计为负数时计为“退货”

当分支 A 在 GIT 中合并到分支 B 时,将提交从本地分支 A 推送到分支 B

如何从合并请求中删除跟踪的文件

guava中的SettableFuture分析