
# 约束限制
数据管理和分析过程中，为了确保数据的准确性和可追溯性，数据血缘解析成为了一个重要的工具。然而，在实际操作中，用户可能会遇到一些限制，建议用户在使用数据血缘解析功能时，提前了解并遵循以下约束限制，合理规划数据采集和SQL编写，以确保数据血缘解析的准确性和完整性。
#### 约束限制
1. 需要在数据目录先采集血缘涉及的所有表的元数据，否则数据目录血缘无法生成。
2. CREATE TABLE语法数据目录不支持，数据地图血缘只支持表级血缘。
3. 字段血缘需在SQL内明确指定字段，不支持\*场景，如：insert into a select \* from b;。
4. 不支持常量和表、字段之间映射关系所产生的血缘，如：insert into a values ('CONSTANT');，仅支持表与表之间、字段与字段之间映射关系的血缘。
5. 数据血缘是按单个SQL语句解析：
   - 不支持set语句，如set search_path=dws，无法通过set指定schema为dws。
   
   - 不支持解析临时表场景的传递血缘，如：with temp as select \* from a; insert into b select \* from temp; 无法解析出来a→b的传递血缘。
    
6. 如果需要指定表的schema，sql中表名要按{schema}.{table}形式书写，否则血缘会在默认schema的表上。
7. 字段血缘不支持使用窗口函数修饰的字段，如：insert into a select rank() over(id) from b;。
8. 字段血缘不支持笛卡尔乘积场景，如：insert into a select \* from b, c;。
9. 血缘解析不支持case when内嵌子查询，如：insert into a select case when true then (select \* from b) end;。
10. DWS SQL血缘解析不支持partition for等DWS语法解析包不支持的语法。
11. 集成作业血缘不支持源端配置自定义SQL抽取数据的血缘解析。
12. MRS Spark血缘解析场景，管理中心MRS Spark连接的配置需要与MRS Hive保持一致。
13. Hetu血缘解析仅支持表级和视图级，不支持字段级，当前仅支持Hive表。
14. 数据目录不支持展示Hetu血缘，仅数据地图支持。
15. 数据目录不支持Hetu离线元数据采集，仅支持Hive离线元数据采集。
16. Hetu数据连接用的MRS集群和Hive元数据采集用的MRS集群需要保持一致。
17. Hetu血缘sql需要显式指定库名。
18. MRS Flink SQL血缘解析仅支持脚本内存在完整的create with + insert sql场景。
19. MRS Flink SQL的connector有类型约束，当前flinkCreateSQL仅支持hudi connector。
 
