捕获和视图数据沿袭统一目录

您可以使用统一的目录来捕获运行时数据沿袭在砖上运行查询。血统是支持所有语言和捕获到列的水平。谱系数据包括笔记本、工作流和仪表板相关查询。血统可以以接近实时的可视化在数据浏览和检索数据砖REST API。

请注意

您还可以查看和查询系统使用血统谱系数据表(公共预览)。有关更多信息,请参见分析家族系统表

血统是聚合所有工作区目录metastore附加到团结。这意味着血统捕获在一个工作区中是可见的在其他任何工作区metastore共享。用户必须有正确的权限查看数据血统。谱系数据保留30天。

本文介绍了可视化沿袭使用数据浏览和REST API。

需求

以下是需要捕获数据沿袭统一目录:

  • 工作区必须统一目录启用和推出高端层。

  • 表必须注册在统一目录metastore才有资格血统捕捉。

  • 查询必须使用火花DataFrame(例如,火花SQL函数,返回一个DataFrame)或砖SQL接口。砖的SQL和PySpark查询的例子,请参阅例子

  • 查看表或视图的血统,用户必须有选择表或视图特权。

  • 为笔记本血统信息视图,工作流,或指示板,用户必须定义这些对象的访问控制权限设置在工作区中。看到血统的权限

  • 查看血统的统一Catalog-enabled管道,你必须有CAN_VIEW管道的权限。

限制

  • 流三角洲表之间只在砖运行时支持11.3 LTS或以上。

  • 因为血统是计算一个30天的滚动窗口,血统收集了超过30天前不显示。例如,如果一个工作或查询数据从表中读取数据,并将其写入表B, B表一和表之间的联系是显示只有30天。

  • 工作流使用API的工作运行提交请求查看血统时不可用。表和列级血统仍使用时被捕获运行提交请求,但运行的链接不是被俘。

  • 统一目录捕捉尽可能多的列级血统。然而,有些情况下,列级血统不能捕获。

  • 如果一个表重命名,血统不是捕获的重命名表。

  • 如果你使用火花SQL数据库检查点,血统不是捕获。看到pyspark.sql.DataFrame.checkpoint在Apache火花文档。

例子

请注意

  • 下面的例子使用目录名称lineage_data和模式名称lineagedemo。使用不同的目录和模式,改变的例子中使用的名称。

  • 完成这个例子中,您必须有创建使用模式一个模式上的特权。metastore管理,目录的所有者,或模式所有者可以授予这些权限。例如,给所有用户组中的“data_engineers”中创建表的权限lineagedemo模式的lineage_data目录,metastore管理员可以运行以下查询:

    创建模式lineage_datalineagedemo;格兰特使用模式,创建模式lineage_datalineagedemodata_engineers;

捕获和探索血统

捕捉谱系数据,使用以下步骤:

  1. 去你的砖的着陆页,点击新图标在侧边栏,选择笔记本从菜单中。

  2. 笔记本并选择输入一个名称SQL默认的语言

  3. 集群,选择一个集群提供统一目录。

  4. 点击创建

  5. 在第一个笔记本电池,输入以下查询:

    创建如果存在lineage_datalineagedemo菜单(recipe_idINT,应用程序字符串,主要字符串,甜点字符串);插入lineage_datalineagedemo菜单(recipe_id,应用程序,主要,甜点)(1,“酸橘汁腌鱼,“玉米饼”,“坯子”),(2,“番茄汤”,“杂音”,“焦糖布丁”),(3,“芯片”,“烤奶酪”,“芝士蛋糕”);创建lineage_datalineagedemo晚餐作为选择recipe_id,concat(应用程序,“+”,主要,“+”,甜点)作为full_menulineage_datalineagedemo菜单
  6. 运行查询,点击在细胞和媒体shift + enter或者点击运行菜单并选择运行单元

使用数据浏览器来查看这些查询生成的血统,使用以下步骤:

  1. 搜索框栏顶部的砖工作区,回车lineage_data.lineagedemo.dinner并点击搜索lineage_data.lineagedemo。晚餐在砖

  2. ,单击晚餐表。

  3. 选择血统选项卡。血统面板出现并显示相关的表(在这个例子中菜单表)。

  4. 查看数据沿袭的交互式图形,点击看到谱系图。默认情况下,一层显示在图。你可以点击加号图标图标在节点上透露更多连接是否可用。

  5. 点击箭头打开血统中连接节点图血统联系面板。的血统联系面板显示连接的详细信息,包括源和目标表,笔记本电脑,和工作流。

    谱系图
  6. 显示相关的笔记本晚餐表,选择的笔记本血统联系面板或关闭谱系图,然后点击笔记本电脑。在新标签页打开笔记本,点击笔记本的名字。

  7. 查看列级血统,点击图中的一列显示链接到相关的列。例如,单击“full_menu”列显示上游列列是来自:

    完整的菜单列血统

演示创建和查看血统有不同的语言,例如,Python,使用以下步骤:

  1. 打开笔记本您在前面创建,创建一个新细胞,并输入以下Python代码:

    %pythonpyspark.sql.functions进口兰德,df=火花范围(3)withColumn(“价格”,(10*兰德(种子=42),2))withColumnRenamed(“id”,“recipe_id”)df模式(“覆盖”)saveAsTable(“lineage_data.lineagedemo.price”)晚餐=火花(“lineage_data.lineagedemo.dinner”)价格=火花(“lineage_data.lineagedemo.price”)dinner_price=晚餐加入(价格,=“recipe_id”)dinner_price模式(“覆盖”)saveAsTable(“lineage_data.lineagedemo.dinner_price”)
  2. 在细胞和细胞通过点击运行紧迫shift + enter或者点击运行菜单并选择运行单元

  3. 搜索框栏顶部的砖工作区,回车lineage_data.lineagedemo.price并点击搜索lineage_data.lineagedemo。价格在砖

  4. ,单击价格表。

  5. 选择血统选项卡并单击看到谱系图。点击加号图标图标探索数据沿袭和Python查询生成的SQL。

    扩大谱系图
  6. 点击箭头打开血统中连接节点图血统联系面板。的血统联系面板显示连接的详细信息,包括源和目标表,笔记本电脑,和工作流。

