大家好,欢迎来到IT知识分享网。
一、名词解释
1、数据集
数据集(DataSet)的数据是有界的、个数确定、静止的。
2、数据流
数据流(DataStream)的数据是无界的、动态的。
3、批式处理
批式数据源组件(Batch Source)读入的数据为数据集(DataSet);
批式导出组件(Batch Sink)将数据集导出到文件系统或数据库;
批式算法组件(BatchOperator)的输入和计算结果都为数据集(DataSet);
4、流式处理
流式数据源组件(Stream Source)用来接入数据流;
流式导出组件(Stream Sink)负责将数据流导出,即将数据流导出到文件系统或数据库
流式算法组件(Stream Operator)的处理粒度是单条数据,即从输入的数据流中逐条获取数据进行计算,该计算结果为若干条数据,这些数据会进入输出数据流。
连接流式数据源组件、各个流式算法组件和流式导出组件,构成数据流的管道。
5、Row 格式
Alink 将Flink Table 作为数据集和数据流的统一表示,其中数据行的类型 为: org.apache.flink.types.Rows
Alink为了统一各算法模块间交换数据的格式,确定将Row格式作为各算法处理的单条数据的标准类型;相应的批数据和流数据的类型为Flink Table。
SQL操作和算法模块间可以通过Flink Table来传递数据。
类型统一, SQL操作和算法操作就可以出现在同一个工作流中,使用方便。
二、数据处理流程
数据处理的基本流程三部分:数据源(Source)、算法组件(Operator)和数据导出(Sink),如图:
三、alink基类
1、抽象基类(AlgoOperator) && 派生
Alink定义组件的抽象基类AlgoOperator,规范了组件的基本行为;
Alink中的A代表全部算法组件,其都是由抽象基类AlgoOperator派生出来的;
AlgoOperator派生出了两个基类:用于批式计算及处理场景的批式算法组件和用于流式计算及处理场景的流式算法组件。
算法输入和输出,大多数情况下都可以用一个表(Table)表示。但有时候需要用多个表,例如:
1)Graph数据,一般包括Edge Table 和Node Table,这两个表在一起才是完整的表示,输出也是如此;
2)自然语言方面的常用算法LDA(Latent Dirichlet Allocation)的计算结果为6个Table。
算法组件包含一个Table类型的成员变量table,用来放置该组件的主要输出结果。
算法组件也定义了Table类型数组的变量sideTables,用来存储在多表输出的情况下,除主表外的所有其他表。
2、组件的连接——link
link方式指的是在工作流中通过连线的方式,串接起来不同的组件。
link()、linkto() linkFrom:
link等同于linkTo,可以将link看作linkTo的简写。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144001.html