0

我在 Oracle 数据库中有一个数据库模式。我也有来自第三方供应商的数据转储。我在 Linux 机器上使用 sql 加载程序脚本加载他们的数据。

我们每天也有批量更新。

假设数据没有数据错误。例如,如果在第一天将数据即“A”插入到数据库中,并且数据“A”将不会出现在进一步的加载中(假设)。如果我们得到一个名为“A”的数据,那么我们就会发现主键违规。

问题:为了避免这些违规行为,我们应该构建一个分析器来分析数据错误还是有更好的解决方案。

4

1 回答 1

2

我为一家公司构建了一个 ETL 系统,该公司每天提供包含业务线交易数据的平面文件。数据应该遵循记录的模式,但实际上每天都有许多不同类型的违规行为,并且文件到文件。

我们构建了包含所有可空列的 SQL 暂存表,其中的 varchars 大于应有的值,并使用高效的批量加载实用程序将平面文件数据加载到这些暂存表中。然后,我们在数据库的上下文中运行了一系列数据一致性检查,以确保原始(暂存)数据可以交叉加载到正确的生产表中。

在所有编辑都通过之前,暂存表环境没有任何结果。

将平面文件加载到临时表中的优势在于,您可以利用 RDBMS 来执行设置操作并轻松地将新值与以前文件中的现有值进行比较,而无需构建特殊的平面文件处理代码。

于 2012-11-05T01:25:18.530 回答