DGraph的安装与使用

Dgraph集群由不同的节点(Zero,服务器和Ratel)组成,每个节点用于不同的目的。

Dgraph Zero控制Dgraph群集,将服务器分配给一个组,并在服务器组之间重新平衡数据。

Dgraph服务器托管谓词和索引。

Dgraph Ratel服务于用户界面来运行查询,突变和改变模式。

您至少需要一个Dgraph零点和一个Dgraph服务器才能开始。

这是一个3步教程,让你启动并运行。

这是运行Dgraph的快速入门指南。要进行互动式漫步,请参观游览

你可以在这里看到相关的视频

第1步:安装Dgraph

Dgraph可以从安装脚本安装,或通过Docker运行。

注意 这些说明将安装最新版本。要改为安装我们的每晚构建,请参阅 这些说明

从Docker图像

从这里拉出Dgraph Docker图像从终端:

docker pull dgraph/dgraph
复制

从安装脚本(Linux / Mac)

安装二进制文件

curl https://get.dgraph.io -sSf | bash
复制

该脚本自动安装Dgraph。完成后,直接跳到步骤2

备选方案:为了减轻潜在的安全风险,请尝试:

curl https://get.dgraph.io > /tmp/get.sh
vim /tmp/get.sh  # Inspect the script
sh /tmp/get.sh   # Execute the script
复制

您可以通过运行dgraph并查看其输出(包括版本号)来检查Dgraph二进制文件是否正确安装

在Windows上安装
注意  Windows的二进制文件可从 v0.8.3

如果您希望在Windows上安装二进制文件,您可以从Github版本中获取它们,手动提取并安装它们。该文件dgraph-windows-amd64-v1.x.y.tar.gz包含dgraph二进制文件。

第2步:运行Dgraph
注意 这是一个只涉及一台机器的设置。对于多服务器设置,请转至 部署

Docker撰写

使Dgraph启动并运行的最简单方法是使用Docker Compose。如果您还没有安装Docker Compose,请按照此处的说明 安装。

显示所有

将上面代码片段的内容保存到一个名为的文件中docker-compose.yml,然后从包含该文件的文件夹中运行以下命令。

docker-compose up -d
复制

这将启动Dgraph服务器,零和Ratel。您可以使用检查日志docker-compose logs

来自已安装的二进制文件

运行Dgraph zero

运行dgraph zero以开始Dgraph零。此过程控制Dgraph群集,维护成员资格信息,分片分配和分片移动等。

dgraph zero
复制

运行Dgraph数据服务器

运行dgraph server以启动Dgraph服务器。

dgraph server --lru_mb 2048 --zero localhost:5080
复制

运行Ratel

运行'dgraph-ratel'启动Dgraph UI。这可以用来通过UI进行变异和查询。

dgraph-ratel
复制
提示 您需要设置Dgraph服务器可以通过 lru_mb 标志的估计内存这只是Dgraph服务器的一个提示,实际使用率会高于此值。建议将lru_mb设置为可用RAM的三分之一。

Linux上的Docker
# Directory to store data in. This would be passed to `-v` flag.
mkdir -p /tmp/data

# Run Dgraph Zero
docker run -it -p 5080:5080 -p 6080:6080 -p 8080:8080 -p 9080:9080 -p 8000:8000 -v /tmp/data:/dgraph --name diggy dgraph/dgraph dgraph zero

# Run Dgraph Server
docker exec -it diggy dgraph server --lru_mb 2048 --zero localhost:5080

# Run Dgraph Ratel
docker exec -it diggy dgraph-ratel
复制

dgraph服务器在端口8080和9080上侦听输出到终端的日志。

Docker在非Linux发行版上。

使用docker时,安装的文件系统中的文件访问速度较慢。尝试time dd if=/dev/zero of=test.dat bs=1024 count=100000在安装的卷上运行命令,您会发现使用安装的卷时速度非常慢。我们建议用户使用docker数据卷。使用数据卷唯一的缺点是你无法从主机访问文件,你必须启动一个容器来访问它。

提示 如果您在非Linux发行版上使用docker,请使用docker数据卷。

用dgraph / dgraph图像创建一个名为data的docker 数据容器

docker create -v /dgraph --name data dgraph/dgraph
复制

