GraphBase基础原理

一、GraphBase简介

互联网时代,随着网络技术的发展,企业积累的数据越来越多。伴随着数据集的不断增加,传统的关系型数据库查询性能会随之变差,特别是针对一些特殊的业务场景,所以迫切的需要一种新的解决方案去应对这种危机。为了解决复杂的关系问题,图数据库应运而生。

图数据库,是指以"图"这种数据结构存储和查询数据,图包含节点和关系,节点和关系可以存在标签和属性,且边可以有方向。GraphBase是分布式图数据库,基于HBase的分布式存储机制,能够支持百亿节点,千亿关系的海量数据,提供基于Spark的数据导入和基于Elasticsearch的索引机制,在推荐、关系分析和金融反欺诈等领域有广泛应用。系统具有如下特点:

  • 全分布式,Hadoop生态无缝集成。
  • 百亿点千亿边,秒级查询。
  • 提供易用的Rest接口,方便数据的查询分析。
  • 提供强大的Gremlin图遍历功能,可实现复杂的业务逻辑。
  • 支持离线批量导入和实时流导入,对导入性能进行深度优化。

二、GraphBase架构

GraphBase包含GraphServer和LoadBalancer角色。

  • GraphServer:包含GremlinServer和StandardServer服务,GremlinServer负责gremlin图查询服务,StandardServer负责REST服务等;系统启动时,meta_graph图先启动,meta_graph图负责存储多图元数据、异步任务等;ZooKeeper负责监控服务中活着的实例,并提供分布式锁服务。
  • LoadBalancer:提供图服务的负荷分担能力。

GraphBase架构如图下所示。

  • 接入层

    • Gremlin API:引入开源的Apache TinkerPop Gremlin组件,提供开源标准图交互式查询语言接口;
    • REST API:提供包含图查询、图修改、图管理的在线分析图算法在内的全套接口;
    • 通过Load Balancer提供多实例GraphServer的负荷分担。
  • 计算层

    • 提供图数据库核心引擎,包括数据管理、元数据管理等;
    • 后端存储和索引接口适配层。
  • 存储层

    • 分布式KV存储:提供海量图数据存储能力;
    • 搜索引擎提供二级索引,全文检索、模糊检索等能力。

GraphBase典型应用场景:

  • 金融反欺诈
  • 知识图谱
  • 关系分析

三、GraphBase关键特性:支持多图

场景描述

  • 不同业务部门开发不同的应用,可以共用同一套图数据库
  • 不同的应用,采用不同的数据,数据无关联,方便业务隔离

多图方案设计图

  • GraphServer:包含GremlinServer和StandardServer服务,GremlinServer负责gremlin图查询服务,StandardServer负责REST服务等;系统启动时,meta_graph图先启动,meta_graph图负责存储多图元数据、异步任务等;ZooKeeper负责监控服务中活着的实例,并提供分布式锁服务。
  • LoadBalancer:提供图服务的负荷分担能力。
  • GraphWriter:数据批量导入模块。
  • GraphStreaming:数据实时导入模块。

四、GraphBase关键特性:数据导入

支持批量导入和实时导入

GraphBase支持批量导入和实时导入两种形式,批量导入利用Spark将存储在HDFS上的历史数据全量导入到图数据库,实时导入利用Kafka和SparkStreaming将数据实时的导入到图数据库。

支持灵活的数据映射规则,将原始数据方便的映射成图模型。

批量导入支持BulkLoad

新增预计BulkLoad模式的导入能力,支持更快速的数据导入。

数据导入时,可以在一次MapReduce任务中同步生成Graph HFiles和Inner Secondary Index HFiles。

五、与其他技术组件联系

GraphBase将业务数据和元数据存储在HBase,实现海量数据的支持。将外部索引数据存储在Elasticsearch,实现全文检索、模糊匹配等查询能力。GraphBase利用Spark实现数据的批量、实时导入,利用Mapreduce实现索引重建和批量删除能力,利用ZooKeeper实现计算引擎多实例的分布式协调能力。

GraphBase与其他组件的关系如下图所示。

相关推荐
Leo.yuan4 小时前
企业Data Agent架构选型:帆软Dora基于NL2BI的现有BI体系复用方案
大数据·人工智能
余槐i4 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
数据库小学妹4 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令
数据库·postgresql·表膨胀·mvcc·数据库运维
mister_guo4 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案
数据库·mysql
骇客野人5 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤
数据库·redis·memcached
Elastic 中国社区官方博客6 小时前
一条 ES|QL 查询,涵盖365天的审计日志:在热数据和可搜索快照上执行相同的搜索
大数据·运维·服务器·elasticsearch·搜索引擎·全文检索
larance6 小时前
DecisionTree 二分类
人工智能·分类·数据挖掘
美狐美颜SDK开放平台6 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
亚川楼宇自控系统数据中心厂家7 小时前
事故风机监控:守护机房电池间等特殊区域的安全底线
大数据·安全
科技看点说8 小时前
2026年AI安全上市公司梳理:产品、认证与商业化进展
大数据·人工智能