大规模数据架构的问题当然是一个很大的话题,我远不是一个专家。然而,我对JSON是如何在规模上使用感兴趣,所以请原谅缺乏特异性和高层次的问题。
显然,像Google这样的大公司将JSON-LD整合到Google知识图中。
以此为例,假设在知识图中使用JSON作为I/O的数据格式,那么如何构建数据库以便能够查询这些海量的数据呢?它是依赖于转换为RDF-三元组来使用SPARQL查询,还是有其他的体系结构使得数据可以以原始的JSON格式查询?如果有的话,允许大规模处理(和查询)JSON的技巧是什么?
MongoDB或Virtuoso(?)对于管理大型JSON格式的数据并使其可查询非常有用,但是是否需要将JSON(-LD)指定为数据的后端格式,而不是(如果希望使用某种RDF)呢?
再一次,为这种含糊之处道歉。任何投入,如一般性指示或关于该专题的讨论,都将不胜感激。
发布于 2017-09-20 21:04:16
那么tl;dr是通过将JSON插入到某种可以按比例查询数据的东西中在规模上进行查询的。
JSON-LD是用于数据的语法,以便于交换。询问如何具体地查询它是没有任何意义的。
按比例查询只是将其放入数据库的问题。因为有到RDF数据模型的明显映射,所以任何RDF数据库都可以工作。JSON可能也会很容易地进入任何文档数据库,比如MarkLogic,然后可以在那里查询它。如果您有一个符合JSON文档的常规模式,那么插入它们并使用SQL进行查询并不困难。事实上,Postgres在某种程度上支持JSON,所以这可能很快就会起作用。
这些选项中的任何一个都会让您“按比例”查询。有些系统会比其他系统更好,这取决于您对at scale的定义,以及您将向系统抛出什么样的工作负载。在查询数据的方式上,也有SPARQL或SQL的设计选择,或者两者都没有。我是SPARQL在SQL上的个人粉丝,但我对此有一些偏见。
imo,或者仅仅是JSON,是后端系统和前端之间很好的交换语法,JSON在任何Javascript环境中都很容易解析和使用。JSON/JSON-LD是相当可读的,所以它也可以作为我们普通人的表示语法。但是对于系统之间的交换,二进制数据序列化更有意义。
https://stackoverflow.com/questions/46306409
复制相似问题