使用CSV文件作为在线html表

时间:2017-05-06 18:48:57

标签: node.js mongodb postgresql csv database

我有一个即将开展的项目,涉及许多技术,我正处于研究的初期。我想也许最好是我得到别人的意见来制定我的问题。

问题:我有一个大的csv(包含> 100,000条目)。我需要从这个csv文件创建一个在线html表。该表需要可搜索和排序。

我想出了两个可能的解决方案:

1)使用数据库

从我收集的信息中,大量数据库提供了导入csv文件以创建可搜索数据表的功能。但是,我不知道如果我使用标准SQL类型数据库(例如MySQL或PostgresSQL)或者我使用像MongoDB这样的NoSQL类型数据库会有什么不同。我更熟悉NoSQL之类的数据库,(显然,我不是技术方面的专家;我只是掌握了这些数据库的知识),例如MongoDB或RethinkDB(用于实时数据流)。

2)将csv解析为JSON

将csv解析为JSON会迫使我使用JQuery或其他东西来实现手动搜索和排序的代码。与使用数据库相比,此解决方案似乎不是更好的解决方案。

此问题的另一个方面是csv文件将每天或每周重写一次。我该如何处理这样的事情?我是否需要从数据库中的旧表中删除数据,然后重新创建包含新csv数据的新表?

注意我很可能将NodeJS与其他与Fullstack JavaScript开发一起使用的库/ API /框架一起使用。但是,我并不反对使用或听取其他语言/堆栈的解决方案。

另外,我认为我的问题取决于CSV文件的复杂性(我还不知道)。

提前感谢您的帮助!非常感谢。

1 个答案:

答案 0 :(得分:0)

如果它只是一个CSV和一个平面表。我不知道SQL或noSQL是如何重要的。

对于CSV,如果记录包含唯一键或组合唯一键以标识单个记录,请记录导入到db的最后一条记录的唯一键;如果仅附加csv文件,而不对上次导入的先前记录进行任何修改,只需在每次导入时获取文件的大小就足够了。

使用这些信息快速搜索上次导入记录的结尾并创建delta csv。对于可以使用COPY之类的命令轻松导入到数据库的附加记录,例如How to import CSV file data into a PostgreSQL table?

我认为你可能感兴趣的一个javascript数据网格。  https://github.com/6pac/SlickGrid/wiki/Examples

忘了提一下,一旦导入了csv,查询就可以直接转换为postgresql中的json,例如: PostgreSQL return result set as JSON array?