跳到主要内容

流式数据加工

流式数据加工

使用场景:当需要对流式信道数据进行加工治理时,数据开发人员创建数据信道及流式加工作业,实时消费加工信道数据。

使用角色:数据开发人员。

功能描述:平台提供信道数据加工能力,支持自行维护信道及消息类型,然后在流式加工作业中通过jar、sql两种方式消费并加工信道中的数据,并可控制作业启停,查看运行详情。

配置分组

进入数据开发 > 实时数据 > 流式数据加工界面,点击左侧目录栏中的“操作”按钮,在下拉框中点击“新建分组”按钮会出现新建分组弹窗,根据页面内容填写信息后“保存”即可。
数据信道作业

注意
  • 支持同级分组拖拽移动排序;
  • 可直接在新建分组时关联作业,一个作业只能同时关联一个分组,新建分组页面展示所有未关联分组的作业;
  • 若作业未关联分组,则无法通过分组树过滤出对应作业,需在列表中自行搜索所需的未分组作业。

配置流式加工作业

新建

进入数据开发 > 实时数据 > 流式数据加工界面,点击“新建流式加工作业”按钮,根据页面内容填写信息后“保存”按钮即可。
数据信道作业

填写项说明:

  • 基础信息:

    • 作业名称:必填,输入作业名称,空间内不允许重复;
    • 所属分组:非必填,点击选择在上一步中创建的分组;
    • 作业运行人:必填,默认当前创建人,新建时不可修改,后续只可由空间管理员修改;作业运行时会以作业运行人的数据库账号进行校验并执行作业任务,若开启相关权限管控,存在作业运行人无权限数据表、topic时,则作业异常终止;
    • 描述:非必填,填写该作业的业务描述信息。
  • 加工配置:

    • 加工类型:必填,可选择JAR、SQL两种类型之一

    JAR

    • 加工jar包:必填,可选择已在资源管理 > 资源文件界面上传的jar包文件,若尚未上传相关文件,支持快捷跳转至资源文件进行jar包文件上传

    • 参数配置:非必填,支持配置作业级参数,参数支持设置固定值或动态取值的表达式,供jar中引用,以实现参数传递

      注意

      为保证jar能够有效执行,对其内容有一定的规范要求,如需包含基础配置读取、加工逻辑、窗口函数、输出目标及连接信息等内容,可参见详细示例:

    数据信道作业

    SQL

    • 数据来源:选择已创建的 Topic,且需选择该 Topic下具体的消息类型,若选择的topic是单消息类型,则无消息类型配置项;支持选择多个 Topic

    • 声明表:根据所选Topic自动生成对应的声明表名,及同名字段,用于在后续SQL中使用;支持通过表名、字段名前方的复制图标复制表名、字段名,再通过ctrl+v粘贴至SQL编辑器

      注意
      • 若开启资源权限管控,则来源Topic将过滤不显示当前用户无权限Kafka数据源创建的Topic,即不允许同步无权限的Kafka数据源
      • 同一个 Topic的同一消息类型可被不同流式加工作业重复选择,以满足不同加工逻辑需要;但在同一作业中同一消息类型不可同时被选为来源、目标
      • 当前topic数据格式仅支持json
    • 数据去向:

    • 目标类型:支持选择内部数据表、已注册Topic,内部即为选择数仓内各层级的数据表;已注册Topic可选择已在数据开发 > 实时数据 > 数据信道管理注册的Topic;

    • 目标:选择内部时,点击选择当前空间中已在资源管理 > 数据表管理中创建的数据表,支持中英文名模糊检索;选择已注册Topic时,可选择已注册的单消息类型或多消息类型中的某个消息类型;

    • 声明表:根据所选Topic、数据表自动生成对应的声明表名,及同名字段,用于在后续SQL中使用;支持通过表名、字段名前方的复制图标复制表名、字段名,再通过ctrl+v粘贴至SQL编辑器

      注意
      • 若开启业务权限管控,则目标表将过滤不显示当前用户无读写权限数据表,即不允许同步数据至无权限表;
      • 若开启资源权限管控,则目标库将过滤不显示当前用户无可使用权限的Kafka数据源下的Topic;
      • 目标表不可选择其他空间授权的跨空间数据表,即不可对其他空间表进行读写;
      • 目标同样支持选择多个,并支持既选择Topic,又选择数据表
    • 快捷复制:勾选方框后,点击声明表英文名或字段英文名左侧的复制图标,即可复制对应名称直接插入到当前 SQL 编辑器的编辑位置,并支持批量复制字段名,进一步提高SQL编写效率

    • 脚本配置:支持Flink SQL语法,可写多条包含insert语法的SQL语句

      注意
      • SQL语句中须使用来源、目标声明表中的表名、字段名编写加工语句,无需再声明来源与目标表连接信息
      • SQL语句中除须包含加工语句外,还需包含窗口函数的定义,可参见详细示例:SQL模式实践
    • 格式化:点击“格式化”按钮后,系统将自动对SQL编辑器中已填写SQL脚本进行规范化排版

    • SQL校验:点击“SQL校验”按钮后,系统将对已编写的脚本进行校验,包括所选表、字段是否存在且有权限,SQL语法是否正确且不存在不支持的语法等,以确保语句的正确性

    • 保存版本:在“修改”流式加工作业时,支持对已编写完 SQL 脚本进行“保存版本”操作,进入弹窗后根据实际需求填写完版本描述后“确定”即可保存当前 SQL 脚本,保存后的版本信息可在版本管理中进行查看

    • 版本管理:在“修改”流式加工作业时,支持对已保存的SQL版本进行管理,版本管理界面保留近 100 次的版本记录,并支持SQL脚本版本的查看、恢复及删除操作

    • 展开:点击编辑器右上角的“展开”按钮,页面将仅保留脚本配置内容,以提供更大的操作空间便于用户专注于脚本的编写,并支持收起还原完整的配置信息

  • 高级配置:

    • 起始时间:默认为空,即从头全量开始;选择时间则按所选时间开始,支持选择时间具体到分钟;
    • 消费并发数:可设置消费数据的并发数量,以提升消费速度;默认1,最大15,建议最大不超过topic分区数量;
    • 每次最大拉取数量:默认1000,最大10000;当源头数据量较大时,平台会按所设置数量,分批次拉取源头数据进行消费加工;该数量为批次最大值,并不代表每次都需满足数值再拉取消费,当数据量小于该值时,则为即时消费加工;
    • 拉取数据量大小:默认1MB,最大10MB;控制每个批次拉取数据量大小,超过大小则超过部分下次拉取;
    • 失败重试:当发生数据库连接异常、来源目标表结构异常、业务或资源权限异常等场景导致作业失败时均会触发重试,但此时作业状态仍为运行中,直至重试成功继续运行,或重试失败状态变为异常终止;默认0,即不重试,最大支持5次;重试时间间隔暂不提供配置,默认采用“指数延迟重启策略”的方式,第1次间隔1s重试,第2次间隔2s(翻倍)重试,直至第5次达到10s上限。

