元數據共享模型是一系列元數據相關的物理表,基于Dataphin的系統元數據和相應計算引擎的元數據加工匯總而成,存儲在Dataphin元倉租戶下的元倉項目中, 產出時效為T+1。若您需訪問元倉共享模型,可以通過集成任務將元倉中所需的元倉共享模型的數據表從元倉租戶的計算源同步到開發使用的業務租戶的計算源中。本文將指導您如何進行配置。
操作步驟
創建元倉項目數據源。
在業務租戶中,將元倉項目的計算源創建為對應的數據源,以作為元數據共享模型集成任務的輸入組件。如元倉項目的計算源為MaxCompute,則在業務租戶中創建元倉項目的MaxCompute數據源。
檢查最新數據是否產出。
您可以通過元倉共享模型通信表以檢查最新數據是否產出,每天元倉共享模型產出后,將更新通信表數據。通信表說明如下:
data_share_finish:基礎元數據模型通信表。
data_security_finish: 數據安全模塊共享模型通信表。
data_service_finish: 數據服務模塊共享模型通信表。
重要部分共享模型表和是否購買對應增值模塊有關,如數據安全相關數據表。如果未購買對應功能模塊,相關表將沒有數據產出,此時不會產出對應通信表。
創建集成任務。
將元倉任務計算源對應的數據源配置為輸入組件,將目標空間項目配置為輸出組件,選擇需要使用的元數據表,完成集成任務的配置。
集成任務調度配置。
創建VIRTUAL(虛擬)任務節點
在需要獲取元數據的Dataphin項目空間中創建定時VIRTUAL(虛擬)任務節點。
在Dataphin首頁,單擊頂部菜單欄研發。默認進入數據開發頁面。
選擇獲取元數據的Dataphin項目空間,并依次單擊計算任務->圖標->VIRTUAL計算任務。
添加VIRTUAL(虛擬)任務節點上游依賴為根節點并設置運行時間。如:凌晨3點半。
說明通常情況下,計算資源充足時元倉任務可在凌晨2點鐘之前運行完成。
將創建的集成任務節點依賴于創建的虛擬任務節點。
創建檢查任務節點
下文以MaxCompute計算引擎為例,通過創建PyODPS任務方式進行檢查。若您使用的是其他計算引擎可以通過創建Shell、Python等腳本任務進行實現。
在需要輸出元數據的Dataphin項目空間中創建PyODPS任務(非元倉項目空間)。
開發PyODPS任務,請參見PyODPS。
在PyODPS任務中編寫檢查代碼。參數代碼如下:
#!/usr/bin/env python import time from odps import ODPS table_list = ['data_share_finish','data_security_finish','data_service_finish','data_quality_finish','data_standard_finish'] o = ODPS('**your-access-id**', '**your-secret-access-key**', '**your-default-project**',endpoint='**your-end-point**') success = False ds = '${bizdate}' sleepTime = 15 ready_table_list = [] for i in range(1, 2000): for t in table_list: table = o.get_table(t) if table.exist_partition('ds=%s' % ds): success = True table_list.remove(t) ready_table_list.append(t) break else: print ('sleep %ds,table %s partition %s is not ready' % (sleepTime, t, ds)) time.sleep(sleepTime) if not success: raise Exception('partition is not ready') else: print ('all meta table %s partition is ready' % (','.join(ready_table_list)))
說明以上代碼將輪詢檢查元倉項目空間中的通信表是否更新對應業務日期的數據,若需檢查所需表您可修改為對應表。
代碼中元倉項目空間的計算源信息您可咨詢部署Dataphin實例運維工程師或相關開發負責人獲取。包括MaxCompute的project和對應ak,及endpoint。
將創建的集成任務節點依賴于創建的檢查任務節點。