捕获和视图数据沿袭统一目录
您可以使用统一的目录来捕获运行时数据沿袭在砖上运行查询。血统是支持所有语言和捕获到列的水平。谱系数据包括笔记本、工作流和仪表板相关查询。血统可以以接近实时的可视化在数据浏览和检索数据砖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_data。lineagedemo;格兰特使用模式,创建在模式lineage_data。lineagedemo来”data_engineers”;
捕获和探索血统
捕捉谱系数据,使用以下步骤:
去你的砖的着陆页,点击新在侧边栏,选择笔记本从菜单中。
笔记本并选择输入一个名称SQL在默认的语言。
在集群,选择一个集群提供统一目录。
点击创建。
在第一个笔记本电池,输入以下查询:
创建表如果不存在lineage_data。lineagedemo。菜单(recipe_idINT,应用程序字符串,主要字符串,甜点字符串);插入成lineage_data。lineagedemo。菜单(recipe_id,应用程序,主要,甜点)值(1,“酸橘汁腌鱼,“玉米饼”,“坯子”),(2,“番茄汤”,“杂音”,“焦糖布丁”),(3,“芯片”,“烤奶酪”,“芝士蛋糕”);创建表lineage_data。lineagedemo。晚餐作为选择recipe_id,concat(应用程序,“+”,主要,“+”,甜点)作为full_menu从lineage_data。lineagedemo。菜单
运行查询,点击在细胞和媒体shift + enter或者点击并选择运行单元。
使用数据浏览器来查看这些查询生成的血统,使用以下步骤:
在搜索框栏顶部的砖工作区,回车
lineage_data.lineagedemo.dinner
并点击搜索lineage_data.lineagedemo。晚餐在砖。下表,单击
晚餐
表。选择血统选项卡。血统面板出现并显示相关的表(在这个例子中
菜单
表)。查看数据沿袭的交互式图形,点击看到谱系图。默认情况下,一层显示在图。你可以点击图标在节点上透露更多连接是否可用。
点击箭头打开血统中连接节点图血统联系面板。的血统联系面板显示连接的详细信息,包括源和目标表,笔记本电脑,和工作流。
显示相关的笔记本
晚餐
表,选择的笔记本血统联系面板或关闭谱系图,然后点击笔记本电脑。在新标签页打开笔记本,点击笔记本的名字。查看列级血统,点击图中的一列显示链接到相关的列。例如,单击“full_menu”列显示上游列列是来自:
演示创建和查看血统有不同的语言,例如,Python,使用以下步骤:
打开笔记本您在前面创建,创建一个新细胞,并输入以下Python代码:
%python从pyspark.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”)
在细胞和细胞通过点击运行紧迫shift + enter或者点击并选择运行单元。
在搜索框栏顶部的砖工作区,回车
lineage_data.lineagedemo.price
并点击搜索lineage_data.lineagedemo。价格在砖。下表,单击
价格
表。选择血统选项卡并单击看到谱系图。点击图标探索数据沿袭和Python查询生成的SQL。
点击箭头打开血统中连接节点图血统联系面板。的血统联系面板显示连接的详细信息,包括源和目标表,笔记本电脑,和工作流。
捕捉并查看工作流血统
血统也捕捉到任何读取或写入联合目录的工作流。为了演示观看砖工作流的血统,使用以下步骤:
去你的砖的着陆页,切换到数据科学与工程形象。
点击新在侧边栏并选择笔记本从菜单中。
笔记本并选择输入一个名称SQL在默认的语言。
点击创建。
在第一个笔记本电池,输入以下查询:
选择*从lineage_data。lineagedemo。菜单
点击时间表在窗口的顶部。在进度对话框中,选择手册,选择一个集群提供统一目录,然后单击创建。
点击现在运行。
在搜索框栏顶部的砖工作区,回车
lineage_data.lineagedemo.menu
并点击搜索lineage_data.lineagedemo。菜单在砖。下表查看所有表,单击
菜单
表。选择血统选项卡上,单击工作流,并选择下游选项卡。工作名称出现作业名作为一个消费者
菜单
表。
血统的权限
谱系图共享相同的权限模型统一目录。如果用户没有选择特权在桌子上,他们将无法探索血统。另外,用户只能看到笔记本,工作流,仪表板,他们有权限查看。例如,如果您为一个非管理用户运行以下命令userA
:
格兰特使用模式在lineage_data。lineagedemo来”userA@公司。com”;格兰特选择在lineage_data。lineagedemo。菜单来”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”:“表”}]}