修改

进入数据开发 > 实时数据 > 流式数据加工界面,选择目标作业后点击列表操作栏“修改”按钮,可修改作业信息,相关约束如下:

  • 未开始状态,进入修改页面与新建页面信息一致,除作业运行人仅空间管理员可修改,其他任意信息均可修改;
  • 暂停中、异常终止状态,加工配置标签页“加工类型”不可修改,其余信息均可修改;
  • 运行中状态作业无法修改,需暂停作业。 数据信道作业

删除

进入数据开发 > 实时数据 > 数据信道作业界面,选择目标作业后点击列表操作栏“删除”按钮,二次确认后即可。

注意
  • “运行中”状态作业无法删除,需暂停作业;
  • 删除作业仅删除作业本身,不会删除Topic及表中的数据。

作业信息

运行状态

  • 平台支持通过操作栏的“运行”、“暂停”或批量操作来控制作业状态,具体如下表:

数据信道作业

状态
触发条件
修改
删除
运行
暂停
运行详情
未开始作业创建完成即进入该状态XX
运行中在作业未开始/已暂停/异常终止状态点击“运行”XXX
已暂停在运行中状态下点击“暂停”X
异常终止作业在运行中,因为来源异常、目标表异常、数据不符合表结构、网络、服务等原因导致运行停止X
已完结JAR模式下,jar包内容为有限的数据,作业已完成全部数据加工XX

运行详情

  • 作业运行后即可查看运行详情,详情中可查看作业运行状态、运行日志、运行历史记录等信息。

数据信道作业
数据信道作业

相关术语

信道(topic)

最佳实践

数据开发-流式数据开发