请问DataWorks中这个数据血缘为什么不能关联任务的血缘关系呢?

请问DataWorks中这个数据血缘为什么不能关联任务的血缘关系呢?
image.png

展开
收起
真的很搞笑 2023-06-04 17:04:21 189 分享 版权
阿里云 AI 助理回答

在DataWorks中,数据血缘无法关联某些任务的血缘关系,主要是由于以下原因和限制导致的。以下是详细分析和解释:


1. 任务类型与血缘支持的限制

并非所有任务类型都支持生成血缘关系。例如: - EMR相关任务
- EMR on ACK类型的Spark集群及EMR Serverless Spark集群不支持查看血缘关系。 - EMR Presto节点的任务也不支持查看血缘关系。 - DataLake或自定义集群若未配置EMR-HOOK,则无法在DataWorks中展示血缘关系。

  • Shell节点任务
    Shell节点任务的数据地图没有产出信息,且血缘关系仅支持Hive表的解析。如果您的Shell任务操作的是非Hive表(如Spark代码),则可能无法生成血缘关系。

  • 实时同步任务
    DataWorks仅支持为周期调度节点产出的表设置依赖。因此,实时同步任务产出的表数据无法基于血缘关系设置依赖。


2. 手动操作与临时查询的限制

DataWorks的血缘关系是基于调度作业、数据同步等真实数据流转情况解析得出的,而临时查询等手动操作产生的血缘关系暂不支持。这意味着,如果您通过手动执行SQL或其他方式操作数据,这些操作不会被记录到血缘关系中。


3. 调度依赖与血缘解析的强依赖性

血缘关系的生成需要依赖于周期调度任务的运行结果。如果任务未纳入周期调度,或者任务未成功运行,则血缘关系无法生成。例如: - 表和字段血缘是通过解析调度作业等真实数据的流转情况得出的,该操作为离线统计,存在T+1的延迟。 - 开发环境中的任务不会真正纳入血缘统计,只有生产环境中成功运行的任务才会被解析并展示血缘关系。


4. 视图血缘解析的不确定性

对于视图(View)的血缘解析,DataWorks会尝试解析视图的生成语句。然而,这种解析可能会失败,且目前无法保证解析的成功率。因此,视图的血缘关系可能无法完整展示。


5. 特定SQL命令的限制

部分SQL处理命令不支持生成血缘关系。例如: - 对于AnalyticDB for MySQL类型的表,部分SQL命令无法生成血缘关系信息。 - 如果SQL命令中包含*(通配符),则可能导致血缘关系无法正常生成。例如,以下SQL命令不支持展示血缘关系:

INSERT OVERWRITE TABLE XXXX SELECT * FROM YYYY WHERE ***;

而以下SQL命令可以正常展示血缘关系:

INSERT INTO test SELECT id, name FROM test1 WHERE name='test';


6. PyODPS任务的特殊处理

如果通过PyODPS节点执行SQL,可能会出现血缘关系无法正常生成的情况。此时,您需要在任务代码中手动设置DataWorks调度运行的相关参数(如SKYNET_参数)来解决此问题。例如:

import os

# 获取DataWorks调度运行时参数
skynet_hints = {}
for k, v in os.environ.items():
    if k.startswith('SKYNET_'):
        skynet_hints[k] = v

# 提交任务时设置hints参数
o.execute_sql('INSERT OVERWRITE TABLE XXXX SELECT * FROM YYYY WHERE ***', hints=skynet_hints)


7. 版本与权限限制

  • 版本限制
    仅DataWorks标准版及以上版本才支持查看血缘信息。如果您使用的是基础版,则无法查看血缘关系。
  • 敏感数据血缘
    敏感数据血缘功能仅对DataWorks企业版及以上版本用户开放。

总结与建议

根据上述分析,DataWorks中数据血缘无法关联任务血缘关系的原因主要包括任务类型限制、手动操作限制、调度依赖要求、视图解析不确定性、SQL命令限制以及版本权限限制等。为确保血缘关系能够正确生成,您可以采取以下措施: 1. 确保任务已纳入周期调度,并在生产环境中成功运行。 2. 避免使用不支持血缘解析的任务类型(如EMR on ACK、Presto节点等)。 3. 在PyODPS任务中手动设置调度参数以生成血缘关系。 4. 使用支持血缘解析的SQL命令,并避免使用通配符*。 5. 升级至DataWorks标准版或更高版本以解锁血缘功能。

希望以上解答能帮助您更好地理解DataWorks中数据血缘的限制及其解决方案!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

还有其他疑问?
咨询AI助理