组件管理

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

组件介绍

在MaxCompute实际业务实践中,存在大量类似的SQL代码过程,过程中输入表和输出表的结构一致或结构类型兼容,仅名称不同。此时,组件的开发者可将该SQL过程抽象为一个SQL组件节点,将可变的输入表抽象为输入参数,可变的输出表抽象为输出参数,实现SQL代码的复用。

后续在使用SQL组件节点时,只需从代码组件列表中选择和自己的业务处理过程类似的组件,并为该组件配置自己业务中特定的输入表和输出表,无需再次编辑代码,便可直接生成新的SQL组件节点,极大提升了开发效率,避免重复开发。SQL组件节点生成后的发布、调度操作,与普通SQL节点的操作方式相同。

说明

当前仅MaxCompute计算引擎支持使用SQL组件。

权限说明

您需具备DataWorks工作空间的开发权限,才可创建并使用组件。授权详情请参见空间级模块权限管控

组件类型

组件分为项目组件及公共组件,组件开发者(即创建组件的用户)在创建组件时可自行定义。

  • 项目组件管理:组件发布后,默认仅该DataWorks工作空间的用户可使用。若您希望使用该类组件,则需成为此工作空间的成员,详情请参见空间级模块权限管控

  • 公共组件管理:组件的开发者可进入公开组件管理区域,将具有全局通用性的组件发布到整个租户内,发布后,租户内所有用户均可使用该公共组件。

进入组件管理

  1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > 数据开发(新版),进入Data Studio。

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

组件使用流程

步骤一:定义组件

组件开发者可通过数据开发(Data Studio)的组件管理界面,定义通用逻辑的过程体代码及输入输出参数,通过编写抽象的SQL加工过程,将指定的输入表通过输入参数进行加工处理,生成有业务价值的输出表(即输出参数)。代码中输入参数和输出参数的格式为@@{参数名}

  1. 项目组件管理区域单击image,选择新建 SQL 组件...,您也可以先选择新建目录...,规划组件目录后,再右键目录,选择新建 SQL 组件...

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

    • 组件公开后会在公共组件管理下。

  2. 配置组件信息。

    1. 配置组件过程体。

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

    2. 配置输入参数。

      单击组件编辑页面右侧的参数配置,单击输入参数右侧的image,定义过程体的输入参数,支持TableString类型,即过程体的输入参数为某表或某字符串。image

      说明

      您也可以单击组件编辑页面顶部的输入输出参数解析,使用自动解析功能从代码中自动识别输入和输出参数,然后再根据下表配置相关参数。

      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的取值可通过字符串类型参数进行控制。

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

    3. 配置输出参数。

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

      单击组件编辑页面右侧的参数配置,单击输出参数右侧的image,定义过程体的输出参数。

      说明

      您也可以单击组件编辑页面顶部的输入输出参数解析,使用自动解析功能从代码中自动识别输入和输出参数,然后再根据下表配置相关参数。

      • 关键参数:参数定义。

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

        说明

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

      • 配置示例

        参数定义的格式建议为:

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

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

        area_id STRING '区域id' 
        city_id STRING '城市id' 
        order_amt DOUBLE '订单金额'
        rank BIGINT '排名'
  3. 单击保存提交

    组件创建完成后,可在SQL组件节点中引用,帮助您快速生成业务所需的目标表。使用详情请参见步骤二:引用组件

  4. (可选)您可以单击公开组件,将具有全局通用性的组件发布到整个租户内(在公共组件管理区域展示),分享组件并发布后,租户内所有用户均可使用该组件。

步骤二:引用组件

你可以通过如下方式引用组件。

在数据开发SQL组件节点中引用

组件使用者可以数据开发界面,通过创建SQL组件节点引用所需组件,替换组件中的输入与输出参数,实现代码复用。

  1. 在Data Studio左侧导航栏单击image,进入数据开发。

  2. 项目目录中根据业务需要,规划创建SQL组件节点的位置后,右键目录或单击image,选择新建节点... > MaxCompute > SQL组件节点,自定义SQL组件节点名称。

  3. 在SQL组件节点编辑页面,单击右侧组件设置,然后选择组件代码

    image

  4. 选择组件代码后,组件代码将自动填充到SQL组件编辑页,您可以在组件设置中,定义各参数取值。

从项目组件管理中引用

组件使用者可以在组件管理界面,找到待引用的组件,然后通过直接引用创建SQL组件节点,替换组件中的输入与输出参数,实现代码复用。

  1. 在Data Studio左侧导航栏单击image,进入组件管理。

  2. 项目组件管理中找到目标组件后右键,选择引用组件

    image

  3. 根据页面引导,选择SQL组件节点创建的位置以及SQL组件的名称。

  4. 创建成功后,组件代码将自动填充到SQL组件编辑页,您可以在组件设置中,定义各参数取值。

从公共组件管理中引用

组件使用者可以在组件管理界面,找到其他租户公开的组件,然后通过直接引用创建SQL组件节点,替换组件中的输入与输出参数,实现代码复用。

  1. 在Data Studio左侧导航栏单击image,进入组件管理。

  2. 公共组件管理中找到目标组件后,单击引用

    image

  3. 根据页面引导,选择SQL组件节点创建的位置以及SQL组件的名称。

  4. 创建成功后,组件代码将自动填充到SQL组件编辑页,您可以在组件设置中,定义各参数取值。

升级组件

升级操作:组件开发者

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

image

引用组件版本升级:组件使用者

组件升级后,若您的SQL组件节点引用了该组件,则引用时可选择是否使用该组件已升级的最新版本。

image

  • 若无需使用,则继续引用原有版本。

  • 若使用,需确认新版本组件对于SQL组件节点的参数配置是否继续生效,并根据新版本组件的说明进行相关调整,编辑完成后进行提交发布。提交发布流程同普通SQL节点。

升级场景示例

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

查看组件引用记录

您可以在组件编辑页右侧单击引用记录,查看哪些节点引用了当前组件,用于组件变更时提前预估影响。

image