邵宗文-图数据库及应用场景分享

邵宗文老师带来了图数据库行业的现状介绍与应用场景分析,在这段分享中场内的提问达到了空前的高潮。图数据库目前的缺口很大,机会也很多,它与人工智能的建模方式、MPP模型的处理方式都存在较大差异,从数据和容量方面,目前图数据库也不是单一孤立的方案,相信随着图数据库技术的快速发展,能够有更多的最佳实践场景。

展开查看详情

1. 图数据库及应用场景 腾讯云数据库产品中心 – 邵宗文 全球敏捷运维峰会 北京站

2.个人简介 邵宗文, CCF,IEEE会员,2016年开始学 人工智能,2017年6月份带队获得搜狐图文 匹配大赛第10名。 2009年加入腾讯,现为CSIG腾讯云数据库专家产品经理。之前曾负责为OMG事业群构建 数据库平台,部署,规划及运维支持,为腾讯网,新闻客户端,快报,视频,财经,体育,等提供了 稳定的服务。 之前曾任新浪数据库专家,数据库平台主管。有非常丰富的大型项目的经验:如统一通行证, 发布系统,论坛,财经,体育等重大项目的数据库架构改造和性能优化。 全球敏捷运维峰会 北京站

3.目录 1. 市场分析 2. 应用分析 3. 优劣对比 4. 行业展望 全球敏捷运维峰会 北京站

4.1. 市场分析 全球敏捷运维峰会 北京站

5.急速增长中的图数据库 全球敏捷运维峰会 北京站

6.兼具直观性的图数据库 一图胜过千言万语 比起传统的信息存储和组 织模式,图数据库能够很清 晰揭示复杂的模式,尤其在 错综复杂的社交,物流,金 融风控行业效果更为明显。 全球敏捷运维峰会 北京站

7.图数据库:特点 更好,更快速的查询和分析:图数据库为查询相关数据(无论大小)提供了卓越的性能。 图模 型提供了固有的索引数据结构,因此它不需要为给定条件的查询加载或接触不相关的数据。 这 使得它成为更好、更快的实时大数据分析查询的绝佳解决方案。 。 更简单和更自然的数据建模:使用关系型数据库建模的人都需要了解数据库的规范化和参照完整 性的严格规则。 一些NoSQL数据库则走向了另一个极端,将所有类型的数据放在一个大型表中。 另一方面,在图数据库中,可以定义任意类型的顶点类型来表示对象,并定义边类型来表示特定 的关系。 同时支持实时更新和查询:图数据库支持对大图形数据的实时更新,同时支持查询。 数据结构的灵活性:图数据库具有灵活的schema修改。 用户可以不断添加或删除新的顶点、边 和属性,扩展或缩小数据模型。 这对管理不断变化的对象类型特别方便。 大多数图数据库可以 在线修改schema,同时继续提供查询。 全球敏捷运维峰会 北京站

8.以neo4j为例的数据大盘展示 全球敏捷运维峰会 北京站

9.百花齐放的图数据库 Operational 图数据库 RDF图数据库 多模式图数据 分析及大图数据库 Neo4j AllegroGraph Azure Cosmos DB Apache Giraph Blazegraph Titan ArangoDB Turi Virtuoso TigerGraph JanusGraph Sqrrl OrientDB Stardog CayLey RedisGraph Dgraph 全球敏捷运维峰会 北京站

10.数据库巨头也在加大图数据库投入 1 国外的图数据库情况 2 国内图数据库情况 2017年11月底,亚马逊在 AWS 2017全 2017年10月,华为云推出了图引擎服务 球峰会发布了全新的图数据库产品: Neptune. 阿里云蚂蚁金服Geabase图数据库已开始在 2017年7月,SQL Server 2017 rc1发布, 宣传,但还未在阿里云发布 引入了图数据库的支持,2017年10月正式 发布。 2018年8月,百度推出了hugeGraph图数 2017年3月,Oracle 12.2开始支持属性图 和图分析 据库 全球敏捷运维峰会 北京站

11.图数据库的关注度越来越多,并且大都是有持续在更新 全球敏捷运维峰会 北京站

12.人气王neo4j已收揽千万级的下载量 neo4j下载量 neo4j使用经验 图数据库 10M+ 工程师 50K+ 参会人数 50K+ 从下载数量来看还是前景很大 通过多年培训和逐步推广 图数据库相关技术会议 有7M是基于下的neo4j的docker版 目前大概有5万多名 GraphConnect大会已有上千人参会。 全球敏捷运维峰会 北京站

13.2. 应用分析 全球敏捷运维峰会 北京站

14.覆众多行业场景,尤其是在社交和金融风控领域 社交网络 金融风控 知识图谱 关系分析 车联网应用 网络&IT运 推荐引擎 维 社交网络 推荐引擎 网络&IT运维 金融风控 通过用户兴趣、好友和阅 基础设备规模庞大、结构 提供实时的用户行为检测 数十亿个关系查询延迟降低到 ,识别敏感用户,及时识 读历史记录等信息之间的 复杂,帮助深入了解设备 秒级,目前传统关系型数据库 别欺诈风险,错综复杂的 关系,向用户提供推荐。 状态、设备之间的关系, 基本无法实现超过3层好友关 实现全网络设备智能监控 人物关系分析,进行用户 系的查询。 电商,短视频,新零售等都 与管理 分群,识别异常群体 有强烈需求。 全球敏捷运维峰会 北京站

