共享公共数据库有哪些好方法?

时间:2015-02-26 00:47:04

标签: database git odata github-api nosql

我想在线建立一个交易数据库(没有私人数据),并使其可用于公共只读访问。我还希望人们可以轻松复制,使用其历史记录进行审核/验证/分析。类似于Bitcoin Blockchain的东西,但不希望它依赖于分布式节点才能运行。我到目前为止找到的最佳候选人是Git,因为你可以将它用作NoSQL数据库(参见下面的参考资料)。人们可以轻松地在本地克隆它,它可以托管在中央服务器上,如GitHub。但是Git作为数据库是非常有限的,你需要直接访问文件系统才能进行频繁的读/写,这需要一个专用的主机。我想知道是否有更好的东西,或者是否有任何我可以利用的服务。

感谢。

更新

至于数据的大小,假设它将成为从1条记录开始并每分钟增加大约1条的交易流。外部审计员应该能够验证一旦记录了交易,它就不会在数据历史中被篡改。让我们说我希望每个人都能看到我的业务有什么收入来源。

参考文献:

1 个答案:

答案 0 :(得分:2)

有两种常见的方法可以做到这一点。选择哪个取决于数据的大小(以及用户的较小程度)。

  1. 提供API和/或网站。大多数现代Web框架实际上允许您通过仅为生成的数据切换模板来使用相同的代码执行这两个操作。例如,您可以返回普通URL的页面,但返回特殊格式URL的JSON或XML数据。

    API不需要告诉用户您的查询参数的格式(或网址的结构)更复杂

  2. 上传平面文件。优选地以逗号分隔值(CSV)格式。这是大多数学术和政府机构采取的路线,因为它可以说是需要最少投资的机构。显然,这仅适用于大约1GB或更小的数据集。但您也可以通过这种方式分发大型数据集。 USGS和NASA已经做了很长时间了。您只需将数据拆分为易于下载的块(例如按日期)。

    为了有效分发,您可能需要考虑提供Torrent下载并拥有几个种子服务器。

    目前变得越来越普遍的CSV文件的替代方法是上传SQLite数据库。它基本上是一个文件。