写点什么

ArcNeural V2.1 版本正式发布,重要特性全面解析!

作者:Fabarta
  • 2024-03-14
    北京
  • 本文字数:4922 字

    阅读完需:约 16 分钟

ArcNeural V2.1 版本正式发布,重要特性全面解析!

作为一家领先的 AI 数据基础设施公司,Fabarta 提供“一体两翼”的产品矩阵(多模态智能引擎、数据编织平台和企业知识中台),通过探索和联结数据资源,助力企业实现智能驱动的持续创新。ArcNeural 是 Fabarta 自主研发、以 Data-Centric AI 为核心构建的多模态智能引擎,将传统数据库的“存储 &计算”架构演进为 AI-Native 的“记忆 &推理”架构,可以为 AI 应用提供私有记忆和精确可解释的推理,可以为企业落地智能化应用提供有效的数据处理能力支撑。ArcNeural 架构设计灵活,还可以提供独立的图数据库 ArcGraph、图计算服务和向量数据库 ArcVector,满足企业在业务智能化方面的多样化需求。

近期,我们正式发布了 ArcNeural 多模态智能引擎 V2.1 版本。相较于 1.0 版本,新版本进行了重大升级,并增加了众多全新功能,包括支持时态图模式和 JSON 数据类型,引入 RocksDB 存储引擎,全面兼容 LDBC 标准,增强了可运维性能力和可观测性数据等等。新版本旨在为用户带来全新的体验,创造更多的价值。接下来,我们一起来全面了解下 V2.1 版本的重要特性!

支持 TEMPORAL 时态图模式

时态图(TEMPORAL)模式是通过在图数据模型中添加时间概念来增强图数据库存储时态关系数据的特色能力。通过提供相应时间信息的数据存储和查询,从而能够回溯数据随时间的变化及历史某个时刻的快照记录。因此,时态图模式具有强大的时间管理和分析能力,可以有效地处理和分析带有时间信息的图数据,为用户提供丰富的时间查询、分析和推理功能。在数据演变对业务至关重要的领域,如金融系统、科学研究、历史记录和过程监控等,时态图模式都非常适用。例如,下图中 LDBC FinBench 中的转账环识别就是时态图模式的一个典型应用场景。



  1. 创建时态图

通过增加TEMPORAL keyword 来标识图中的边支持时态信息,这里用时态图存储相同账户间多次转账信息:

  1. 插入时态信息

通过 TEMPORAL 创建的时态图,会内置新增 _rank 字段来存储时间信息。_rank 字段可以插入 int 值,或通过 toTimestamp() 或 now() 时间函数插入对应的时间信息。

  1. 查询时态记录

针对时态图的查询语句,新增了 temporal 可选子句,用于对时态数据的遍历。当不带该子句的时,默认返回最新数据快照的时态记录(最近的记录),也可以通过 temporal 子句后带时间点或时间范围,来回溯对应的历史时态数据。

  • 查询最新转账信息(时态数据):

  • 查询历史某时间点转账信息(时态数据):

  • 查询历史某时间范围转账信息(时态数据):



具备多模态数据处理能力,支持多种设计范式

ArcNeural 具备多模态数据处理能力,包括图数据、向量数据。新版本对多模态进行了增强,新增了 JSON 数据类型,也就是对于点/和边的 Schema 中支持 JSON 数据类型,用于存储非结构化数据,同时扩展 JSON 字段特有的查询、存储、Index 和 JSON Function 等 JSON 特性功能。在 ArcNeural 支持 Schemaful 数据范式的基础上,增加了 Schemaless 的数据范式的支持。

1. 支持以 JSON 类型创建属性

JSON 属性可以存在于点和边之中,可以设置 default 值,default 须为 '{}' 。

  • 创建 JSON 点属性

CREATE VERTEX person (    PRIMARY KEY id INT64,     name String not null,     info JSON default '{}');
复制代码
  • 创建 JSON 边属性

CREATE EDGE knows (    weight INT(32) NOT NULL default 1000 COMMENT '权重值',    info JSON not null,    From person to person);
复制代码

2. 支持含有 JSON 类型的 DML 语句

DML 语句中的 Json 表示需要用字符串表达,输入须为合法 json 类型。

  • Insert

Insert (:person {id: 3, name: 'David', info: '{"name": "David", "age": 43, "phone": ["13800296666", "029-11111111"], "out": true, "score": {"语文": 103, "数学": 150}}'});
复制代码
  • Update

Match (n: person)     set n.info = '{"name": "Duke", "age": 42, "phone": ["13800296666", "029-11111111"], "out": true, "score": {"语文": 103, "数学": 150}}';
复制代码

3. 支持创建以 json 类型为索引的点边

新版本支持创建包含 json 类型的索引,以 ->> 为连接符,json path 为参数。

