使用Siren连接GES服务并可视化

举报
Chenyi 发表于 2019/12/28 11:18:45 2019/12/28
【摘要】 1. 简介Siren是基于Elasticsearch和Kibana的数据分析和可视化软件,可以针对图数据和关系数据执行多种多样的分析任务。本配置手册通过借助Siren对图数据查询语言Cypher的支持,实现了通过Siren对GES中的数据进行获取并可视化。2. 安装前准备名称说明siren-platform-no-data-no-security-10.3.1.zip...

1.       简介

Siren是基于ElasticsearchKibana的数据分析和可视化软件,可以针对图数据和关系数据执行多种多样的分析任务。本配置手册通过借助Siren对图数据查询语言Cypher的支持,实现了通过SirenGES中的数据进行获取并可视化。


2.       安装前准备

名称

说明

siren-platform-no-data-no-security-10.3.1.zip

Siren 安装包,版本10.3.1

neo4j-jdbc-driver-3.4.0-ges-siren-10.3.1.jar

加入GES支持的neo4j-jdbc-driver

WinZip

压缩&解压缩软件

GES Cypher JDBC服务地址

已经拥有GES服务,并可通过API接口进行操作

GES 业务面API   Token

参考8.2 如何获取业务面鉴权Token 如果服务器没有配置鉴权或者直接连接Interface,则无需此Token

JDK 1.8

JDK需要1.8以上版本,  并设置JAVA_HOME环境变量




 

注:

Siren下载地址:

For windows

https://download.support.siren.io/platform/download/?component=siren-platform&os=windows&version=10.3.1

For linux:

https://download.support.siren.io/platform/download/?component=siren-platform&os=linux&version=10.3.1

GES Cypher JDBC 服务地址:

一个完整的GES Cypher JDBC服务地址形如:

http://{SERVER_URL}:{PORT}/ges/v1.0/{projectId}/graphs/{graphName}/cypher/query


名称

URI

功能描述

GES-Cypher-JDBC服务

POST

/ges/v1.0/{projectId}/graphs/{graphName}/cypher/query

使用Cypher查询GES图数据库,并返回结果

 

实际使用时请将{SERVER_URL}{PORT}{projectId}{graphName}替换成对应的值,各个参数的具体含义见下表。

参数说明:

参数

是否必选

类型

说明

SERVER_URL

String

GES 服务地址

PORT

String

如果地址前缀为http,则PORT80,如果为HTTPS,则PORT443,如果服务器直接连接Interface,则PORT8080

projectId

String

项目编号,用于资源隔离。参考8.1 如何获取projectId

graphNameString图名称。

 

请求样例:

POST http://{SERVER_URL}:{PORT}/ges/v1.0/{projectId}/graphs/{graphName}/cypher/query

{"statements":[{"statement":"call db.schema()","parameters":{},"resultDataContents":["row","graph"],"includeStats":true}]}

3.       配置Siren

3.1 启动前配置

步骤1 解压siren-platform-no-data-no-security-10.3.1.zip,并打开解压后的目录,可以看到docs, elasticsearch, siren-investigate 三个文件夹(注:步骤4、步骤5中的“解压后的目录”均指该目录)。

步骤2 打开elasticsearch/config目录下的elasticsearch.yml文件,添加一行:

node.attr.connector.jdbc: true

步骤3 neo4j-jdbc-driver-3.4.0-ges-siren-10.3.1.jar拷贝到elasticsearch/config/jdbc-drivers目录下

步骤4 打开命令行,使用cd命令进入到压缩包解压后的目录下,执行以下命令启动elasticsearch

elasticsearch\bin\elasticsearch.bat

如果是windows环境,启动完毕后请不要关闭cmd

步骤5 打开命令行,使用cd命令进入到压缩包解压后的目录下,启动siren

siren-investigate\bin\investigate.bat

如果是windows环境,启动完毕后请不要关闭cmd

3.2 数据源配置

步骤1 打开http://localhost:5606/,进入Siren,地址中的5606Siren默认的端口,localhost是启动Siren的机器

步骤点击右侧Management,然后点击Datasource,添加数据源

image.png

