图算法 | 3、图分析与数据科学

图分析(Graph Analytics)在本质上是对图数据的处理与分析,其过程可以概括为图计算。

而图计算的范畴不仅包含数据的计算或分析,还包含元数据管理、模式管理、数据建模、数据清洗、转换、加载、治理、图分析与计算等一系列操作。

或许我们用大数据生命周期来剖析图分析、图计算会有一个更全面的理解。下图所示的是大数据发展历程中通常会遇到的五大问题,依次是大数据存储、大数据治理、大数据计算与分析、大数据科学和大数据应用。

图2-5:大数据(图数据)的五大问题

上图中的大数据在很大程度上可以直接替换为图数据,毕竟图数据是大数据发展的必然趋势、终极阶段(图2-6)​。

图2-6 从关系型数据到图数据、深数据的发展趋势

我们解决图2-5中的五大问题的目的如下:

1)通过信息的关联化(高维、原生图)存储,采集更准确、更灵活、更能直观反映真实世界问题的数据,用于支撑决策。

2)通过图数据建模、血缘分析、数据核验、元数据管理等一系列数据治理工作来为科学的数据存储、计算与应用提供保障。

3)通过让信息更灵活、更透明、更实时化地被计算与分析,解锁大(图)数据的价值。

4)通过数据科学指导的图计算与关联分析,例如对风险传导的深度下钻与科学计量、对用户群体进行精细化产品、服务定位等,进行深度、复杂、白盒化(可解释)的数据分析及预测来提升决策准确率。

5)通过基于数据科学的应用与解决方案开发(高维建模、白盒化算法、决策与反馈机制)​,改善下一代产品、服务的开发。

图2-6中所示的数据发展趋势有两条主线和一个核心观点。

❑主线1:数据处理底层技术的核心发展趋势是从关系型数据到大数据直至深数据(图数据)​。

❑主线2:对应底层技术的面向数据的处理维度呈现了从点到线、由线及面再到体的由简入繁、自低维到高维、自低算力需求到高算力需求、自简单分析到复杂分析的一个自然发展过程。

❑核心观点:图计算的本质是复杂网络化计算,是与人类大脑工作最为贴切的逆向工程,图数据库相对于传统关系型或NoSQL数据库的效率与性能有指数级的提升。

我们以主线1为例简要展开论述。20世纪70年代至80年代是关系数据库发展的早期阶段,它迅速地占领了政企IT市场,其中的佼佼者有IBM Db2、Oracle、Sybase等。1983年是关系数据库发展的标志性年份,SQL(结构化查询语言)国际标准应运而生,作为关系数据库的通用查询语言,尽管各个厂家都有自己的特殊语法与功能实现,但大体上都会支持通用的SQL,以保证系统间通信、系统迁移、升级换代与维护等操作的便捷性。随着互联网,特别是移动互联网、云计算业务的兴起,大多数基于单机、小型机或集中式架构设计的关系数据库在面向海量数据、多样多维多模态异构数据处理时的缺陷开始体现得越来越明显,于是基于分布式架构理念设计的Hadoop、非关系数据库等阵营开始出现,大数据库处理与分析技术开始得到越来越多人的关注。在大数据发展的历程中,出现了多种类型的架构阵营,可以简单地梳理为如下几个阵营。

❑基于MapReduce理念的架构阵营:最为常见的是Hadoop阵营,以及基于内存加速的Spark项目。

❑基于NoSQL理念的非关系数据库阵营:包含多种数据库架构,如列数据库、宽表、KV、文档、时序、多模数据库以及图数据库等。

❑基于SQL接口,但对底层进行了扩充与增强的新型关系型数据库、数仓、数湖阵营:数量庞大的各种商业或开源关系数据库、MPP数仓、各类流批一体化数仓、实时数仓等。