现在,如果我们使用--volumes-from标志运行Dgraph容器并使用以下命令运行Dgraph,那么我们写入Dgraph容器中的/ dgraph的任何内容都将写入到datacontainer的/ dgraph卷中。

docker run -it -p 5080:5080 -p 6080:6080 --volumes-from data --name diggy dgraph/dgraph dgraph zero
docker exec -it diggy dgraph server --lru_mb 2048 --zero localhost:5080

# Run Dgraph Ratel
docker exec -it diggy dgraph-ratel
复制
提示 

如果您使用的是Dgraph v1.0.2(或更早的版本),则默认端口为7080,8080为零,因此当按照不同设置指南的说明覆盖零端口使用时--port_offset

dgraph zero --lru_mb= --port_offset -2000
复制

Ratel的默认端口是8081,因此使用-p 8000覆盖它。

第3步:运行查询
提示 

一旦Dgraph运行,您可以访问Ratel http://localhost:8000它允许基于浏览器的查询,突变和可视化。

以下突变和查询可以使用命令行运行,也可以curl localhost:8080/query -XPOST -d $'...'通过将两者之间的所有内容粘贴'到localhost上的正在运行的用户界面中运行。

数据集

该数据集是一个电影图形,其中图形节点是类型导演,演员,流派或电影的实体。

将数据存储在图中

更改存储在Dgraph中的数据是一种变化。以下突变存储有关“星球大战”系列的前三个版本和“星际迷航”电影之一的信息。通过用户界面或命令行运行此突变,将数据存储在Dgraph中。

显示所有

添加索引

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

curl localhost:8080/alter -XPOST -d $'
  name: string @index(term) .
  release_date: datetime @index(year) .
  revenue: float .
  running_time: int .
' | python -m json.tool | less
复制

获取所有电影

运行此查询以获取所有电影。该查询适用于所有电影的主角

curl localhost:8080/query -XPOST -d $'
{
 me(func: has(starring)) {
   name@en
  }
}
' | python -m json.tool | less
复制

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

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

curl localhost:8080/query -XPOST -d $'
{
  me(func:allofterms(name, "Star Wars")) @filter(ge(release_date, "1980")) {
    name
    release_date
    revenue
    running_time
    director {
     name
    }
    starring {
     name
    }
  }
}
' | python -m json.tool | less
复制

产量

{
  "data":{
    "me":[
      {
        "name":"Star Wars: Episode V - The Empire Strikes Back",
        "release_date":"1980-05-21T00:00:00Z",
        "revenue":534000000.0,
        "running_time":124,
        "director":[
          {
            "name":"Irvin Kernshner"
          }
        ],
        "starring":[
          {
            "name":"Han Solo"
          },
          {
            "name":"Luke Skywalker"
          },
          {
            "name":"Princess Leia"
          }
        ]
      },
      {
        "name":"Star Wars: Episode VI - Return of the Jedi",
        "release_date":"1983-05-25T00:00:00Z",
        "revenue":572000000.0,
        "running_time":131,
        "director":[
          {
            "name":"Richard Marquand"
          }
        ],
        "starring":[
          {
            "name":"Han Solo"
          },
          {
            "name":"Luke Skywalker"
          },
          {
            "name":"Princess Leia"
          }
        ]
      }
    ]
  }
}
复制

而已!在这三个步骤中,我们设置了Dgraph,添加了一些数据,设置了一个模式并将数据查询回来。

下一步

   可以继续参考其他博客:   https://blog.csdn.net/ahau10/article/details/75184325
  • 客户看看如何从您的应用程序与Dgraph沟通。
  • 就拿旅游为如何在DGraph组件编写查询导游。
  • 更多的查询也可以在查询语言参考中找到。
  • 如果您希望在群集中运行Dgraph,请参阅部署

需要帮忙
  • 请使用discuss.dgraph.io来解答问题,功能请求和讨论。
  • 如果遇到错误或有功能请求,请使用Github问题
  • 您也可以加入我们的Slack频道

故障排除

1. Docker:来自守护进程的错误响应; 冲突。容器名称已存在。

移除diggy容器并再次尝试docker run命令。

docker rm diggy

你可能感兴趣的:(dgraph)