如何比较 CSV 文件,或者如何将 CSV 文件与数据库表进行比较
CSV文件是一种快速便捷的方式,用于以通用格式记录结构化数据。由于CSV文件非常容易创建,因此很容易出现大量相似的、体积庞大的CSV文件。在很多情况下,需要比较不同的CSV文件,以找到所需版本。在ETL(数据抽取、转换、加载)场景中,数据分析师可能需要将一个CSV文件与数据库表进行比较,以进行验证或更新数据。
Altova 公司的 DiffDog 是一款独特的、具有 XML 识别功能的差异比较和合并工具,它支持 CSV 作为一种原生文件格式,可用于比较和合并 比较并选择性地合并数据 可以将 CSV 文件转换为 CSV 文件,或者在 CSV 文件和数据库表之间进行转换。 让我们来看一个例子。

由于CSV文件包含结构化数据,因此可以使用DiffDog的“比较数据库数据”功能来比较CSV文件。用户可以通过“文件”菜单或工具图标来启动此功能。这将打开一个新的比较窗口,用户可以在其中选择用于比较的左右两个对象。

请注意,DiffDog 允许您比较 CSV 文件,这些文件可以使用逗号、制表符或分号作为列分隔符,并且可以比较带有或不带有标题行的文件。
在下面的截图所示界面中,用户选择了左右两个比较文件,并将这两个文件在顶层进行了映射,以便比较所有列。用户通过点击工具栏右上角绿色“比较”工具图标来执行比较操作。

请注意,在连接链接中的对象名称附近,会显示每个文件的行数。这两个CSV文件虽然行数相同,但内容并不完全一致。列名会显示在每个对象名称下方。您可以取消选择任何单独的连接,以避免对该列进行比较。
接下来,我们想查看这些 CSV 文件之间的具体差异。右键单击不相等的连接线,会弹出一个菜单,其中包含一个选项,可以查看详细结果。

结果窗口会详细显示这两个文件。

位于顶部的导航工具栏可以帮助您快速找到文件中第一个不同之处。例如,可能客户编号为544的订单信息被错误录入,需要重新归类到不同的区域和销售代表。
您可以通过右键单击上下文菜单,选择并合并各个CSV文件之间的差异

您可以合并两种方向上的差异,并将结果保存。保存方式有两种:一是更新现有的CSV文件,二是保存为具有新名称的新文件。
比较 CSV 文件与数据库表
要进行 CSV 文件与数据库的比较,只需使用连接向导,将数据库指定为比较对象,分别放置在比较的左右两侧即可。下图展示了我们原始的 CSV 文件(位于左侧)和一个 SQLite 数据库(位于右侧)。

在这个例子中,CSV文件和数据库表中的内容是相同的。如果存在差异,上述所有将CSV文件与其他CSV文件进行比较并合并的功能,同样适用于将CSV文件与数据库表进行比较。您可以直接从结果窗口将对数据库表的任何更改立即提交到数据库。
支持的数据库包括:
• 凤凰 (Fènghuáng)
• IBM DB2 for iSeries® 系统
• IBM DB2® 数据库系统
• Informix® (一种数据库管理系统)
• MariaDB数据库系统
• Microsoft Access™ 数据库管理系统
• Microsoft® Azure SQL数据库服务
• Microsoft® SQL Server® 数据库系统
• MySQL®
• Oracle® (甲骨文公司)
• PostgreSQL数据库系统
• Progress OpenEdge 产品进展
• SQLite
• Sybase® 数据库高级版 (ASE)
• Teradata (特拉达)
使用 DiffDog 服务器自动化 CSV 文件比较
您可以使用 DiffDog Server 来自动生成差异报告,用于比较 CSV 文件之间的差异,以及 CSV 文件与数据库之间的差异。一旦在您的网络中的一台机器上安装了 DiffDog Server,它将作为一个服务运行。您可以通过命令行界面或可执行脚本来调用 DiffDog Server,从而执行比较操作。
如果您需要频繁地进行相同的数据比较,您可以在 DiffDog 中设置一次,并将配置保存为数据库数据比较 (.dbdif) 文件。DiffDog Server 可以自动执行这些配置。
DiffDog 服务器适用于 Windows、Windows Server、Linux 和 macOS 平台。
下载免费试用版,亲自体验 DiffDog 如何轻松帮助您比较 CSV 文件!