Blink DataStream计算任务是基于Java环境研发的计算任务,用于进行数据的实时处理。本文为您介绍如何基于JAR资源文件,构建Blink DataStream实时计算任务。

前提条件

在您开始执行操作前,请确认已上传已经完成开发的Datstream作业的JAR包至Dataphin平台,详情请参见创建资源

使用限制

Dataphin支持超级管理员、项目管理员和开发者创建Blink DataStream计算任务。

步骤一:新建Blink DataStream任务

  1. 登录Dataphin控制台
  2. 在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>
  3. 在Dataphin首页,单击顶部菜单栏研发
  4. 按照下图指引,进入新建Blink_DataStream对话框。
    gagaga
  5. 新建Blink_DataStream对话框,配置参数后,单击确定
    gagaga
    参数 描述
    任务名称 名称的命名规则如下:
    • 只能包含小写英文字母、数字、下划线(_)。
    • 名称的长度范围为3~62个字符。
    • 项目内的名称不支持重复。
    • 名称仅支持以英文字母开头。
    资源队列 该项目所绑定的实时计算源中的资源队列。
    引擎版本 当前资源队列所支持的版本。
    存储目录 实时计算任务所属的目录。
    选择资源 该实时任务依赖的资源包。
    类名 使用资源的完整类名。

步骤二:开发Blink DataStream任务的代码

  1. 在Blink DataStream任务代码页面,编写任务的代码。
    您可以单击页面上方的格式化,系统自动调整SQL代码格式。
  2. 单击页面上方的预编译,校验代码任务的语法及权限问题。