捕捉并查看工作流血统

血统也捕捉到任何读取或写入联合目录的工作流。为了演示观看砖工作流的血统,使用以下步骤:

  1. 去你的砖的着陆页,切换到数据科学与工程形象。

  2. 点击新图标在侧边栏并选择笔记本从菜单中。

  3. 笔记本并选择输入一个名称SQL默认的语言

  4. 点击创建

  5. 在第一个笔记本电池,输入以下查询:

    选择*lineage_datalineagedemo菜单
  6. 点击时间表在窗口的顶部。在进度对话框中,选择手册,选择一个集群提供统一目录,然后单击创建

  7. 点击现在运行

  8. 搜索框栏顶部的砖工作区,回车lineage_data.lineagedemo.menu并点击搜索lineage_data.lineagedemo。菜单在砖

  9. 表查看所有表,单击菜单表。

  10. 选择血统选项卡上,单击工作流,并选择下游选项卡。工作名称出现作业名作为一个消费者菜单表。

捕捉并查看仪表板血统

为了演示查看SQL仪表板的血统,使用以下步骤:

  1. 去你砖的着陆页,打开数据浏览点击数据在侧边栏。

  2. 点击目录名称,点击lineagedemo,并选择菜单表。您还可以使用搜索表文本框顶部栏搜索菜单表。

  3. 点击行动>创建一个快速的仪表板

  4. 选择列添加到仪表板和点击创建

  5. 搜索框栏顶部的砖工作区,回车lineage_data.lineagedemo.menu并点击搜索lineage_data.lineagedemo。菜单在砖

  6. 表查看所有表,单击菜单表。

  7. 选择血统选项卡并单击指示板。仪表板的名字出现仪表板的名字作为一个消费者的菜单表。

血统的权限

谱系图共享相同的权限模型统一目录。如果用户没有选择特权在桌子上,他们将无法探索血统。另外,用户只能看到笔记本,工作流,仪表板,他们有权限查看。例如,如果您为一个非管理用户运行以下命令userA:

格兰特使用模式lineage_datalineagedemouserA@公司com;格兰特选择lineage_datalineagedemo菜单userA@公司com;

userA观点的谱系图lineage_data.lineagedemo.menu表,他们会看到菜单表,但将无法看到相关信息表,例如,下游lineage_data.lineagedemo.dinner表。的晚餐表显示为一个戴面具的节点显示userA,userA不能扩大图揭示下游表从表他们没有权限访问。

更多信息管理进入统一目录,可到手的对象统一目录管理权限。有关管理的更多信息访问工作区对象像笔记本一样,工作流,仪表板,不见了工作区对象访问控制

删除数据血统

警告

下面的说明删除所有对象存储在统一目录。只在必要时使用这些指令。例如,以满足合规要求。

要删除谱系数据,您必须删除metastore统一目录管理对象。关于删除metastore的更多信息,请参阅删除一个metastore。在30天内的数据将被删除。

数据沿袭API

数据沿袭API允许您检索表和列的血统。

重要的

访问数据砖REST api,你必须进行身份验证

检索表血统

这个示例检索谱系数据晚餐表。

请求

curl——netrc - x\- h“application / json内容类型:\https:// < databricks-instance . . / api / 2.0 / lineage-tracking / table-lineage\- d{“table_name”:“lineage_data.lineagedemo。晚餐”、“include_entity_lineage”:真}}’

取代< databricks-instance >与砖工作区实例名例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.com

这个示例使用. netrc文件。

响应

{“上游”:({“tableInfo”:{“名称”:“菜单”,“catalog_name”:“lineage_data”,“schema_name”:“lineagedemo”,“table_type”:“表”},“notebookInfos”:({“workspace_id”:4169371664718798,“notebook_id”:1111169262439324}]}),“下游”:({“notebookInfos”:({“workspace_id”:4169371664718798,“notebook_id”:1111169262439324}]},{“tableInfo”:{“名称”:“dinner_price”,“catalog_name”:“lineage_data”,“schema_name”:“lineagedemo”,“table_type”:“表”},“notebookInfos”:({“workspace_id”:4169371664718798,“notebook_id”:1111169262439324}]}]}

检索列血统

这个示例检索列数据晚餐表。

请求

curl——netrc - x\- h“application / json内容类型:\https:// < databricks-instance . . / api / 2.0 / lineage-tracking / column-lineage\- d{“table_name”:“lineage_data.lineagedemo。晚餐”、“column_name ": "甜点"}}’

取代< databricks-instance >与砖工作区实例名例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.com

这个示例使用. netrc文件。

响应

{“upstream_cols”:({“名称”:“甜点”,“catalog_name”:“lineage_data”,“schema_name”:“lineagedemo”,“table_name”:“菜单”,“table_type”:“表”},{“名称”:“主要”,“catalog_name”:“lineage_data”,“schema_name”:“lineagedemo”,“table_name”:“菜单”,“table_type”:“表”},{“名称”:“应用程序”,“catalog_name”:“lineage_data”,“schema_name”:“lineagedemo”,“table_name”:“菜单”,“table_type”:“表”}),“downstream_cols”:({“名称”:“full_menu”,“catalog_name”:“lineage_data”,“schema_name”:“lineagedemo”,“table_name”:“dinner_price”,“table_type”:“表”}]}