需要指出的是,尽管出现了多个阵营,但是自1983年开始的以SQL为主流的趋势并没有因为大数据等架构的出现而产生实质变化,毕竟绝大多数的新型数据库与框架依然还在向SQL兼容。然而,这一切在2024年迎来一个实质性的转变。数据库查询语言将迎来第二个国际标准—GQL,即图查询语言(嬴图| ISO/IEC-GQL国际图语言标准发布,图技术开启新纪元_图数据库 国际标准-CSDN博客)。

换言之,Hadoop、Spark、NoSQL、数仓数湖尽管制造了无数的“噪声”​,但是并没有形成一整套国际标准—一个会推动全球IT生态自上而下革新的标准。这种革新从底层上要解决的是SQL与关系数据库在处理多维、多模态数据时的无力—无法深层、动态、灵活、高效地完成对数据的处理与分析,特别是对于复杂关联、深层递归形式的分析—SQL在语言设计层面就不具备这种能力,而关系数据库二维表结构的低维性让分析实时性的问题变得更加“不可能”​。事实上,SQL的这种低维性已经被诟病了很多年,但是在底层架构上一直没有本质的改变,尽管MapReduce等架构的出现让数据处理量大幅提升,但是并没有改变浅层数据处理的特征。换言之,几乎所有的分布式数据库只能面向浅层数据处理,任何深层数据处理依然会遇到效率低下、延迟巨大甚至错误求解的问题。而这一“不可能的任务”有望在图数据库的时代被解决。因为图数据库自下而上关注的是数据的关联关系,从建模、存储到数据治理再到数据计算与分析,以及数据查询与应用,它不再拘泥于关系数据库的表结构,不再受限于主键、外键,让数据建模更加灵活和高维,不再专注于浅层查询,也第一次让计算引擎成为数据库的一等公民,进而意味着在面向深层、复杂、动态、递归查询、分析与计算时的效率有指数级提升。这也是为什么我们会提出一个观点:图数据库是终极数据库,或最接近终极数据库的一种形态。

辩证地看待任何问题,我们需要意识到,无论是出于认知的局限性还是有意的误导,市场上很多所谓的图数据库在本质上都和图没有太大关系,它们都不具备对数据进行灵活建模、深度处理与分析、高效处理的能力,尽管它们都会毫无例外地宣称自己是高性能、分布式图数据库。这些以假乱真的图计算或图数据库产品有哪些特点呢?在此梳理如下几条线索以供读者迅速辨别真伪。

❑底层存储引擎基于NoSQL或RDBMS实现。这是典型的拿来主义,如此构建的非原生图不可能具有高性能处理能力,也没有灵活的数据建模的能力。其中,最典型的有基于HBase、Cassandra、ClickHouse、Hadoop甚至MySQL、PostgreSQL、Oracle实现。

❑计算引擎基于Spark GraphX或第三方“图上计算”引擎实现。以Spark GraphX为例,它仅仅是借用了图的名字而已,其数据加载与处理效率相对于Hadoop而言只提高了1~2个数量级,但是距离真正的高性能依然非常遥远,特别是面向实时数据时,Spark缺乏数据加载更新的能力,更缺乏深度下钻与分析的能力。

❑宣称可以同时支持多种图查询语言。例如,能同时支持OpenCypher与Gremlin可能意味着它对任何一种语言都没有极致的性能优化,因为数据库与查询语言是一一匹配的,而通用性则需要长时间的性能优化来实现。甚至还有的图数据库可以通过SQL来实现查询与分析,这基本就能断定该系统依旧是传统关系数据库,而且也无法支持图数据库所应该具有的任一优点—灵活性、高效性、深度下钻计算与分析能力。

❑一味鼓吹分布式、鼓吹万亿规模,但是却连一个百万量级的数据集都无法深度下钻与高效处理。图计算或图数据库面临的最大挑战并不在于数据存储,而在于计算,特别是复杂计算、深度计算与关联、灵活计算,这才是数仓数湖无法有效解决的。这种挑战有的时候不是通过100台低配服务器解决的,而是应该通过可能10台高配服务器来高效解决的—本质上我们是在回答一个问题:到底是100台1线程的大集群的计算能力高,还是10台10线程的小集群的计算能力高?答案是后者。然而大多数人都会回答错误,因为大多数人忽略了网络延迟与I/O对于分布式系统在数据关联计算时的降维打击。这就是算力引擎在图数据库中必须成为一等公民的最核心原因。所谓高性能计算绝不等于高性能存储,存得多并不意味着算得动。