CREATE VERTEX person (    PRIMARY KEY id INT64,     name String not null,     info JSON,     INDEX json_index (info ->> '$.a.b.c'));
复制代码

4. JSON function

  • jsonValue

JsonValue function 主要功能是通过 jsonpath 提取出来 json 数据中的某些属性,可以用于查询语句,支持两个参数,第一个是属性,第二个参数是 json path。

Match (n: person)-[:knows]->(m:person)    where jsonValue(m.info, "$.gender[?(@ == 'male')]") is not null     return n.id, m.id;
复制代码
  • jsonReplace

JsonReplace function 主要用于替换 json 数据中的某些属性并且返回替换后的新值。一般用于 set 语句,支持三个参数,第一个是属性,第二个参数是 json path,第三个是需要替换的数据。

Match (n: person {id: 2})-[:knows]->(m: person)     set m.info = jsonReplace(m.info, "$.weight", 101.1);
复制代码

支持 RocksDB 存储引擎与多副本一致性架构

最新版本引入了 RocksDB 存储引擎,并且采用了支持多副本一致性的敏捷交付架构。通过使用 Raft 共识算法来实现 WAL 日志的分布式一致性。在 Raft 组内,节点可以担任不同的角色,包括 Leader 和 Follower:

  • Leader:负责接收分区 DML 操作所生成的 WAL 日志写入请求,并在 Raft 组内完成日志的同步及一致性确认,最后确保成功写入本地的日志 Store。Leader 支持写入和读操作。

  • Follower:负责完成对 Raft Leader 新的日志进行同步确认,并在心跳超时后发起 Leader 选举。Follower 支持只读操作。



为了保证系统的高可靠性,我们将数据保存在三个副本中,支持高可用切换,同时也支持宕机恢复。

我们借鉴了“日志即数据”的设计理念,通过 Log 将计算层和存储层进行了解耦。为了提高性能,还增加了本地高性能日志库,用以对 DML 的 WAL 日志进行存储。

语法全面兼容 LDBC 标准,业内领先

新版本对 Cypher 的支持率达到 90%以上,通过全部 LDBC SNB Interactive 测试场景(LDBC,全称 The Linked Data Benchmark Council,链接数据基准委员会),功能上达到行业领先水平。并且支持更丰富的 Cypher 功能和更复杂的查询语句,包括但不限于:

  • 支持用 WITH 子句来对中间结果进行去重、分组、排序、过滤和分页等功能。

  • 支持多个 MATCH/OPTIONAL MATCH 的连接查询。

  • 支持向量类型及相关函数。。

  • 支持 UNWIND 子句。

  • 支持 COLLECT()聚合函数。

  • 支持在 WHERE 子句中使用路径条件过滤,用来过滤指定的点/边是否满足指定的路径条件。

  • 支持列推导函数。

  • 支持路径函数。

  • 支持最短路径函数:shortestPath(), allShortestPaths()。

  • 完善和增加更多内置函数,完全支持 cypher 标准。

用 Cypher 语句通过 LDBC SNB Interactive workload 的全部测试场景。

客户端支持逻辑导入导出工具与物理导入工具

客户端 SDK 分为两类:Java Native Client SDK 和 Http Restful Client SDK。其中,Java Native Client SDK 通过 gRPC 协议与 ArcNeural 进行通信,目前支持 Java 编程语言;而 Http Restful Client SDK 则通过 Http 协议与 ArcNeural 通信,支持多种编程语言,如 Go、Python、C# 等。

客户端 SDK 支持主动在高可用集群中找到 Leader 节点,并在其上执行 DML/DDL 语句,并支持 Follower Read 功能,当 Leader 节点重启时,客户端 SDK 的请求会被重新发给新的 Leader 节点来执行,用户侧应用对于高可用集群的主从切换无需感知。

对于数据的导入导出,可以选择采用逻辑导入工具 ArcPump。ArcPump 支持用户导入 CSV 文件到 ArcNeural 数据库中,同时也支持将数据中的点/边数据导出为 CSV。在导入功能方面,ArcPump 支持用户定义导入 CSV 文件的某几列或者全部。在导出功能方面,ArcPump 支持导出点/边数据的指定属性或者全部属性,同时支持自定义过滤条件,例如导出 Person 的 Age 属性小于某个值的数据。

此外,支持物理导入工具 arc_direct_load,会先将数据处理为 sst 文件,然后直接插入到底层存储模块中。这是一种相比逻辑导入更快速的导入方式,特别适合处理大批量的数据。

图计算全面支持离在线一体化数据导入与 HTAP 调用

