组件用于将SQL过程抽象为一个SQL模板,实现SQL代码的复用。使用组件前,您需先根据业务需要创建符合业务加工过程的组件。本文为您介绍在数据开发(Data Studio)的组件管理界面,如何创建组件,并进行组件的分享、升级、查看组件引用记录等管理操作。
组件介绍
在MaxCompute实际业务实践中,存在大量类似的SQL代码过程,过程中输入表和输出表的结构一致或结构类型兼容,仅名称不同。此时,组件的开发者可将该SQL过程抽象为一个SQL组件节点,将可变的输入表抽象为输入参数,可变的输出表抽象为输出参数,实现SQL代码的复用。
后续在使用SQL组件节点时,只需从代码组件列表中选择和自己的业务处理过程类似的组件,并为该组件配置自己业务中特定的输入表和输出表,无需再次编辑代码,便可直接生成新的SQL组件节点,极大提升了开发效率,避免重复开发。SQL组件节点生成后的发布、调度操作,与普通SQL节点的操作方式相同。
当前仅MaxCompute计算引擎支持使用SQL组件。
权限说明
您需具备DataWorks工作空间的开发权限,才可创建并使用组件。授权详情请参见空间级模块权限管控。
组件类型
组件分为项目组件及公共组件,组件开发者(即创建组件的用户)在创建组件时可自行定义。
项目组件管理:组件发布后,默认仅该DataWorks工作空间的用户可使用。若您希望使用该类组件,则需成为此工作空间的成员,详情请参见空间级模块权限管控。
公共组件管理:组件的开发者可进入公开组件管理区域,将具有全局通用性的组件发布到整个租户内,发布后,租户内所有用户均可使用该公共组件。
进入组件管理
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的 ,进入Data Studio。
在左侧导航栏单击,进入组件管理。
组件使用流程
步骤一:定义组件
组件开发者可通过数据开发(Data Studio)的组件管理界面,定义通用逻辑的过程体代码及输入输出参数,通过编写抽象的SQL加工过程,将指定的输入表通过输入参数进行加工处理,生成有业务价值的输出表(即输出参数)。代码中输入参数和输出参数的格式为@@{参数名}
。
在项目组件管理区域单击,选择新建 SQL 组件...,您也可以先选择新建目录...,规划组件目录后,再右键目录,选择新建 SQL 组件...。
说明本工作空间成员创建的组件在项目组件管理下。
组件公开后会在公共组件管理下。
配置组件信息。
配置组件过程体。
过程体即为组件的实现代码。通过编写抽象的SQL代码(即SQL加工过程),使用
@@{参数名}
格式,引入输入参数和输出参数,将指定的输入表通过输入参数进行加工处理,生成有业务价值的输出表。后续使用组件时,只需配置不同的输入参数和输出参数,便可通过该代码模板生成正确可运行的SQL代码。配置输入参数。
单击组件编辑页面右侧的参数配置,单击输入参数右侧的,定义过程体的输入参数,支持Table和String类型,即过程体的输入参数为某表或某字符串。
说明您也可以单击组件编辑页面顶部的输入输出参数解析,使用自动解析功能从代码中自动识别输入和输出参数,然后再根据下表配置相关参数。
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 '排名'
单击保存和提交。
组件创建完成后,可在SQL组件节点中引用,帮助您快速生成业务所需的目标表。使用详情请参见步骤二:引用组件。
(可选)您可以单击公开组件,将具有全局通用性的组件发布到整个租户内(在公共组件管理区域展示),分享组件并发布后,租户内所有用户均可使用该组件。
步骤二:引用组件
你可以通过如下方式引用组件。
在数据开发SQL组件节点中引用
组件使用者可以数据开发界面,通过创建SQL组件节点引用所需组件,替换组件中的输入与输出参数,实现代码复用。
在Data Studio左侧导航栏单击,进入数据开发。
在项目目录中根据业务需要,规划创建SQL组件节点的位置后,右键目录或单击,选择
,自定义SQL组件节点名称。在SQL组件节点编辑页面,单击右侧组件设置,然后选择组件代码。
选择组件代码后,组件代码将自动填充到SQL组件编辑页,您可以在组件设置中,定义各参数取值。
从项目组件管理中引用
组件使用者可以在组件管理界面,找到待引用的组件,然后通过直接引用创建SQL组件节点,替换组件中的输入与输出参数,实现代码复用。
在Data Studio左侧导航栏单击,进入组件管理。
在项目组件管理中找到目标组件后右键,选择引用组件。
根据页面引导,选择SQL组件节点创建的位置以及SQL组件的名称。
创建成功后,组件代码将自动填充到SQL组件编辑页,您可以在组件设置中,定义各参数取值。
从公共组件管理中引用
组件使用者可以在组件管理界面,找到其他租户公开的组件,然后通过直接引用创建SQL组件节点,替换组件中的输入与输出参数,实现代码复用。
在Data Studio左侧导航栏单击,进入组件管理。
在公共组件管理中找到目标组件后,单击引用。
根据页面引导,选择SQL组件节点创建的位置以及SQL组件的名称。
创建成功后,组件代码将自动填充到SQL组件编辑页,您可以在组件设置中,定义各参数取值。
升级组件
升级操作:组件开发者
组件开发者可根据需要编辑组件代码及相关参数配置,编辑完成后保存提交即可升级为新版本组件,您可在③处查看组件各个版本的详情。
引用组件版本升级:组件使用者
组件升级后,若您的SQL组件节点引用了该组件,则引用时可选择是否使用该组件已升级的最新版本。
若无需使用,则继续引用原有版本。
若使用,需确认新版本组件对于SQL组件节点的参数配置是否继续生效,并根据新版本组件的说明进行相关调整,编辑完成后进行提交发布。提交发布流程同普通SQL节点。
升级场景示例
组件开发者创建了V1版本的SQL组件,组件使用者使用了该V1版本组件。随后,组件开发者将组件升级为V2版本。组件使用者在使用过程中发现该组件已存在最新版本V2,打开组件,查看不同版本详情,对比后发现新版本组件业务效果更好,然后更新升级到最新的组件版本使用。
查看组件引用记录
您可以在组件编辑页右侧单击引用记录,查看哪些节点引用了当前组件,用于组件变更时提前预估影响。