15.金融风控场景涉及维度多,传统数据库无法很好解决 利用图谱网络开展风险管理 银行风险压力 员工管理 •员工与亲属、员工与外部企业 • 合规监管风险 客户管理 •财务状况、征信、行业、资金流动性、重大事件 • 黑产欺诈风险 关系管理 • 内部员工风险 •亲属关系、股权关系、集团关系、业务关系、供应链、行业关系 业务管理 •业务流程、业务合规、业务资金、业务进展、业务数据 全球敏捷运维峰会 北京站

16.金融风控场景涉及维度多,传统数据库无法很好解决 全球敏捷运维峰会 北京站

17.腾讯内部自研的星图助推解决金融痛点。 全球敏捷运维峰会 北京站

18.腾讯自研星图的架构。 全球敏捷运维峰会 北京站

19.发现隐藏股东和集团边界情况 全球敏捷运维峰会 北京站

20.发现风险预警 全球敏捷运维峰会 北京站

21.社交推荐案例-如何向用户推荐最符合需求和兴趣的聚会活动A 全球敏捷运维峰会 北京站

22.社交推荐案例-如何向用户推荐最符合需求和兴趣的聚会活动B 全球敏捷运维峰会 北京站

23.社交推荐案例-如何向用户推荐最符合需求和兴趣的聚会活动C 全球敏捷运维峰会 北京站

24.社交推荐案例-如何向用户推荐最符合需求和兴趣的聚会活动D 全球敏捷运维峰会 北京站

25.3. 优劣对比 全球敏捷运维峰会 北京站

26.图数据库目前优势明显,还需在性能和周边需要完善。 图数据库在处理关联关系上具有完全的优势,特别是在我们这个社交网络得到极大发展的互联网 时代。例如我们希望知道谁LIKES(喜欢)谁(喜欢可以是单向或双向),也想知道谁是谁的 FRIEND_OF(朋友),谁是所有人的LEADER_OF(领导)。除了在关联查询中尤为明显的优越性, 图数据库还有如下优势: a) 用户可以面向对象的思考,用户使用的每个查询都有显式语义; b) 用户可以实时更新和查询图数据库; c) 图数据库可以灵活应对海量的关系变化,如增加删除关系、实体等; d) 图数据库有利于实时的大数据挖掘结果可视化。 图数据库虽然弥补了很多关系型数据库的缺陷,但还有一些不足地方,如: a) 不适合记录大量基于事件的数据(例如日志条目); b) 二进制数据存储。 c) 并发性能要求高的项目。 d) 目前相关图查询语言比较多,尚未有很好统一。 e) 图数据库相关的一些书籍文档偏少。 f ) 相关生态还在不断完善。 全球敏捷运维峰会 北京站

27. Relational vs Graph的大比拼 https://neo4j.com/developer/guide-sql-to-cypher/ 全球敏捷运维峰会 北京站

28.在常规查询面前,基本没有特别大的差异 SELECT p.*FROM products MATCH(p:Product)RETUR as p; Np; SELECT p.ProductName, MATCH(p:Product) p.UnitPriceFROM products as RETURNp.productName,p.unitPrice pORDER BY p.UnitPrice DESCLIMIT ORDERB Yp.unitPrice DESC LIMIT10; 10; SELECT p.ProductName, MATCH(p:Product)WHEREp.product p.UnitPriceFROM products AS NameSTARTS pWHERE p.ProductName LIKE 'C%' WITH"C"ANDp.unitPrice>100RETUR AND p.UnitPrice>100; Np.productName,p.unitPrice; 全球敏捷运维峰会 北京站

29.在复杂查询对比中,高下立盼。 MATCH(p:Product{productName:"Chocolade"}) SELECT DISTINCT c.CompanyNameFROM customers <-[:PRODUCT]-(:Order)<-[:PURCHASED]- AS cJOIN orders AS o ON (c.CustomerID = (c:Customer)RETURNdistinctc.companyName; o.CustomerID)JOIN order_details AS od ON (o.OrderID = od.OrderID)JOIN products AS p ON (od.ProductID = p.ProductID)WHERE p.ProductName = 'Chocolade'; SELECT p.ProductNameFROM Product AS pJOIN ProductCategory MATCH(p:Product)-[:CATEGORY]- pc ON (p.CategoryID = pc.CategoryID AND pc.CategoryName = >(l:ProductCategory)-[:PARENT*0..]- "Dairy Products")JOIN ProductCategory pc1 ON (p.CategoryID = (:ProductCategory{name:"Dairy pc1.CategoryIDJOIN ProductCategory pc2 ON (pc2.ParentID = Products"})RETURNp.name pc2.CategoryID AND pc2.CategoryName = "Dairy Products")JOIN ProductCategory pc3 ON (p.CategoryID = pc3.CategoryIDJOIN ProductCategory pc4 ON (pc3.ParentID = pc4.CategoryID)JOIN ProductCategory pc5 ON (pc4.ParentID = pc5.CategoryID AND pc5.CategoryName = "Dairy Products"); 全球敏捷运维峰会 北京站

数据连接未来!围绕Database、Bigdata、AiOps的企业级专业社群。行业大咖、技术干货,每天精品原创文章推送,每周线上技术分享,每月线下技术沙龙,受众20W+。