时序(流式)图谱数据仓库AbutionGraph功能介绍-Streaming Graph OLAM Database

AbutionGraph是一款端到端的流式数据实时分析的图谱数据库,实时(流式写入实时、高QPS决策分析实时、流式预处理实时)表现在:

  1. 构建实时查询QPS响应时长与历史数据量无关的图模型;
  2. 接入流式数据并实时更新图计算指标;
  3. 实时查询历史和时序窗口聚合的数据。

AbutionGraph具有多种数据库的特性,除传统图谱数据存储模型外,Abution的目标是以足够低的延迟(亚秒级)来服务大规模图谱数据(达BP级)的实时决策分析。 AbutionGraph特别适用于业务指标系统建设、实时交互式数据分析、可视化大屏展现、IOT流式数据监测、拓扑数据动态行为计算、相同点边id的数据根据标签分类管理等等。 AbutionGraph使用Java/C++开发,支持Aremlin、Gremlin、GraphQL查询语法,并支持与Java进行混合编程开发和Python API。

AbutionGraph特性:

分布式企业级图数据库,提供图数据的实时-存储、查询和OLAP分析能力,主要面向对局部数据 的海量并发查询和全量数据 的实时在线计算/更新/监控。

用于大数据量高吞吐率和低延迟的同时,实时反馈数据态势变化(异常)情况,保障决策分析业务7*24小时在线运行。

支持功能 AbutionGraph Neo4j TigerGraph
分布式 X
RDF图模型 X X
属性图模型
实时增删查改
TB级大容量
高性能批量导入
点边检索、全文检索
千万顶点/秒的高吞吐率
对接流式数据源、关系型数据源
图分析算法
高可用性支持
图谱可视化工具
读写任务内高效并行存储)
在线/离线、全量/增量的备份恢复
多图(大图与多个子图)
丰富的离线图算法
- - -
单独删除点边(支持独立点/边存储) X X
动态新增/隐藏字段 X X
时间窗口计算(流式数据库的标志特性) X X
实时大数据流式图 存储/计算/更新 X X
多重/多维图关系(每对点间都允许多种不同标签的边共存) X X
多重/多维图实体(每个点上都允许多种不同标签的点共存) X X
动图-时序关系聚合(根据年月日等时间窗口-自动合并边属性) X X
动图-时序实体聚合(根据年月日等时间窗口-自动合并点属性) X X
导出图数据到大数据平台继续计算(Spark/Flink/Hadoop等。 对接AI算法作为特征工程库,实时更新模型指标,实时取用) X X
子图隔离(原子级用户权限管理) X X
分布式图实例 X X
节点模糊查询 X X
自定义节点类型 X X
图数据库专家支持服务 X X

AbutionGraph适用:

  1. 交互式数据分析
    希望快速从大规模历史数据中得出统计分析报告用于决策,数据探索-秒内响应、年月日时间窗口分析-秒内响应等。
  2. 流式数据监控
    希望从实时源源不断产生数据的iot/应用程序中立即反映趋势,态势感知、实时聚合计算、时序指标变化规律等。
  3. 多维数据管理
    希望将同一个id-人身份证等,绑定上工商/税务/车房产/银行/通话等不同结构的数据,并通过设定标签识别类别数据,实现高效管理与查询。
  4. 图谱关联计算
    希望导入的实体与关系自动实现关联,而不是明确"点表/边表"必须一一具备,允许孤立点。此外,希望自动汇总一跳邻居节点信息如:出度入度、基数统计、百分位数等,实现复杂关联指标的即席查询。
  5. 子图隔离
    希望在一个图谱中实现不同用户导入的数据仅自己可见,或授权可见,很适用于公安、政府、跨部门、多用户协作等场景。

及一切希望在亚秒实现关联数据分析的场景 - 执行查询即所得、数据写入即见变化,类似于Kafka、Flink、Kylin等系统,不过Abuion旨在关联计算上弥补缺陷,所以它更擅长处理关联分析问题,且比传统图数据库更节省计算资源和响应时间。 视频介绍

Abution GraphInstance

GraphInstance是连接到一个AbutionGraph的操作,是执行查询语句的入口。相当于传统数据库连接,您可以使用g.*.exec(user)去执行一系列的图查询。

  • 图实例有3种使用方式:
    1. Graph - 本地图实例连接,用于生产环境,只能在装有Abution的节点运行,可运行所有功能;
    2. TmpGraph - 临时图实例连接,用于代码测试,无需部署Abution,数据即存即删,是一个临时内存图,算法功能不可用;
    3. MemoryGraph- 分布式缓存图实例连接,该阶段还是实验性的,未经大规模项目验证;
    4. RemoteGraph - 远程图实例连接,用于远程代码调试,IDEA中提交代码至服务器运行,UDF能力请使用Graph实例运行。
1)Graph实例
Graph graph = G.Graph("graphId")
        .schema(schema)
        .build();

g.addOrUpdate(); //保存元数据

Graph graph = G.GetGraph("graphId"); //从已有图谱中快速初始化图实例

注意:

graphId、schema是必须提交的参数。

addOrUpdate为更新和保存元数据。

2)TmpGraph实例

TmpGraph实例采用java缓存保存数据,并不会持久化数据,当程序运行结束,数据将在内存中被清空,占用内存也随之释放。此实例本意是方便开发调试,并不适用于大规模数据。

  Graph graph = G.TmpGraph(schema);

Ps:临时初始化实例无需数据库配置参数,只需schema定义,不走数据库,只使用缓存,程序停止数据即清空。因为是临时图存储,复杂的生产场景一般不用,所以一些算法功能没有单独开发出来。

3)MemoryGraph实例

MemoryGraph实例采用分布式缓存作为数据持久化层,开启集群后将使用联邦集群的可用内存作为图数据存储,您可以在集群本地运行测试程序,也可以通过ip端口远程验证您的逻辑代码。当您关闭AbutionGraph集群后,数据将在内存中被清空,占用内存也随之释放。

3个必填参数(图谱名称、Schema、远程服务器端口)

Graph g = G.MemoryGraph("tgMemory1", schema, "127.0.0.1:5701");
// 保存元数据,以便可视化实时可见
g.addOrUpdate();
4)远程/跨集群连接图实例

此功能允许在任何网络连通的机器使用AbutionGDB中的数据,无需在开发者本地部署AbutionGraph,前提是已开启AbutionGRS数据中台服务,你可以直接在IDEA中编写代码,读取本地数据,使用远程服务器运行你的代码,返回的结果数据就像是本地的Java对象一样。

Graph graph = G.GraphProxy.Builder()
        //.graphId("testGraph")  //可选参数,不填写则做多图知识融合查询
        .host("thutmose-aliyun") //改成数据库服务器ip
        .port(9090)
        .contextRoot("rest")
        .build();

GraphProxy在数据整合、数据迁移和项目开发调试阶段非常有用,如在IDEA中即可连接到云端服务并调试,它使大数据工程师的本地代码得以在云端运行,我们在未来的版本中会不断升级它,使图数据库更具有云服务的特性。 注意:此功能为定制化业务平台专用,为方便代码调试,算法功能不可用。

相关推荐
儿时可乖了几秒前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度2 分钟前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮4 分钟前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
gma9991 小时前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️1 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康2 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康2 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
苏-言2 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
Ljw...2 小时前
索引(MySQL)
数据库·mysql·索引