我一直在寻找一种轻量级,可扩展的解决方案,以便使用数据库中的其他元数据来丰富CSV文件。 CSV中的每一行代表一个数据项,列代表属于该项目的元数据。
基本上我有一个CSV提取,我需要从数据库中添加其他元数据。可以通过ODBC或REST API调用访问元数据。
我脑子里有很多选择,但我正在寻找其他想法。我的选择如下:
将CSV导入数据库表,通过使用SELECT语句查找必要的元数据,使用sql UPDATE语句应用其他元数据,然后将数据导回CSV格式。对于这个解决方案,我正在考虑使用ETL工具来解决这个问题。
我还考虑过基于NodeJS的解决方案,我在其中读取CSV,调用Web服务以获取元数据并将数据写回CSV文件。然而,CSV可能非常大,可能有数万行,因此内存可能很重,或者在逐行处理的情况下效果不是很高。
如果您有更好的解决方案,请发布。非常感谢。
答案 0 :(得分:1)
我认为你已经在这里提出了几个相当不错的想法。
使用ETL工具运行您的第一个建议以丰富您的CSV文件,您应该查看https://github.com/streamsets/datacollector
这是一种持续的摄取方法,因此您甚至可以监控CSV文件的目录,以便在获取时加载。虽然在数据库中进行查找还没有特定的功能,但它确实可以通过多种方式实现(包括用Java编写自己的自定义逻辑,或用python或JavaScript编写脚本)。
*完全披露我在这个项目上工作。