下载吧 其他软件

分类分类

Dgraph(分布式GraphQL数据库)

Dgraph(分布式GraphQL数据库)

v21.03.0 官方版

大小:55.9 MB 更新:2024/06/02

类别:其他软件系统:WinAll

立即下载

  Dgraph是一个绿色安全、免费开源的Graph数据库,该库是唯一一个拥有图后端的原生GraphQL数据库,使用该库用户进行一键复制、自动数据移动以及实现碎片平衡、分布式ACID事务,Dgraph不强制执行结构或架构,并且用户可以立即开始输入数据并根据需要添加约束;Dgraph功能强大、简单易用,支持全文搜索、正则表达式和地理搜索等搜索功能,可以轻松便捷的进行文本搜索和替换,同时该数据库还支持多种语言的字符串谓词类型的值,可以采用多种语言存储相同的数据信息,非常方便实用。

Dgraph(分布式GraphQL数据库)

软件功能

  使用全文搜索搜索推文。

  使用正则表达式搜索来搜索主题标签。

  将推文拆分为称为令牌(令牌化)的单词块。

  将这些标记转换为小写。

  Unicode标准化令牌。

  将令牌减少到其根形式,这称为词干(运行到运行,快到快等)。

  删除停用词。

  查询和更新节点,使用其UID删除谓词。

  在现有节点之间添加一条边。

  向现有节点添加新的谓词。

软件特色

  分片式和分布式架构

  一致的复制

  自动数据移动和碎片平衡

  图形QL启发语言

  Grpc / HTTP + JSON / RDF协议

  分布式ACID交易

  本地支持全文搜索、正则表达式和地理搜索

官方教程

  步骤1:运行Dgraph

  有几种安装和运行Dgraph的方法,所有这些方法都可以在“下载”页面中找到。

  启动和运行Dgraph的最简单方法是使用dockerdgraph/standalone映像。如果尚未安装Docker,请按照此处的说明进行安装。

  docker run --rm -it -p "8080:8080" -p "9080:9080" -p "8000:8000" -v ~/dgraph:/dgraph "dgraph/standalone:master"

  注意此独立映像仅用于快速入门目的。不建议在生产环境中使用。

  这将开始与一个容器DGraph组件阿尔法,DGraph组件零和RATEL在其中运行。您会发现Dgraph数据存储在主目录的名为dgraph的文件夹中。

  步骤2:执行变异

  提示 一旦DGraph组件运行时,您可以访问RATEL的http://localhost:8000。它允许基于浏览器的查询,变异和可视化。 您可以在命令行中通过curl或通过在Ratel中粘贴变异数据来运行以下变异和查询。数据集

  数据集是电影图,其中图节点是类型导演,演员,类型或电影的实体。

  在图中存储数据

  更改Dgraph中存储的数据是一种突变。截至目前,Dgraph支持两种数据的突变:RDF和JSON。以下RDF突变存储了有关“星球大战”系列的前三个发行版和其中一部“星际迷航”电影的信息。通过curl或Ratel UI的mutate选项卡运行RDF突变,会将数据存储在Dgraph中。

Dgraph(分布式GraphQL数据库)
Dgraph(分布式GraphQL数据库)

  提示要通过curl使用文件运行RDF / JSON突变,可以使用curl选项 --data-binary @/path/to/mutation.rdf代替--data $''。该--data-binary选项跳过curl的默认URL编码,其中包括删除所有换行符。因此,通过使用数据二进制选项,您可以#在文本中使用注释,因为使用该--data选项,文本中第一个注释之后的任何#内容都将出现在同一行上,因此将被视为一个长注释。

  步骤3:变更架构

  更改架构以在某些数据上添加索引,以便查询可以使用术语匹配,过滤和排序。

Dgraph(分布式GraphQL数据库)

  提示要从Ratel UI提交架构,请转到“架构”页面,单击“批量编辑”,然后粘贴架构。

  步骤4:执行查询

  获取所有电影

  运行此查询以获取所有电影。该查询列出了所有具有starring边缘的电影 。

  提示您还可以从Ratel UI的“查询”选项卡中运行DQL查询。

Dgraph(分布式GraphQL数据库)

  注意GraphQL +-已重命名为Dgraph查询语言(DQL)。尽管标头application/dql 的首选值是Content-Type,但我们会继续支持 Content-Type: application/graphql+-以避免造成重大更改。

  获取“ 1980”之后发行的所有电影

  运行此查询以获取“ 1980”之后发行的“星球大战”电影。在用户界面中尝试一下,以图形形式查看结果。

Dgraph(分布式GraphQL数据库)

  输出:

Dgraph(分布式GraphQL数据库)
Dgraph(分布式GraphQL数据库)

  而已!在这四个步骤中,我们设置了Dgraph,添加了一些数据,设置了一个架构并查询了该数据。

