分类传播使得与实体相关联的分类能够自动与实体的其他相关实体相关联。这在处理数据集从其他数据集中导出数据的场景时非常有用。 例如:在文件中加载数据的表,从表/视图生成的报表等。例如,当表被分类为“PII”时,从该表中导出数据的表格或视图(通过CTAS或”创建视图“操作)将自动归类为“PII”。
假设有以下血缘:将来自hdfs_path
实体的数据加载到表中,该表可通过视图进一步提供。我们将通过各种场景来理解分类传播特性。
当分类'PII'被添加到'hdfs_path'实体时,分类将传播到血缘路径中的所有受影响实体,包括'employees'表,视图'us_employees'和'uk_employees' - 如下所示。
对于与实体相关联的分类的任何更新都将在分类传播到的所有实体中看到。
从实体中删除分类时,分类将从分类传播到的所有实体中删除。
当在实体之间添加血缘时,例如为了捕获文件中的数据到表的加载,与源实体相关联的分类也被传播到所有受影响的实体。
例如,当从表创建视图时,与表关联的分类也会传播到新创建的视图。
情况1:删除实体时,将从分类传播到的所有实体中删除与此实体关联的分类。
例如。删除employees表时,将从“employees_view”视图中删除与此表关联的分类。
情况2:当在血缘路径的中间删除实体时,传播链接被破坏,并且先前传播的分类将从被删除实体的所有派生实体中移除。
例如。删除'us_employees'表时,从'ca_employees'表中删除通过此表(PII)传播的分类,因为实体删除会破坏传播的唯一路径。
情况3:当在血缘路径的中间删除实体并且如果存在用于传播的备用路径时,将保留先前传播的分类。
例如。当'us_employees'表被删除时,通过该表传播(PII)的分类将保留在'ca_employees'表中,因为有两个可用的传播路径,其中只有一个被实体删除打破。
Apache Atlas提供了一些的选项来控制是否/在何处传播分类。本节将详细介绍这些可用选项。
每个分类与实体的关联都有一个布尔标记,用于控制分类是否传播。当分类与实体相关联时,该标记被设置为true,即分类将被传播到所有受影响的实体。在初始关联期间或之后,可以将该标志更新为期望值。
Apache Atlas支持在血缘流向中添加标志,以启用/禁用通过流向传播分类。默认情况下,为血缘流向启用传播。当标志关闭时,不会通过此流向传播分类;并且将重新评估当前传播的分类通过流向的传播,以便可以从受影响的实体中移除它们。当标志打开时,将重新评估源实体的分类传播,以便它们可以传播到所有受影响的实体。
Apache Atlas支持在血缘流向中禁用特定分类传播。例如,这可以用于处理以下场景:在创建视图时屏蔽分类为PII的列;在这种情况下,如果创建的视图中的相应列可能没有PII,则应阻止PII分类的传播。这可以通过更新血缘流向以在“阻塞的传播分类”列表中添加PII分类来完成。阻塞传播分类中的分类不会在衍生/下游实体中传播。
添加/更新/删除传播的分类时,Apache Atlas会针对受传播影响的每个实体向“ATLAS_ENTITIES”主题发送通知。
当分类与术语相关联时,分类将自动传播到与术语相关联的所有实体。