ODPS
流计算用的是ODPS,ODPS的所有对象都隶属于项目空间。
项目空间project
表table:表中的列支持Bigint长整、Double双精、String字符串、Boolean布尔型、Datetime日期类型
进行不同类型的计算任务的时候操作对象不管是输入还是输出,都是表。所有的数据都存储在表里,支持表分区,支持依赖于表的视图。用户可以创建表,删除表
分区Partition:它设计分区的初衷是为了提高效率,我们在创建表的时候,可以指定表的分区,也可以在创建完成之后,去修改表的分区,比如我们可以指定表里面的某几个字段,作为分区列
任务Task:任务是ODS一个基本的计算单元,无论我们是用ODPS SQL,或者是用MapReduce这种功能去做一些操作的时候,实际上它都是在通过任务来完成的
资源Resource:资源是ODPS一个特有的概念,比如说,如果我们想使用ODPS的自定义函数,就是UDF,或者是MapReduce, 这个时候我们就需要依赖资源来完成
按用户权限划分:所有者(Owner)、管理员(Admin)、普通用户(User)
Task,Job,Instance
任务(Task):单个SQL Query或者MapReduce程序统称为一个任务。
工作流(Workflow):是个有向无环图(DAG),描述各个Task之间的依赖关系和约束。
作业(Job):由一个或者多个Task以及表示其执行次序关系的工作流(Workflow)组成。
作业实例(Instace):当作业被提交至系统中执行时,该作业就会拥有一个作业实例,一个Job多次运行就会有多个实例。实例保存了执行时的快照(Snapshot)、返回状态等。
作业是一个静态概念,作业对象对应了一个XML文件
作业实例Instace是一个动态概念,每个实例Instace只能运行一次。
ODPS适用于:
1、基于SQL构建大规模的数据仓库系统和BI系统
2、基于DAG/Graph构建大型分步式应用系统
DAG(有向无环图):就是以工作流的方式来组织任务,来组织成一个Job,然后我们可以去执行这个Job;
Graph(图运算):图运算的特点就是说快速迭代,就是我们首先定义节点,就是每一个节点都是一个运算,我们把这个运算预先定义好,然后节点之间的连线我们叫做边,这个边呢就描述了这个节点之间的关系,那么一个数据过来之后,我们可以快速的使用Graph来进行这种迭代运算
3、基于统计和机器学习的大数据统计和数据挖掘类的工作
ODPS有一个包叫做PAI,它是专门集成了一些,常见的机器运算法的一个包,可以使用这个工具,去做一些这种统计类的或者这种人工智能类或者机器学习类的这种大型的应用