元数据共享模型是一系列元数据相关的物理表,基于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。
将创建的集成任务节点依赖于创建的检查任务节点。