我会知道是否有任何API的开源软件旨在处理(实际上)无限数量的半结构化数据表。
我们都知道,关系数据库通常处理有限的具有(实际上)无限行数的表。例如,我们有MySQL。
一个典型的例子是存储公司的客户表.可能有上百万的客户。
然而,当涉及到“本质上是有限的”的数据,但它是半结构化的动态变化的数据时,用户倾向于在像Excel或Google电子表格这样的地方存储“简短的事物列表”。
这方面的一个典型例子可以是街角商店,它的老板根本没有任何软件,并将他们的每日收入记录在电子表格中。一个月一个月地做一张新单子。
或者是一个建筑师办公室,他们有一个电子表格来跟踪他们购买了哪些CAD软件许可证,以及何时更新它们。
我们可以考虑,如果“行的形状”变化频繁,但并非所有行都以格式更新,则可以考虑使用Mongo或ElasticSearch来存储备用文档。
由于表的目标不是无限增长,所以每个表都可以使用数组存储在JSON文档中。
CSV很简单,但是当您有一些数据并且想要对数据进行版本化时,它是很尴尬的。任何技术人员都可以手工编辑CSV,但是当你把它给某个员工时,他应该把它看作是“用户”和“查看网格”,而不是“逗号分隔的双引号文本”。
幸运的是,有些免费的CSV编辑器可以让生活变得更轻松。
我想在一家小公司的桌子上追踪“一切”。例如,每个提供商以PDF格式通过电子邮件发送给我们的费用(但随后“翻译”成表格的形式)。他们每年更新3或4次关税,每个文件可能有10至100个表格,我们可以处理大约100个供应商。
我的意思是,我们每年管理的3000或4000张表中的每一张都是不同的。
将它们管理为3000或4000 excel文件,或者google电子表格或CSV文件是很复杂的,特别是当您需要为每个表分配一个ID,然后“引用这些表”时。
关税是“静态写-一次读-很多”文件。另一方面,替代用法(例如,在家的用户只想追踪“家里的东西”)可能有几十张表格(我们家里有书籍清单、我工作过的银行列表、服务供应商名单--比如每月向我收费的水或煤气供应商,以及过去两年来拜访过我们家的朋友名单)--所有这些清单都是:慢慢地改变+不会增长到无限大的规模。
在所有这些已经探讨过的案例中,问题是:
从“表”是“文档”的角度来看,关系数据库不是“思想”,而是“表的行”是文档,因此动态地创建数千个表并动态地更改它们的字段排列并不完全符合它们构建的目的。我无法想象有一个sysop允许用户使用应用程序任意创建任意数量的表。
另一方面,所有其他三种方法(电子表格、面向文档的数据库保存每个对象的完整表,或CSVs)都存在相同的问题:表保存数据,但没有任何集中的方法来处理这些表的“元数据”(为表分配is、列出所有现有表、从其他表引用一些表、跟踪创建日期等)。其中最接近的一个可能是google电子表格,但同样地,处理连接在一起的10.000个google表并不方便。
我想知道是否有任何工具将所有这些优点结合在一起:
( a)能够像在电子表格中一样“自由”地更改表格的格式,而不必每次都考虑“更改表”。( b)能够用某种允许交叉引用的表ID“标识”每个表。( c)对任何员工都有用,即使她不是技术人员。( d)有许多表无限增长的想法。
此外,它还应该有“书面保护”(关税是关税,输入时不应该修改,如果一个新的更新到达,它是一个新的表,而不是上一次编辑),或者,如果它允许版本,它应该有修改控制。
我现在能想到的唯一解决方案是制作一些“分离的文档”(电子表格、CSV或elasticsearch),并“手工”制作一个软件来管理所有文档、索引它们、为它们分配ID等等。
但我觉得我不是世界上第一个这么想的人。
附近有软件吗?
发布于 2020-11-20 15:26:24
如果你能付钱的话,试试DynamoDB吧。是的,它不符合您的开放源码需求,但它可以做到这一切。
但它是半结构化的动态变化数据
DynamoDB的理想用例
由于表的目标不是无限增长,所以每个表都可以使用数组存储在JSON文档中。
Dynamo表是一组键值,可以序列化为JSON。
能够像在电子表格中一样“自由”地更改表的格式,而不必每次都考虑“更改表”。
是的,Dynamo表的每一行都可以有不同的类型。
能够使用某种允许交叉引用的表ID“标识”每个表。
是。
可供任何员工使用,即使她不是技术人员
是的,DynamoDB有web仪表板,但也有API,它允许您用任何语言编写任何您想要的客户机。
它必须实现版本控制系统(适用于变化缓慢的列表)或两者(理想配置)。
是。它拥有优秀的版本控制系统。
在进入订阅之前,您可以使用在本地部署它并进行测试。
https://softwarerecs.stackexchange.com/questions/75203
复制相似问题