步骤三:配置Blink DataStream任务的资源

  1. 按照下图操作指引,在实时模式页签下配置Blink DataStream任务的运行资源。
    gagaga资源队列引擎版本默认为创建Blink DataStream任务时选择的配置,同时您也可以修改资源队列和引擎版本。
    Dataphin支持的资源配置类型包括系统推荐配置和自定义配置:
    • 系统推荐配置:即系统自动生成任务运行的资源配置。
    • 自定义配置:即实时计算Flink配置细粒度资源的专家模式 (BETA),Blink全托管引入的全新的资源配置模式,支持对作业所使用的资源进行细粒度的资源控制,以满足作业吞吐的要求。

      系统会自动根据您配置的资源需求,以yarn模式运行作业,TM的规格和个数将会根据Slot的规格和作业并发度,由系统自动决定。

    更多关于配置细粒度资源的内容,请参见配置细粒度资源
    1. 选中自定义配置资源配置类型,并单击去配置
    2. 在资源配置页面,为您展示一张拓扑图,图中每个方框代表了一个计算任务,都可以进行独立配置。每个Group代表着Group内部的节点可以存放在一台机器进行计算,可以有效避免数据的网络传播,提升性能。图中当前的资源配置就是默认为您展示系统推荐的资源配置。
    3. 单击需要配置资源的Group右上角的①后,在自定义配置Group执行参数和自定义配置StreamExecCalc-7执行参数对话框配置参数后,单击确定
      gagaga
      参数 描述
      CPU 定义当前节点运行的CPU。
      heap_memory 单位为MB,heap_memory是堆内存,供Java应用程序使用的内存。

      heap_memory及其内部各组成的大小可以通过JVM的一系列命令行参数来控制,在一般的blink程序中,都会需要一定的heap_memory开销,,例如申请一定的heap_memory作为程序的缓存等,因此您可以按程序的规模来设置其大小。

      Off-Heap Memory 定义堆外内存大小。
    4. 按照下图指引,进入自定义配置StreamExecCalc-7执行参数对话框并配置参数。完成参数配置后单击确定
      gagaga并行数默认为1,可填任意大于0的整数,-1代表自动推断。
    5. 配置完成后,单击页面右上方的保存
      注意 如果您想继续使用系统推荐的资源配置,则单击页面右上方的重置为系统初始

      同时您也可以保存资源配置记录,单击资源信息记录后的保存当前配置为新纪录。在保存资源记录对话框中,输入资源记录名称后,单击确定

      对已有的资源信息记录,您可以执行以下操作。
      操作 描述
      查看版本信息 单击某个记录操作列下的tesga图标,查看版本信息。
      启用记录
      1. 单击某个记录的操作列下的taga图标。
      2. 提示对话框中,单击确定
      删除记录
      1. 单击某个记录操作列下的teag图标。
      2. 提示对话框中,单击确定
    6. 打开自动调优开关,配置最大CU数期望最大内存,开启自动调优。
      注意 仅实时模式支持自动调优功能。
  2. 可选:配置实时任务的时间参数。
    实时任务的时间参数为stat_date,用于方式实时计算任务的运行时间的偏移,例如,您需要计算当天某个指标聚合值,为了防止时间偏移,则您需要设置state_date大于当天零点,过滤掉偏移的时间点。

    为了规避在任务参数处经常漏掉配置stat_date,您只需要在实时任务配置的属性配置中新增stat_date的kv配置,其中Value是一个基于业务时间的表达式,同时您也可以配置多个时间参数,使用半角分号(;)分割。例如,stat_date=${yyyyMMdd-1},则任务运行过程中的开始执行时间为${yyyyMMdd-1}。

    fagag
  3. 配置Blink DataStream任务的依赖关系,实时模式下的依赖关系不实际产生调度依赖。配置依赖可帮助排查调试时快速了解数据的上下游任务。
    fa'ga'gfagag
    参数 描述
    自动解析 当节点的任务类型为SQL时,您可以单击自动解析,系统会解析代码中的表,并查找到与该表名相同的输出名称。输出名称所在的节点作为当前节点的上游依赖。
    如果代码中引用项目变量或不指定项目,则系统默认解析为生产项目名,以保证生成调度的稳定性。例如,开发项目名称为onedata_dev
    • 如果代码里指定select * from s_order,则调度解析依赖为onedata.s_order
    • 如果代码里指定select * from ${onedata}.s_order,则调度解析依赖为onedata.s_order
    • 如果代码里指定select * from onedata.s_order,则调度解析依赖为onedata.s_order
    • 如果代码里指定select * from onedata_dev.s_order,则调度解析依赖为onedata_dev.s_order
    上游依赖 通过执行如下操作,添加该节点任务调度时依赖的上游节点:
    1. 单击手动添加上游
    2. 新建上游依赖对话框中,您可以通过以下两种方式搜索依赖节点:
      • 输入所依赖节点的输出名称的关键字进行搜索节点。
      • 输入virtual搜索虚拟节点(每个租户或企业在初始化时都会有一个根节点)。
      说明 节点的输出名称是全局唯一的,且不区分大小写。
    3. 单击确定新增
    同时您还可以单击操作列下的fagaga图标,删除已添加的依赖节点。
    当前节点 通过执行如下操作,设置当前节点的输出名称,根据需要您可以设置多个输出名称,供其他节点依赖使用:
    1. 单击手动添加输出
    2. 新增当前节点输出对话框中,填写输出名称。输出名称的命名规则请尽量统一,一般命名规则为生成项目名.表名且不区分大小写,以标识本节点产出的表,同时其他节点更好地选择调度依赖关系。

      例如,开发项目名称为onedata_dev,建议将输出名称设置为onedata.s_order。如果您将输出名称设置为onedata_dev.s_order,则仅限代码select * from onedata_dev.s_order能解析出上游依赖节点。

    3. 单击确定新增
    同时您还可以对当前节点已添加的输出名称执行如下操作:
    • 单击操作列下的fagaga图标,删除已添加的输出名称。
    • 如果该节点已提交或已发布,且被任务所依赖(任务已提交),则单击操作列下的图标,查看下游节点。
  4. 可选:配置Blink DataStream任务的参数。
    faga
    • 流任务:定义格式为stat_date>='xxxx'
    • 批任务:定义格式为stat_date='xxxx'set project.table.batch.`partition`='ds=${bizdate}*';

步骤四:提交或发布Blink DataStream任务

  1. 按照下图指引,提交Blink DataStream任务至生产环境。
    gagaga
  2. 如果项目空间的开发模式为Dev-Prod,则需要发布Blink DataStream任务至生产环境。如何发布Blink DataStream任务至生产环境,请参见发布任务

后续步骤

在运维中心查看并运维Blink DataStream任务,保证任务的正常运行。具体操作,请参见实时任务实时实例