❑基于开源项目或社区版项目包裹。基于开源尽管可以快速地出“成果”​,但对于底层代码却是失控的,因为极少有人能真正去吃透别人的底层代码,安全风险隐患无法得到有效控制。至于社区版,更是赤裸裸地对别人知识产权的侵犯,也意味着任何底层功能的改进都不可能实现(通常基于别家项目包裹的产品会出现宣称支持多种查询语言的情况,读者可自行甄别)​。

图2-7 数据科学与分析流程示意图

1)多源数据采集:多源、多维、多模态数据采集、ETL/ELT。

2)图数据建模:高维建模,设计并创建点、边Schema。

3)图数据存储与数据治理:数据持久化、元数据库管理、核验、血缘分析等。

4)图计算与分析:图查询逻辑与功能设计与实现(后文将展开讨论)​。

5)图算法与映射:图算法调用(通常作为图计算与分析的子集存在)​。

6)图谱管理与可视化:集成化、图谱化、可视化数据管理与展示,以及二次开发。

7)商务智能与决策:可看作包含以上所有步骤。

8)图应用与产品:可看作以上7条的超集。

以上可以看作大数据应用视角下图计算与分析结合数据科学的完整链路,涉及数据建模、存储与治理、计算与分析、算法与映射、二次开发与应用场景等核心功能模块。

提及数据科学与大数据分析,人们很自然地会联想到商业智能(Business Intelligence,BI)。BI使用统一的衡量标准来评估企业的过往绩效指标,并用于帮助制定后续的业务规划。常见的BI组件一般包括:

1)建立KPI(Key Performance Index,关键绩效指标)以明确面向所服务用户的功能目标。

2)多维数据的汇聚、去正则化、标记、标准化等。

3)实时报表生成、报警等。

4)处理结构化、简单数据集为主,而发展的趋势是集成越来越多源、复杂的数据集,并进行更深度的计量、下钻、关联分析。

5)集成统计学分析模块与概率模型模拟等功能。发展的趋势还包括集成AI、图嵌入算法等。

BI通常会在底层依赖某种数据处理(如ETL,数据抽取、转换、装载)架构,如数据仓库等。随着大数据技术的发展,BI系统正在越来越多地拥抱诸如内存计算(如IMDG数据库技术)​、实时图计算或图数据库等新事物,归根结底是为了更高的数据处理效率、更深的数据处理能力、更灵活的数据建模方式,以及对于真实业务挑战的更真实的还原方式,而图计算显然是一个可以同时满足以上限定条件的答案。

数据科学则可以通过科学的方法论来指导实现BI系统中的预测分析、数据挖掘等功能。数据科学使用统计分析、模式识别、机器学习、深度学习、图计算等技术,对获取到的数据中的信息形成推断及洞察力。相关方法包括回归分析、关联规则计算(如风险传导路径分析、链路分析、购物篮分析)​、优化技术和仿真(如蒙特卡罗仿真用于构建场景结果)​。

在BI系统的基础上,数据科学又可为其增添如下组件与功能:

❑结构化/非结构化数据、多种类型数据源、超大数据集。

❑优化模型、预测模型、预报、统计分析模型等。数据科学的发展从分析复杂度与价值两个维度看,可分为3种境界、5个阶段(图2-8)​。3种境界分别如下:

1)后知后觉—传统的BI,滞后的延时分析。

2)因地制宜—实时化分析。

3)未卜先知—预测性分析。

图2-8 数据科学的发展

图2-8所示的5个阶段与3种境界匹配关系如下:

❑后知后觉—描述性+诊断性

❑因地制宜—描述性+诊断性+指示性+(部分)预测性

