定义SQL组件

组件用于将SQL过程抽象为一个SQL模板,实现SQL代码的复用。使用组件前,您需先根据业务需要创建符合业务加工过程的组件。本文为您介绍在数据开发(DataStudio)的组件管理界面,如何创建组件,并进行组件的分享、升级、查看组件引用记录等管理操作。

进入组件管理页面

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 在左侧导航栏单击组件管理,进入组件管理页面。

    说明

    若左侧导航栏不存在组件管理,则可单击左下角的设置图标,根据模块管理自行添加。

创建并配置组件

以下为您介绍组件开发者如何通过组件管理新建组件,将指定的SQL过程抽象为一个SQL模板。一个组件通常由过程体、输入参数、输出参数组成。过程体用于定义组件功能的实现代码,在过程体中,通过@@{变量名}格式,将可变的输入表或输入字符串抽象为组件的输入参数,将可变的输出表抽象为组件的输出参数,实现SQL代码的复用。

说明

一个组件可配置多个输入参数和输出参数,具体请根据实际使用进行配置。

过程体

  1. 创建组件。

    在组件管理页面,您可通过如下方式创建组件并输入组件名称。创建组件

    说明
    • 本工作空间成员创建的组件在组件下。

    • 租户成员创建的组件在公共组件下。

  2. 配置组件信息。

    步骤一:配置过程体

    过程体即为组件的实现代码。通过编写抽象的SQL代码(即SQL加工过程),使用@@{参数名}格式,引入输入参数和输出参数,将指定的输入表通过输入参数进行加工处理,生成有业务价值的输出表。后续使用组件时,只需配置不同的输入参数和输出参数,便可通过该代码模板生成正确可运行的SQL代码。

    步骤二:配置输入参数

    定义过程体的输入参数,支持TableString类型,即过程体的输入参数为某表或某字符串,具体如下。

    • Table:若使用组件加工源表数据时,输出结果类别单一恒定,则请使用该类型。

      该类型的主要配置说明如下。

      配置项

      描述

      配置示例

      参数定义

      用于将输入表的结构进行文本化呈现,其中可包含表的字段、字段类型及字段含义等内容。通过该形式,告知组件使用者,在使用组件时需为输入参数配置与输入表结构参数个数相同,类型兼容的输入表。防止配置的输入表和组件定义的输入表字段个数不一致、字段类型不兼容,导致组件运行时出错。

      说明

      该定义仅为参考,为您提供输出参数配置的帮助指示,并不会即时强制检查。

      参数定义的格式建议为:

      字段1名 字段1类型 字段1注释 
      字段2名 字段2类型 字段2注释 
      ……
      字段n名 字段n类型 字段n注释

      示例如下:

      area_id string ‘区域id’ 
      city_id string ‘城市id’ 
      order_amt double ‘订单金额’ 
    • String:若使用组件加工源表数据时,需通过变量控制输入参数的取值,则请使用该类型。

      该类型的主要配置说明如下。

      配置相关

      描述

      默认值

      该类型支持设置参数默认值,设置后,组件使用过程中默认使用所配置的参数默认值。

      场景示例

      • 场景一:组件过程的输出表需输出每个区域前N个城市的销售额,则可设置N为该组件的输入参数,N的取值可通过字符串类型参数进行控制。

      • 场景二:组件过程的输出表需输出省份的销售总额,可设置一个省份字符串参数作为该组件的输入参数,通过指定不同的省份,获取相应省份的销售数据。

    步骤三:配置输出参数

    定义过程体的输出参数,即组件最终产出表。为便于组件使用者使用组件,您可在输出参数配置中,填写使用该组件后输出表的表结构,供组件使用者参考。

    输出参数的主要配置说明如下。

    配置项

    描述

    配置示例

    参数定义

    用于将输出表的结构进行文本化呈现,其中可包含表的字段、字段类型及字段含义等内容。通过该形式,告知组件使用者,在使用组件时需为输出参数配置与输出表结构参数个数相同,类型兼容的输出表。防止配置的输出表和组件定义的输出表字段个数不一致、字段类型不兼容,导致组件运行时出错。

    说明

    该定义仅为参考,为您提供输出参数配置的帮助指示,并不会即时强制检查。

    参数定义的格式建议为:

    字段1名 字段1类型 字段1注释 
    字段2名 字段2类型 字段2注释 
    ……
    字段n名 字段n类型 字段n注释

    除此之外,输出参数定义还可根据您所需的处理结果,添加汇总输出结果字段。例如,排名、总收入等。

    示例如下:

    area_id string ‘区域id’ 
    city_id string ‘城市id’ 
    order_amt double ‘订单金额’ 
    rank bigint ‘排名’
  3. 保存并提交组件。

    单击保存图标,保存组件;单击提交图标,提交组件。组件创建完成后,可在SQL组件节点中引用,帮助您快速生成业务所需的目标表。使用详情请参见引用SQL组件

分享及查看组件的引用记录

您可根据业务需要分享组件或查看组件的引用记录。分享及查看引用记录

  • 分享组件(序号1):组件发布后,默认为项目组件,即仅支持当前DataWorks工作空间的用户可使用该组件。组件开发者可通过分享组件,将具有全局通用性的组件发布到整个租户内,分享组件并发布后,租户内所有用户均可使用该组件。

  • 查看组件的引用记录(序号2):可查看哪些节点引用了当前组件,用于进行组件变更时提前预估影响。

升级组件

升级操作:组件开发者

组件开发者可根据需要编辑组件代码及相关参数配置,编辑完成后保存提交即可升级为新版本组件,您可在区域3可查看组件各个版本的详情。组件升级

组件版本的使用影响:组件使用者

组件升级后,若您的SQL组件节点引用了该组件,则引用时可选择是否使用该组件已升级的最新版本。若无需使用,则继续引用原有版本;若使用,需确认新版本组件对于SQL组件节点的参数配置是否继续生效,并根据新版本组件的说明进行相关调整,编辑完成后进行提交发布。提交发布流程同普通SQL节点。image.png

升级场景示例

组件开发者用户C创建了V1.0版本组件,用户A使用了该V1.0版本组件;随后,用户C将组件升级为V2.0版本。用户A在使用过程中发现该组件已存在最新版本V2.0,则可打开组件,查看不同版本详情,对比后发现新版本组件业务效果更好,则可更新升级到最新的组件版本使用。

后续

组件创建、分享完成后,具有组件使用权限的用户可通过创建SQL组件节点引用组件,详情请参见引用SQL组件