gpt4 book ai didi

sql - 有效识别差异

转载 作者:太空狗 更新时间:2023-10-30 01:53:43 24 4
gpt4 key购买 nike

每天,我们都会收到来自不同供应商的不同格式(CSV、XML、自定义)的大量文件,我们需要将这些文件上传到数据库中以供进一步处理。

问题是这些供应商将发送他们数据的完整转储,而不仅仅是更新。我们有一些应用程序,我们只需要发送更新(即仅更改的记录)。我们目前所做的是将数据加载到暂存表中,然后将其与之前的数据进行比较。由于数据集庞大而且我们偶尔会遗漏 SLA,因此速度非常慢。

有没有更快的方法来解决这个问题?非常感谢任何建议或帮助。我们的程序员的想法已经用完了..

最佳答案

有多种模式可用于检测完整转储数据集中的增量,即更改的记录、新记录和删除的记录。

我见过的一种更有效的方法是为您已有的数据行创建散列值,在导入数据进入数据库后创建散列值,然后将现有散列值与传入的散列值进行比较。

Primary key match + hash match = Unchanged row

Primary key match + hash mismatch = Updated row

Primary key in incoming data but missing from existing data set = New row

Primary key not in incoming data but in existing data set = Deleted row

如何散列因数据库产品而异,但所有主要提供商都提供某种散列。

优势在于只需比较少量字段(主键列和散列),而不是逐个字段进行分析。即使是很长的散列也可以非常快地进行分析。

这将需要对您的导入处理进行一些返工,但所花费的时间将一次又一次地得到返回,从而提高处理速度。

关于sql - 有效识别差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54717228/

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