❑未卜先知—描述性+诊断性+预测性+指示性+抢先式(基于预测的行动指南)

这5个阶段自上而下实现的复杂度越来越高,毕竟每向前一个阶段,所涵盖的阶段性能力就越完整,价值也越大,这也是为什么越来越多的企业、政府机构要把大数据科学驱动的大数据分析引入并应用到BI、智慧城市等广泛的领域中来。

与大数据处理与分析项目中通常需要多种角色类似,依托图计算技术,同样需要行业问题专家(Subject Matter Expert, SME)、数据分析专家、建模工程师、大数据系统专家等一众人才。区别在于,建模工程师需要摆脱传统的二维表思维束缚,掌握用图数据的高维建模,以及掌握如何进行高效的图分析,在什么场景下用何种图算法来实现更低的成本与更高的回报率。

数据科学属于典型的把多学科知识集于一身的实践,图2-9示意了这种融合。

1)行业经验:对垂直领域的深刻理解。

2)产品开发能力:能够将数学模型转换为可在图数据处理平台上运行的代码,还能设计、实现和部署统计模型和数据挖掘方法等,最终形成产品或解决方案。

3)数理统计知识:能够以数学、统计学模型、算法(如图算法、机器学习、深度学习等)来抽象业务需求与挑战。

图2-9 数据科学的融合

我们看到国内大量的银行只能把产品开发能力外包,原因在于业务人员缺乏开发能力,而那些号称有自研能力的大型银行,业务与科技部门也经常被各种问题困扰,其根本原因在于业务与科技之间没有融会贯通,缺少具备“三江交汇”式数据科学分析能力的专业人员。

数据科学是一个新兴的领域。数据分析专家负责为复杂的业务问题建模,运用业务洞察力找到新的商业机遇。对于这种能够从海量数据中提取有用信息,再从信息中提炼出具有高度概括性与指导意义的知识、智慧甚至转变为可以自动化智能(例如图增强智能或图AI)的新型人才,可以预见会受到来自市场越来越多的青睐。 

(文/Ricky - HPC高性能计算与存储专家、大数据专家、数据库专家及学者)

· END ·

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/922192.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鲸鱼机器人和乐高机器人的比较

鲸鱼机器人和乐高机器人各有其独特的优势和特点,家长在选择时可以根据孩子的年龄、兴趣、经济能力等因素进行综合考虑,选择最适合孩子的教育机器人产品。 优势 鲸鱼机器人 1)价格亲民:鲸鱼机器人的产品价格相对乐高更为亲民&…

【Unity】 GamePlay开发:通用的检查点/成就/条件触发系统

特别适用于各种解谜关卡, 成就系统,任务系统,的 通用事件处理 CheckPointHandler.cs随便挂在场景中的某个物体上 (单例模式,场景中只要有一个) 1) How To Use CheckPoint Events是一个列表,每个元素是一个组合事件&…

企业OA管理系统:Spring Boot技术实现与案例研究

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足,创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法,以及通过理论课学习与实验参考书的帮助,熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作;作为后续实验的基础,根据实验要求重…

基于AXI PCIE IP的FPGA PCIE卡示意图

创作不易,转载请注明出处:https://blog.csdn.net/csdn_gddf102384398/article/details/143926217 上图中,在FPGA PCIE卡示意图内,有2个AXI Master设备,即:PCIE到AXI4-Full-Master桥、AXI CDMA IP&#xff1…

Docker1:认识docker、在Linux中安装docker

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

java-排序算法汇总

排序算法: 冒泡排序(Bubble Sort) 选择排序(Selection Sort) 插入排序(Insertion Sort) 快速排序(Quick Sort) 归并排序(Merge Sort) 堆排序&…

瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇

RA6807是RA8876M的缩小版,具备RA8876M的所有功能,只将MCU控制接口进行缩减,仅保留SPI-3和I2C接口,其它功能基本相同。 该芯片最大可控制854x600的分辨率,内建64Mbits显存,多个图层,使用起来相当…

org.apache.log4j的日志记录级别和基础使用Demo