新版在离线图计算场景下增强了 CSV 文件的导入解析:

  • 支持 CSV 通过不同文件表示不同点边类型,一次可同时导入多个点类型或边类型。

  • 支持 CSV 文件中的点边属性导入,支持点边属性参与图算法运算。

  • 支持将 vertex ID 列解析为多种内存数据类型,包括 int32、int64、String,可按内存大小或业务需求灵活选择。

  • 分布式模式下支持 CSV 文件按分区导入,使导入性能随节点增加而得到近线性提升。

同时,在线图计算场景下完整支持 HTAP 调用:



用户可以使用标准 Cypher 语法构建 Match 子句,选取参与图计算的点边数据,然后在 call 子句中指明图算法名称及相关参数,并指定结果的存储格式,即可触发在线图计算任务,并通过返回的 task_id 查询任务状态和结果。

新版本在线图计算的 HTAP 调用已全面支持 ArcNeural 的所有 50 余种图算法。

显著提升可运维性能力与可观测性数据

1. 新增系统信息虚拟图 SYSTEM_INFORMATION ,全面掌握 ArcNeural 的系统状态:

例如,可以通过查询 __sessions 来了解系统有多少会话:



同时在此基础之上为用户提供了更为简单易用的 show 指令,如通过 show sessions 可以同样达成上述效果。show 指令保持输出稳定,内部系统信息图可能在将来的版本中发生变更。

2. 新增大量宏观统计数据,全面了解 ArcNeural 的负载情况

统计数据比如查询与 DML 语句的数量与响应时间等等以 Prometheus 格式输出,只需要通过简单的配置便可以方便的与 Prometheus 生态集成进行展示与报警,比如在 Grafana 中进行展示每秒 dml 的数量:

3.新增兼容 Opentelemetry 的 trace 信息,全链路了解语句执行情况

通过 trace 可以很方便的追踪一条语句的执行情况,支持分布式追踪以及与应用集成,比如我们可以追踪一条 insert 语句的具体执行过程并用 jaeger 进行展示:



该特性支持动态开关以及采样,可以在平时关闭以免影响性能,而在出现疑难问题时动态打开并进行追踪。

去除第三方依赖,提升交付更敏捷性

新版本去除了对 ETCD 的依赖。在之前的 ArcNeural 版本中,依赖 etcd 进行选主以及存储元数据,增加了系统的复杂性以及容灾恢复时长,在 2.1 版本中,我们改写了之前的 Raft 实现,将元数据存储、选主等功能集成到了 ArcNeural 中,去除了 etcd 的依赖,在系统复杂度、容灾恢复方面得到了极大的改善。

数据为中心的“一体两翼”产品矩阵

Fabarta 基于以数据为中心的概念构建了“一体两翼”产品矩阵,深度整合大模型与知识图谱数据库,构建全新的数据智能范式。通过 ArcFabric 多模态数据编织平台可以组织和管理企业数据,提取企业数据关系与元数据,并将企业的私有数据整合处理后传递给 ArcNeural 多模态引擎来数据管理。利用 ArcPilot 企业知识中台来展现业务属性,基于此之上来构建企业智能应用。在数据生产、管理、消费层均与大模型实现了深度结合。目前 Fabarta 已经为多个客户智能化转型提供了有力的技术支撑。结合 2.1 版本的最新特性,可以支撑多种企业业务场景落地:

  • 利用多模态数据处理能力,实现对于舆情各类数据的存储和处理,结合大模型智能分析能力,智能分析多模态舆情数据,为业务人员发现舆情洞察;

  • 利用 TEMPORAL 时态图模式,助力基于图智能的用户旅程展示、并且结合大模型,挖掘用户模式,实现客户分群,助力企业营销升级;

  • 其他典型特性,包括业内领先的全面兼容 LDBC 语法,让 Cypher 支撑更多图智能分析场景落地,广泛应用于智能风控、营销等领域;客户端支持逻辑导入导出,更节省落地成本;图计算全面支持离在线一体化,实现图计算更广泛应用。

随着 ArcNeural V2.1 版本的发布,ArcNeural 作为以 Data-Centric AI 为核心构建的多模态智能引擎,将利用“一体两翼”产品矩阵,结合数据编织平台和企业知识中台,更好地将 AI 算法技术与智能化应用场景结合,助力企业“AI+”战略的加速落地。


如对我们的产品或技术感兴趣,欢迎通过 business@fabarta.com 与我们联系。

发布于: 刚刚阅读数: 4
用户头像

Fabarta

关注

数联世界,智见未来。 2023-03-09 加入

Fabarta是一家AI基础设施公司,提供图、向量和AI推理能力融合的ArcNeural多模态智能引擎,通过企业智能分析平台加速图智能在企业场景的落地,利用多模态数据编织平台帮助企业梳理多模态的数据资产。

评论

发布
暂无评论
ArcNeural V2.1 版本正式发布,重要特性全面解析!_ArcNeural_Fabarta_InfoQ写作社区