当前课程知识点:高级大数据系统 > Graph Processing > What is GraphDB and Graph data processing > Video
各位同学
大家好
我们之前讲的这个
分布式文件系统
讲了这种大数据的一些的模型
以及我们讲了这种
基于这个分布式文件系统
和大数据的这种并行计算的
这种nosql的这样一个模式
那今天我们会来讲一个
特别的这种大数据类型的
一个处理
那么叫做这种图的数据
那么我们会具体去介绍这个图的
这种大数据的数据库
以及图的这种数据
它的一些处理的模式
那我们介绍的内容大概是这样的
我们会首先去介绍图的数据库
以及图的数据的处理的模式
对于这些模式
它的这种大数据系统
它有哪一些这种资源的需求
它进行了什么样的优化
那么我们通过两个具体的实例
一个叫做Neo4j
他是一个图的这种数据库
我们看它引入了什么样新的
这种数据库的语言
什么样的这种数据查询的特征
另外一个叫做GraphLab
它是一个图的这种数据处理的
一个引擎
我们看到在分布式的这种环境下
怎么样对图这种类型的数据
进行有效的这种任务的拆分
以及资源的分配
那么我们为什么
在大数据系统里面
会去特别的把图的这种数据
拿出来做分析
为什么之前这种关系数据库
或者说是这种基于表格的
这种数据类型对图的处理
还不够
我们还需要引入这种新的
这个单独的一个这个模块
来介绍图
那么这个原因最主要的就是
图数据
它的这个量非常的大
同时它使用的环境
使用的这个场景
非常的多
我们来看一些具体的场景
首先就是我们整个这个internet
那么我们今天所使用的网络
实际上它本身是一张图
端到端
他们可以通过ip的路由
然后能够到达
我们在网络上使用的这个web
它是一张图
通过Page Rank
或者是其他更加先进的
这样一些图的算法
把它们连接到了一块儿
那么我们今天所使用的
这个更新的这种社交媒体
它基于社交网络
而社交网络它是一张图
记录了人和人之间的这种关系
是朋友或者说是这个粉丝等等
这样的一些关系
那么这种关系实际上他并不是
特别合适
用我们原有的这种关系的
这种数据或者说表格的这种数据
来进行记录
那么他们也不适合被抽象成
key和value这样的形式
来在传统的这种nosql里面
进行一个查找
那么由于图的算法它
变得越来越复杂
所以需要这样的一些新的
这种考虑来处理这样的一个数据
那么internet实际上是
其中典型的这样一个例子
那么第二个例子就是我刚刚说到
这种社交媒体
它记录了人和人
人和内容这样的一些关系
那么这些关系也是在传统的
这种算法底下
不是不能够非常有效的得到处理
这样的一种模式
那么还有一些和图看起来
并不是密切相关
但实际上它的这个本质是
一系列图问题的这种系统
比如说这个推荐系统
推荐系统
我们是要决定将什么样的
这个物品给到什么样的人
这样的一个过程
那么当你把这个物品推荐给
这个人之后
我们希望这个人
这个用户接受你推荐的物品的
这个可能性尽可能的高
那么它从这个解决问题的
一个角度
我们是可以把这样的一个问题
抽象成一个图的一个问题
我们可以建立用户物品的
这样一个观念的结构
然后通过图的一些挖掘来找着
什么样的人对什么样的物品
是最有可能感兴趣的
那么这是一些比较隐含的
可能可以用图的这个方法
来解决的一些场景
那么我们说今天我们会去介绍
图的这种数据
它怎么样去存
怎样去查
具体来说是一个图的数据库
我们还会去介绍图的数据
到底怎么样去处理
图的算法到底怎么样去实施
那我们来看图的数据库
它具有一些什么样的特性
首先这个数据库
不再是去对key value
或者对行这样的数据
进行一个操作
而是对关系进行这样的一个操作
那么它要能够在
这个关系的挖掘中
有比较好的这样一个性能的保证
它要能够对某一些路径进行挖掘
它可能还需要对这个图的
一些结构
比如说整个图里面
有没有一些关键的节点等等
这样的算法进行一个支撑
那么这是图的一个这种数据库
它需要达到的一些目标
那么这边给了一个例子
来说明关系数据库
和图的这种数据库
它会有什么样的差别
比如说关系数据库
我们可以对关系进行查询
比如说我们卖得最好的书
是什么样的书
每一本书卖多少本
那么这是一种关系的一个查询
那么对于图的这种数据的
一个查询
它大概是什么样呢
我们能够推测出某一本书
是不是合适
卖给某一个人
那么它是人和书的一个图的
这样一个结构
那么通过图的挖掘
我们可以回答这样的问题
那么图的这个数据从这种
数据的呈现上
它大概是这样的一个特征
那么我们有一系列的节点
比如说这是一个社交网络的例子
我们有一系列的人
作为这个图的节点
那么人和人之间会有关系
这个关系是认识或者是不认识
不认识那么他们中间没有连接
认识的话
他们中间会有一个连接
那么这些连接和节点
就构成了一张图的结构
那么当我们要对这个图进行处理
如果我们没有一个具体的图的
这个数据库的时候
实际上我们依然会把它给转变成
这样的一个结构
也就是说
我们会用表格去记录节点
记录这个图中的一些边
那么这样的一个结构
它的缺陷
就是说当我们的图
变得越来越复杂
越来越大的时候
我们的这种记录也会
变得越来越多
那么它和边的数量是一致的
那么当我们想在上面去进行
一定的这种算法的时候
实际上它并不是一个非常直接和
非常简单的这样一个的过程
我们可以看到
当我们用关系数据库
对图进行记录的时候
实际上我们中间需要记录的
这种关系就需要单独的一个表格
来进行处理
而这个表格其实它并没有一些
没有一些好的特征
比如说我们对某一个节点
进行便利的时候
实际上这个操作
并不是那么的顺畅
可能我们需要跨越整个关系的
这个表
才能够把和当前用户相关的
这个关系给抽取出来
而如果我们能够建立起一个
具有拓扑结构
能够很容易看清它的拓扑的
这样一个样子的时候
实际上我们可能可以获得更好的
这种数据处理的一个模式
那这是我们进行图的这种数据库
搭建的最开始的一个目标
我们希望能够把这种拓扑
和整个数据库
做一个深度的一个融合
那么我们能够满足路径的搜索
满足关系的挖掘
满足关键节点的提取
这样的一系列的
这种比较具体的这种任务
那么为了实现这个目标
实际上
有一系列的系统被设计出来
这边我们列了一些
那么它们来自工业界
也来自学术界
那么有这样的一些图的系统
当然今天这种图的系统
它的类型变得越来越多
也有越来越多的这个人
参与到这种开源的图的数据库的
这个开发当中
这里面典型的包括了
我们今天会介绍的graphLab
在学校里面产生出来的一个图的
这种分布式计算的一个引擎
以及Neo4j
一个工业界来的
对图的这种数据库的
一个支持的一个平台
能够提供新的编程环境
和编程语言
让我们能够对图这种数据
进行查询
提供到了一些独特的这种
针对图的查询环境
-What is big data and what is big data system?
--Video
-Problems in big data systems?
--Video
-Overview of the course
--Video
-Principles of big data system design
--Video
-Manipulating Data on Linux
--Video
--Video
--Video
-Basics of Linux Data Processing--Manipulating Data
-Running Commands on a Single Machine
--Video
-Running Commands on a Single Machine--作业
-Using a Linux Cluster
--Video
-Using a Linux Cluster--作业
-Storage for Big Data Computing: Distributed file system
--Video
-Storage for Big Data Computing: Distributed file system--作业
-File system and GFS
--Video
-File system and GFS--作业
-Understanding HDFS using Legos
--Video
-Understanding HDFS using Legos--作业
-File System Implementation and DFS
--Video
--Video
-File System Implementation and DFS--作业
-What is MapReduce and why
--Video
-What is MapReduce and why
-Learn MapReduce by playing with cards
--Video
-Processing pattern
--Video
-Processing pattern--作业
-Hadoop
--Video
-Hadoop--作业
-Algorithms in MapReduce
--Video
-Algorithms in MapReduce--作业
-Tutorial
--Video
-Background
--Video
-Background--作业
-Spark
--Video
-Spark--作业
-Use Spark for data mining
--Video
-Use Spark for data mining--作业
-Spark data processing
--Video
-Spark data processing--作业
-Experiment in Spark
--Video
-Experiment in Spark--作业
-Introduction to streaming data processing
--Video
-Introduction to streaming data processing--作业
-Storm
--Video
--Video
--Video
-Storm--作业
-Spark streaming
--Video
--Video
-Spark streaming--作业
-NoSQL introduction
--Video
-NoSQL introduction--作业
-Common Advantages
--Video
-Common Advantages--作业
-Bigtable
--Video
-Bigtable--作业
-Master Startup
--Video
-Master Startup--作业
-HBase
--Video
-HBase--作业
-What is GraphDB and Graph data processing
--Video
-What is GraphDB and Graph data processing--作业
-Graph systems
--Video
-Graph systems
-Example of a GraphDB
--Video
-Example of a GraphDB--作业
-Mahout
--Video
-Mahout--作业
-Case Study: Recommendation
--Video
-Case Study: Recommendatio作业
-Recommendation in Mahout
--Video
-Recommendation in Mahout--作业