步骤3 New datasource type选择JDBCDatabase Type选择Neo4jDriver class填写org.neo4j.jdbc.http.HttpDriver, Name填写自定义的数据源名称(为了描述方便,此处填写ges,connection string为使用前缀 jdbc:eywa:,后面附上GES Cypher JDBC服务地址(connection string的格式为jdbc:eywa:http://{SERVER_URL}:{PORT}/ges/v1.0/{projectId}/graphs/{graphName}/cypher/query

)。如果服务器配置了鉴权,在JDBC Properties处点击Add parameter添加X-Auth-Token作为业务面API鉴权凭据,然后点击右上角的Save按钮保存数据源。

image.png



各字段具体细节如图所示, Database NameUsernamePassword留空:

image.png

步骤4 保存后自动跳转到刚刚配置的数据源界面,点击Test connection,测试数据源连通性。如果提示JDBC datasource configuration successful, 则代表配置成功。由于GES不是关系型数据库,不通过Virtual IndexSiren建立连接,点击No, will do later。数据源配置完成。

image.png


4.       导入GES数据

4.1 创建并启动导入任务

步骤1点击Siren界面上的Data Reflections, 然后选择Reflection Job,准备添加导入任务:

image.png

步骤点击右上角的New新建一个导入任务。

image.png

步骤选择步骤3中配置的数据源名称(此处步骤3的样例中数据源名称为ges),点击Use Neo4j Importer

image.png

步骤4 等待程序读取GES中的点相关的元信息,读取完毕后如下所示。默认导入所有的点类型,在该页可删除不需要导入的顶点。点击Next进入下一步。

image.png

步骤5 确认导入任务,点击Confirm

注意:如果点击confirm后报Error: resource_already_exists_exception,可以不用理会,再次点击confirm即可。

image.png

步骤6 等待所有任务执行完毕,然后点击continue

image.png

注意 这一步可能出现某条边长时间runing,鼠标放在running字样上显示导入数目为0的情况。此时需要调整gremlin-servergremlin-server.yaml文件,调整参数为如下的值,保存后重启gremlin-serverinterface

writeBufferLowWaterMark: 8388608

writeBufferHighWaterMark: 16777216

步骤此处可以调整点边的颜色,也可以在后续步骤中处理,点击Next

image.png

步骤点击Create OntologySiren中创建GES元数据。

image.png

步骤点击Go to Data Model 查看创建的GES元信息。

image.png

步骤10 点击Management-> Data model,可以查看NeoNode创建的索引。

image.png

步骤11 点击Data Model Graph,然后点击灯泡图片高亮所有的Model,可以查看Siren中存在的点类型和边类型。



5.       配置索引并创建面板

步骤1 在左侧选择一个索引,进行配置。(建议优先选择点label进行配置,而后选择边label进行配置,否则配置过程中的Dashboard显示会不正常,但不影响整体流程)

步骤可以定义该索引的图标、默认的label,颜色等属性。然后点击右上角Save保存。如果要更改默认Label为实体&边属性的某个字段,在Label when visualized in the graph browser下选择DocumentField,然后选择感兴趣的属性作为label

image.png

步骤点击Data选项卡,可以查看该索引的数据,点击Autoselect Most Relevant。挑选感兴趣的属性(如果没有可以不选。针对边类型,不要勾选startend;针对点类型,不要勾选id),然后点击OK

image.png

步骤点击Generate Dashboard,为该索引生成面板。点击Create,生成面板。

image.png

步骤5 重复步骤1-4,为左侧Searches列表下的各个索引生成面板。


6.       使用Siren Graph Browser可视化GES数据

步骤1 点击Visualize,然后点击+,选择Graph Browser创建。

image.png


步骤在左侧选择Add all available lens and contextual scripts,然后点击左上角的三角符号运行。

image.png

步骤3 点击“+Add”按钮,选择一个索引导入。

image.png

步骤4 选中部分点,点击Crop可以进行裁剪,点击Expand可以进行扩展。

image.png

步骤5 点击Layout对当前系统中的图重新布局。

image.png

步骤点击Save Graph图标,并点击Save保存该Graph,此处可以为生成的Graph起一个名字

image.png

步骤7点击Save保存该Graph Browser的配置

image.png



7.       可视化界面图标上的label配置(可选)

注意到很多图标下面的文字是索引地址,可以修改为顶点的属性使之更美观。

步骤点击右侧的箭头,弹出滑动菜单,为顶点添加一个Lens

image.png

步骤选择lenses选项卡,点击Add a lens下拉框,选择Label from expression

image.png

步骤自定义一个Lens nameEntity type选择希望添加label的图标类型,点击下方的“+”号(点击之后变成“-”号),在下拉框选择希望显示的属性名称,然后在Active上打钩,并点击OK保存。

image.png

步骤在步骤2的下拉框中,选择Tooltip Lens,可以在Graph中显示每个点的属性,选择Graph Metric,可以显示顶点度数等。


8.       FAQ

8.1 如何获取projectId

                                步骤 1      发送“POST https://IAMEndpoint/v3/projects/”。

                                步骤 2      响应示例如下,其中projects下的“id”即为项目ID

{
    "projects": [
        {
            "domain_id": "65382450e8f64ac0870cd180d14e684b",
            "is_domain": false,
            "parent_id": "65382450e8f64ac0870cd180d14e684b",
            "name": "cn-north-1",
            "description": "",
            "links": {
                "next": null,
                "previous": null,
                "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99"
            },
            "id": "a4a5d4098fb4474fa22cd05f897d6b99",
            "enabled": true
        }
    ],
    "links": {
        "next": null,
        "previous": null,
        "self": "https://www.example.com/v3/projects"
    }
}

8.2 如何获取业务面鉴权Token

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”参数到JDBC Properties中。


l  Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。

l  GES服务必须通过project的方式来获取token,不支持scopedomain的方式。

获取Token接口如下:

                                步骤 1      发送“POST https://IAMEndpoint/v3/auth/tokens”。

请求头包含Content-Type字段,其值为application/json;charset=utf8

请求内容示例如下:

spacer.gif

下面示例代码中的斜体字需要替换为实际内容。参数说明如下:

l  username:用户名。

l  password:用户登录时的密码。

l  domainname:用户所属的企业账户名称。如果没有企业账户,输入用户名。

l  project name:项目名称。

{
  "auth": {
    "identity": {
      "methods": [
        "password"
      ],                                                    
      "password": {
        "user": {
          "name": "username",
          "password": "password",
          "domain": {
            "name": "domainname"
          }
        }
      }
    },
    "scope": {
      "project": {
         "name": "cn-north-1"
 
      }
    }
  }
}

                                步骤 2      获取TokenToken位于响应的Response Header(不是Response Body)中,名为X-Subject-Token

                                步骤 3      调用业务接口,在Siren配置Datasource时加入X-Auth-Token参数,参数的取值为步骤2中获取的Token


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。