org.apache.log4j的日志记录级别和基础使用Demo,本次案例展示,使用是的maven项目,搭建的一个简单的爬虫案例。里面采用了大家熟悉的日志记录插件,log4j。来自apache公司的开源插件。 package com.qian.test;import org.apache.log…

深度学习实战人脸识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…

Qt 字符串、信号槽详解

目录 1.QT中字符串QString的使用 1.1.常见的函数 1.2.总结QT中跟字符,字符串有关的类 1.3.字符串列表StringList 2.信号与槽 1.作用 2.右键转到槽函数 3.关联信号与槽函数(让你的信号跟槽函数之间形成一一对应关系) 4.信号与槽的特点 3.总结 1.继承自QMainWin…

Vscode进行Java开发环境搭建

Vscode进行Java开发环境搭建 搭建Java开发环境(Windows)1.Jdk安装2.VsCode安装3.Java插件4.安装 Spring 插件5.安装 Mybatis 插件5.安装Maven环境6.Jrebel插件7.IntelliJ IDEA Keybindings8. 收尾 VS Code(Visual Studio Code)是由微软开发的一款免费、开…

响应式数据(v-on、v-if、v-show、v-for、v-bind、v-model、computed、watch)

目录 一、事件绑定指令v-on 二、条件渲染指令v-if 三、v-show 四、遍历指令v-for 1、遍历对象的值 2、遍历对象的值和键(先值后键) 3、遍历对象的值、键和索引 4、遍历数组的值和索引 五、属性动态化指令v-bind(单向) 【CSS样式的绑定&#…

设计模式之 命令模式

命令模式(Command Pattern)是行为型设计模式之一,它将请求(或命令)封装成一个对象,从而使用户能够将请求发送者与请求接收者解耦。通过命令模式,调用操作的对象与执行操作的对象不直接关联&…

微信小程序2-地图显示和地图标记

一、index修改页面&#xff0c;让页面能够显示地图和一个添加标记的按钮。 index.wxml <scroll-view class"scrollarea" scroll-y type"list"><view class"index_container"><map id"map" style"width: 100%; h…

使用eclipse构建SpringBoot项目

我这里用eclipse2018版本做演示&#xff0c;大家有需要的可以下载Eclipse Downloads | The Eclipse Foundation 1.打开eclipse&#xff0c;选择存放代码的位置 2.选择 file >> new >> project >> 选择springboot文件下的 spring starter project 2.这里选择N…

uniapp接入BMapGL百度地图

下面代码兼容安卓APP和H5 百度地图官网&#xff1a;控制台 | 百度地图开放平台 应用类别选择《浏览器端》 /utils/map.js 需要设置你自己的key export function myBMapGL1() {return new Promise(function(resolve, reject) {if (typeof window.initMyBMapGL1 function) {r…

绕过CDN寻找真实IP

在新型涉网案件中&#xff0c;我们在搜集到目标主站之后常常需要获取对方网站的真实IP去进一步的信息搜集&#xff0c;但是现在网站大多都部署了CDN&#xff0c;将资源部署分发到边缘服务器&#xff0c;实现均衡负载&#xff0c;降低网络堵塞&#xff0c;让用户能够更快地访问自…

【计算机网络】网段划分

一、为什么有网段划分 IP地址 网络号(目标网络) 主机号(目标主机) 网络号: 保证相互连接的两个网段具有不同的标识 主机号: 同一网段内&#xff0c;主机之间具有相同的网络号&#xff0c;但是必须有不同的主机号 互联网中的每一台主机&#xff0c;都要隶属于某一个子网 -&…

HarmonyOS笔记5:ArkUI框架的Navigation导航组件

ArkUI框架的Navigation导航组件 在移动应用中需要在不同的页面进行切换跳转。这种切换和跳转有两种方式&#xff1a;页面路由和Navigation组件实现导航。HarmonyOS推荐使用Navigation实现页面跳转。在本文中在HarmonyOS 5.0.0 Release SDK (API Version 12 Release)版本下&…