組件用于將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,打開組件,查看不同版本詳情,對比后發現新版本組件業務效果更好,然后更新升級到最新的組件版本使用。
查看組件引用記錄
您可以在組件編輯頁右側單擊引用記錄,查看哪些節點引用了當前組件,用于組件變更時提前預估影響。