常问问题

  什么是Dgraph?

  Dgraph是用Go编写的分布式,低延迟,高吞吐量的图形数据库。它非常注重良好的设计,并发性,并最大限度地减少了在分布式环境中执行查询所需的网络调用。

  为什么要建立Dgraph?

  我们认为图形数据库目前是二等公民。它们还不够成熟,无法作为唯一的数据库运行,并且无法与其他SQL / NoSQL数据库一起运行。同样,我们对现有的非本地或非分布式图形数据库的设计决策也不满意,它们不管理基础数据或遭受性能问题的困扰。

  我为什么要使用Dgraph?

  如果您对高性能的图形数据库感兴趣,而该数据库重点放在声音设计,周到的实现,弹性和尖端技术上,那么Dgraph绝对是您应该考虑的事情。

  如果您在一个传统的关系数据库管理系统(例如MySQL,SQL Server或Oracle)中运行五个以上的表,并且您的应用程序需要五个或更多的外键,则图数据库可能更合适。如果您正在运行像MongoDB或Cassandra这样的NoSQL数据库,迫使您在应用程序层中进行联接,那么绝对应该看一下迁移到图数据库。

  为什么我不使用Dgraph?

  如果您的数据没有图结构,即只有一个谓词,那么任何图数据库可能都不适合您。NoSQL数据存储最适合键值类型存储。

  Dgraph生产准备好了吗?

  我们建议将Dgraph用于公司的生产中。在此阶段,次要发行版可能无法向后兼容;因此,我们强烈建议您经常使用出口商品。

  Dgraph快吗?

  我们运行过的所有其他图形系统,Dgraph的速度至少快了10倍。它只是从那里上升。但是,这是轶事。

  以下是一些实际的基准:

  针对Neo4J的Dgraph –检查此博客文章

  反对Cayley的Dgraph –检查此github存储库(贷给Ankur Yadav)

  Dgraph如何获得许可?

  Dgraph已获得Apache v2.0的许可。许可证的全文可在此处找到。

  Dgraph对其持久性存储有何用途?

  Dgraph v0.8及更高版本使用Badger(用纯Go编写的持久键值存储)。

  Dgraph v0.7.x及以下版本使用RocksDB作为键值存储。RocksDB用C ++编写,要求cgo与Dgraph一起使用,这引起了一些问题。您可以在此博客文章中阅读有关它的更多信息。

  为什么Dgraph不使用BoltDB或RocksDB?

  BoltDBRWMutex的所有读取和写入都依赖于一个全局锁。这会对Dgraph的发布列表的迭代和修改的并发性产生负面影响。因此,我们当时决定不使用它,而是使用RocksDB。另一方面,RocksDB支持并发写入,并且已在Google和Facebook的生产环境中使用。

  今天,我们使用Badger(我们构建的高效且持久的键值数据库),该数据库是用Go编写的。我们的博客介绍了“为什么我们要在Dgraph的RocksDB中选择Badger ”中选择Badger的理由。如今,Bad在Dgraph以及许多其他项目中使用。

  Dgraph可以在其他数据库(例如Cassandra,MySQL等)上运行吗?

  不会。Dgraph本机可以存储和处理数据,以确保对性能和延迟具有完全控制。Dgraph和磁盘之间唯一的关系是键值应用程序库Badger。

  Dgraph是否支持GraphQL?

  Dgraph最初旨在完全支持GraphQL。但是,随着我们对语言的使用经验的增长,我们开始碰到缝隙。它无法支持用于与Graph数据进行交互的语言所需的许多功能,我们认为其中某些功能是不必要且复杂的。因此,我们创建了一个简化的功能丰富的GraphQL版本。由于缺乏更好的名称,我们将其称为DQL。您可以在此处了解更多信息。

  Dgraph何时会支持Gremlin?

  Dgraph将致力于在v1.0之后支持Gremlin。但是,这不是一成不变的。如果我们的社区希望Gremlin支持与诸如Tinkerpop之类的其他框架进行交互,我们可以更早地寻求支持。

  Dgraph会支持Cypher吗?

  如果有需求,Dgraph可以支持Cypher。很有可能是在v1.0之后。

  Dgraph可以支持X吗?

  请参阅Dgraph产品路线图,了解我们计划支持的产品。如果request X不是,请随时在forum.dgraph.io上进行讨论,或提交Github Issue。

  Dgraph是开放式内核吗?

  是的。Dgraph的主要核心是在Apache 2.0许可下。企业功能将根据专有许可发布。与其他数据库不同,我们包括在开放源代码许可下分布式运行Dgraph,因为我们希望所有用户都能够随着需求的增长而扩展。

  Dgraph是否会得到很好的支持?

  是的。我们得到了风险投资的资助,并计划将这些资金用于发展。我们拥有一支由真正聪明的工程师组成的专门团队,将其作为全职工作。当然,我们始终欢迎来自更广泛社区的贡献。

  Dgraph如何计划作为一家公司赚钱?

  现在说还为时过早。我们很有可能会提供商业许可的插件并向感兴趣的客户提供付费支持。这种模式将使我们能够继续推进Dgraph,同时恪守我们对保持核心项目自由开放的承诺。

  我如何为Dgraph贡献力量?

  我们接受代码和文档的贡献。请参阅链接以获取有关如何捐款的更多信息。

相关文章
  • 最新排行
  • 最热排行
  • 评分最高
其他软件排行榜

点击查看更多

点击查看更多

点击查看更多