作为数据导入过程的一部分,我们需要“按摩”文本以使其符合某些标准。该过程涉及从远程服务器下载XML文件,将数据插入“工作”表进行处理,然后将数据从“工作”表移动到实时表。
例如,我们希望用直引号字符(')替换倾斜引号字符(')的实例。
我们也希望这很容易扩展。如果我们需要添加新的替换/删除,则不需要重建导入过程项目。
我们团队有两种思想流派:
在代码中执行按摩。在项目中有一个XML文件,其中包含我们要替换/删除的各种字符。每当我们需要添加新的替换/删除时,我们都可以更新文件。
在SQL中执行按摩。当我们将数据从“工作”表传输到“实时”表时,通过执行替换的SQL函数运行每个字段/删除,我们可以随时编辑。
一种方法比另一种“更好”吗? SQL方法会更快吗?在SQL中难以/不可能的代码中,我们可以更轻松地完成某些事情吗?
提前致谢。
答案 0 :(得分:1)
这是一个经典的ETL要求,我建议你看一下SSIS(如果你使用的是MS SQL)。你可以使用SQL&中的函数/存储过程来实现大多数事情。你仍然可以拨打CLR代码来处理你能做的一些事情。
答案 1 :(得分:1)
如果有大量数据,我会考虑使用SQL,因为一旦理解了输入数据和更常见的替换或清理功能,这种方法可以进行优化,以便更有效地扩展。如果您在代码中执行按摩,那么您几乎肯定需要采用迭代方法来替换,其中运行时间将随着数据量的增加而增加。
如果要处理的数据量足够小,性能不是问题,那么在代码中进行清理可能会为您提供更大的灵活性。
答案 2 :(得分:0)
我会在SQL中执行按摩,因为这可以通过存储过程来完成。如果您需要进行任何更改,则存储过程更新只需要执行脚本。
如果按摩代码中的数据,则需要执行构建和部署以进行任何更改 - 比运行脚本要昂贵得多!
在更简单或更有效的方面 - 所有这些都取决于数据和代码质量。
要考虑的另一个选择是使用XSLT,它将是代码和文件转换文件的组合。