DataPipeline丨LinkedIn元数据之旅的最新进展—DataHubDataPipeline数见科技

作者:MarsLan,SeyiAdebajo,ShirshankaDas

译者:DataPieplineyaran

一、扩展元数据

为提高LinkedIn数据团队的工作效率,我们之前开发并开源了WhereHows,一个中央元数据存储库和数据集门户。存储的元数据类型包括技术元数据(例如,位置、模式、分区、所有权)和过程元数据(例如,沿袭、作业执行、生命周期信息)。WhereHows还有一个搜索引擎,以帮助定位感兴趣的数据集。

2.通用比具体更好WhereHows对数据集或作业的元数据应该是什么样子有着强烈意见。这就导致出现固定的API、数据模型和存储格式,一旦对元数据模型有微小地更改将导致堆栈上下的级联更改。如果我们设计一个通用的体系结构,该结构不受存储和服务的元数据模型的影响,那将更具可扩展性。这反过来将使我们能够专注于发展适合我们业务的元数据模型,而不必担心堆栈的较低层。

3.在线与离线同样重要

一旦收集了元数据,就很自然地想要分析元数据以获得价值。一个简单的解决方案是将所有元数据转储到离线系统,如Hadoop,可以执行任意分析。但是,我们很快发现仅仅支持离线分析是不够的。例如访问控制和数据隐私处理,必须在线查询最新的元数据。

4.关系扮演重要角色

我们意识到仅仅围绕单个实体(数据集)建模元数据是不够的。整个生态系统的数据,代码和角色实体(数据集,数据科学家,团队,代码,微服务API,指标,AI功能,AI模型,仪表板,笔记本等)都需要集成到元数据地图。

二、一起了解下DataHub

大约一年前,我们根据这些知识从头开始设计WhereHows。我们意识到LinkedIn越来越需要跨各种数据实体的统一的搜索和发现体验,以及将它们连接在一起的元数据图。因此,我们决定扩大项目范围,构建一个完全通用的元数据搜索和发现工具DataHub,其雄心勃勃的愿景是:将LinkedIn员工与对他们至关重要的数据联系起来。我们将单片WhereHows堆栈分成两个不同的堆栈:模块化UI前端和通用元数据架构后端。新架构使我们能够快速扩展元数据收集范围,而不仅仅是数据集和作业。在撰写本文时,DataHub已经存储并索引数千万条元数据记录,这些记录包含19个不同的实体,包括数据集,指标,作业,图表,AI功能,人员和组。我们还计划在不久的将来在机器学习模型和标签,实验,仪表板,微服务API和代码上,发挥元数据的作用。

三、模块化UI

组件服务框架

与DataHub交互

在最高级别,前端提供三种类型的交互:(1)搜索,(2)浏览,(3)查看/编辑元数据。以下是一些实际应用的截图(点开看更清晰哦)

DataHub应用截图

与典型的搜索引擎体验类似,用户可以通过提供关键字列表来搜索一种或多种类型的实体。他们可以通过筛选一系列方面来进一步实现结果。高级用户还可以使用OR,NOT和regex等运算符来执行复杂搜索。

DataHub中的数据实体可以以树状方式组织和浏览,其中每个实体都允许出现在树中的多个位置。这使用户能够以不同的方式浏览相同的目录,例如,通过物理部署配置或业务功能组织。树中甚至有一个专门的部分,仅显示“经过认证的实体”,这些实体可通过单独的治理过程进行策划。

四、通用元数据架构

为了充分实现DataHub的愿景,我们需要一种能够使用元数据进行扩展的架构。可扩展性挑战有以下四种不同形式:

1.建模:以开发人员友好的方式为所有类型的元数据和关系建模。2.获取:通过API和流,大规模获取大量元数据更改。3.服务:服务于收集的原始和派生元数据,以及针对元数据的各种复杂查询。4.索引:大规模索引元数据,并在元数据发生更改时自动更新索引。

元数据建模

简而言之,元数据是“提供关于其他数据的信息的数据。”在元数据建模方面,带来了两个不同要求:

1.元数据也是数据

为模拟元数据,我们需要一种通用的建模语言。

2.元数据是分布式的

我们选择利用Pegasus,这是一种由LinkedIn创建的开放源码和完善的数据模式语言。Pegasus专为通用数据建模而设计,因此适用于大多数元数据。但是,由于Pegasus没有提供模型关系或关联的明确方法,因此我们引入了一些自定义扩展来支持这些用例。

为了演示如何使用Pegasus对元数据建模,让我们看一个简单的例子,它由以下修改后的实体关系图(ERD)演示。

该示例包含三种类型的实体:用户、组和数据集,由图中的蓝色圆圈表示。我们用箭头来表示这些实体之间的三种关系类型,即OwnedBy,HasMember和HasAdmin。换句话说,一个组由一个管理员和多个用户组成,他们可以拥有一个或多个数据集。

您可能已经注意到实体和关系属性与元数据方面存在重叠,例如,User的firstName属性应该与关联的Profile的firstName字段相同。重复的原因将在本文的后半部分进行解释。以Pegasus为例,我们将每个实体,关系和元数据方面转换为单独的Pegasus架构文件(PDSC)。为简单起见,我们在此仅包含每个类别的一个模型。首先,让我们看一下用户实体的PDSC:

每个实体都需要具有URN形式的全局唯一ID,可以将其视为一种类型的GUID。User实体具有包括名字,姓氏和LDAP的属性,每个属性都映射到用户记录中的可选字段。接下来是OwnedBy关系的PDSC模型:

每个关系模型自然包含“源”和“目标”字段,这些字段使用其URN指向特定实体实例。该模型可以选择包含其他属性字段,例如本例中的“type”。在这里,我们还引入了一个名为“pairings”的自定义属性,以限制与特定的源和目标URN类型的关系。在这种情况下,OwnedBy关系只能用于将数据集连接到用户。

最后,您将在下面找到Ownership元数据方面的模型。在此,我们选择将所有权建模为包含type和ldap字段的记录数组。但是,只要它是有效的PDSC记录,对于元数据方面的建模几乎没有限制。这令满足先前所述的“元数据也是数据”的要求成为可能。

在创建所有模型之后,下个问题是如何将它们连接在一起以形成所提议的ERD。我们将把这个讨论推迟到本文后面的元数据索引部分。

元数据获取

DataHub提供两种获取元数据的形式:直接API调用或Kafka流。前者用于需要读写一致性的元数据更改,后者更适用于面向事实的更新。

DataHub的API基于Rest.li,这是一种可扩展,强类型的RESTful服务架构,广泛用于LinkedIn。由于Rest.li使用Pegasus作为其接口定义,因此可以逐字使用上一节中定义的所有元数据模型。从API到存储需要多级模型转换的日子已经成为历史-API和模型将始终保持同步。

对于基于Kafka的获取,元数据生成者被期望产生一个标准化的元数据改变事件(MCE),其包含一个由相应实体URN键控的对特定元数据方面的建议更改列表。MCE的格式是ApacheAvro,它是由Pegasus元数据模型自动生成的。

在API和Kafka事件模式中使用相同的元数据模型,使得我们可以轻松地改进模型,而无需费力地维护相应的转换逻辑。但是,要实现真正无缝的模式演变,我们需要将所有模式更改限制为始终向后兼容。这在构建时通过添加兼容性检查强制执行。

在LinkedIn,我们倾向于更多地依赖Kafka流,因为它在生产者和消费者之间提供了松散的耦合。我们每天都会收到来自不同制作人的数百万个MCE,随着扩大元数据收集的范围,预计该数量将呈指数级增长。为了构建流式元数据提取管道,我们利用ApacheSamza作为流处理框架。获取Samza作业的目的是快速简单地实现高吞吐量。它只是将Avro数据转换回Pegasus并调用相应的Rest.liAPI来完成获取。

元数据服务

一旦摄取存储了元数据,就必须有效地提供原始元数据和派生元数据。DataHub旨在支持四种常见的大量元数据查询:

1.面向文档的查询2.面向图形的查询3.涉及连接的复杂查询4.全文检索

为实现这一目标,DataHub需要使用多种数据系统,每种数据系统都专门用于扩展和提供有限类型的查询。例如,Espresso是LinkedIn的NoSQL数据库,特别适合大规模面向文档的CRUD。同样,Galene可以轻松索引和提供网络规模的全文搜索。当谈到非平凡的图形查询时,specializedgraphDB可以比RDBMS更好地执行数量级,这并不奇怪。然而,事实证明,图结构也是表示外键关系的自然方式,能有效地回答复杂的连接查询。

DataHub通过一组通用数据访问对象(DAO)进一步抽象底层数据系统,例如键值DAO,查询DAO和搜索DAO。进而,当修改DAO的实现时,无需再更改DataHub中的任何业务逻辑。这将使我们能够在充分利用LinkedIn专有存储技术的同时,能够为流行的开源系统提供参考实现的开源DataHub。

DAO抽象的另一个主要好处是标准化的变更数据捕获(CDC)。无论底层数据存储系统的类型如何,通过键值DAO的任何更新操作都将自动发出元数据审计事件(MAE)。每个MAE包含相应实体的URN,以及特定元数据方面的前后图像。这支持lambda架构,其中可以批量或流处理MAE。与MCE类似,MAE的模式也是由元数据模型自动生成的。

元数据索引

最后一个缺失的部分是元数据索引管道。该系统将元数据模型连接在一起,并在图形数据库和搜索引擎中创建相应索引,以促进有效查询。这些业务逻辑以索引构建器和图形构建器的形式捕获,并作为处理MAE的Samza作业的一部分执行。每个构建器都在作业中注册了它们对特定元数据方面的兴趣,并将使用相应的MAE进行调用。然后,构建器会返回到一个幂等更新列表,这些更新将应用于搜索索引或graphDB。

元数据索引管道也是高度可扩展的,因为它可以基于每个MAE的实体URN进行分区,以支持每个实体的有序处理。

五、结论和期待

过去六个月,DataHub在LinkedIn每周支持1500多员工的搜索和各种特定的操作工作。LinkedIn的元数据图包含超过一百万个数据集,23个数据存储系统,25k个指标,500多个AI功能,最重要的是所有LinkedIn员工都是该图的创建者,消费者和操作者。

THE END
1.chatgpt在线和本地部署区别本地部署需要对模型进行配置和优化,以适应不同的硬件和软件环境,对于非专业人员来说可能需要一定的技术能力和经验。本地部署的模型无法享受到线上部署的实时更新和维护,当有新的数据或改进的模型可用时,需要手动更新和部署。 ChatGPT的本地部署在隐私保护、响应速度和离线使用等方面具有优势,但也需要考虑硬件资源和http://chatgpt.cmpy.cn/article/1757675.html
2.在线学习心得体会经管文库(原现金交易版)经在线学习心得体会 https://bbs.pinggu.org/thread-13234262-1-1.html
3.网游在线统计揭秘,数字背后的游戏世界探索日用工艺陶摘要:根据最新的网游在线统计,数字背后的游戏世界正在持续扩大。随着网络技术的不断进步,越来越多的玩家投入到各种网游中,形成了一个庞大的虚拟社区。这些统计数据揭示了玩家的偏好、游戏趋势以及市场潜力等重要信息,为我们揭示了游戏产业的现状和发展方向。 http://yxszg.cn/post/9719.html
4.轨道交通系统范文12篇(全文)由于离线调试和在线调试具有不同的程序循环路线, 如果采用不同的程序来实现之, 则有一个保证两边处理算法一致性的问题。即:为了实现混和调试方式, 一般来说需要建立两个调试系统, 一个用于离线调试, 即对视频文件加载算法;另一个用于在线调试, 即响应帧调用函数。从调试系统调试完毕后, 再将系统的改进写入在线系统https://www.99xueshu.com/w/ikeymwtxdj1q.html
5.135种不同语言实时翻译设备,带在线离线翻译,端口:亚马逊中国Ultimate Translator 支持 14 种主要语言的离线翻译,在无法接入互联网的区域,可以从在线模式切换到离线模式,离线支持西班牙语、英语、中文、日语、法语、德语、阿拉伯语、俄语、韩语、泰语、葡萄牙语和越南语等,在线支持 134 种不同的语言和口音。 超长电池寿命,翻译持久:1500mAh 大容量电池,电池寿命长,可连续工作8小https://www.amazon.cn/dp/B0CMTW1BWS
6.《梦幻西游》掉线钱会到特殊银行吗《梦幻西游》特殊银行取钱刷新离线摆摊所获得的金钱是不会扣的! 当你上线的时候系统会提示你及时处理! 如果没有处理 再次下线 一定时间就会变成储备金 #18 。 3、《梦幻西游》我在钱庄的特殊账户里放1500W下线后会被扣钱吗 网友分享:不会,特殊账户无限放钱.只不过,特殊账户每天每个服务器的总提钱量不能超过15亿.意思是,我和你在同一个https://www.773hf.com/wiki/38486.html
7.2022年网络攻击事件盘点网络电视中心2022年,全球重大网络安全事件频发,供应链攻击、勒索软件攻击、业务欺诈、关键基础设施攻击、大规模数据泄露、地缘政治相关黑客攻击等网络犯罪威胁持续上升。同时,随着网络攻击的敏捷化和产业化,网络攻击成本在不断降低,攻击方式也更加先进,关键信息基础设施面临的网络安全形势日趋严峻,对国家安全造成严重威胁。 https://wztv.66wz.com/system/2022/12/03/105525559.shtml
8.500va650va800va1000va1500va2000va3000va离线交互式在线暂无评价第 #20爆款商品的 线路交互式不间断电源 Foshan Ktac Technology Co., Ltd.实力工厂7 yrsCN 重要属性 其他属性 原产地 China 品牌 KTAC 型号 UPS-650S 相数 单相 防护 短路 重量 5.8kgs 类型 离线 适用范围 安防/监视/警报器 产品名称 http://chinese.alibaba.com/product-detail/500va-650va-800va-1000va-1500va-2000va_60777902270.html
9.4[标准答案]奥鹏作业答案优学网可做奥鹏全部院校作业、国开形考作业答案、在线作业、离线作业、答案联系 微信:wxxygzs 国开((新平台)《财务会计》形考任务1-4[标准答案] 形考任务1 1.下列两个指标之和为1的有()。 回答错误 多选题 (5 分) 5分 A.安全边际率与贡献毛益率 B.安全边际率与保本作业率 C.保本作业率与变动成本率 D.变动成本http://www.youxue100f.com/qita/2022-07-03-8519.html
10.安卓+IOS+在线消息+离线消息我只能说,不懂的东西就是难…… 现在对代码进行解析: 添加监听事件:click点击事件与receive接收事件 在onLaunch函数中,给这个应用添加两个监听事件,一个是click监听点击事件,一个是receive监听接收事件。 对于安卓的在线和离线消息以及IOS的离线消息都是走的click监听事件。也就是说可以直接将消息推送到手机通知栏中,https://blog.csdn.net/yehaocheng520/article/details/110232343
11.杨国斌:中国互联网的深度研究胡泳的财新博客在张宁的分析中,网络社区的独特之处不在于它与表面上更真实的“线下世界”之间的区别,而是这些社区的人们如何斡旋于在线和离线空间之间。其结果是出现了一种新型的社区生活和公民行动主义,旨在通过同行分享、志愿者工作以及在线和离线慈善来实现社会变革。 澳洲学者许建(Jian Xu)的文章研究的是网络围观。这种新形式的https://huyong.blog.caixin.com/archives/195471
12.SIEMENSSIMATICSTEP7破解版SIEMENSSIMATICSTEP记录多达16个不同的信号 最多可同时进行4个独立的跟踪作业 多种触发选项两个窗口:模拟和二进制信号(逻辑分析仪) 多功能缩放、光标测量功能 导出测量值(例如用于用户特定的处理) 3、在线的 在线功能 STEP 7(TIA Portal)支持多种在线功能 一键在线:显示运行状态、项目树中的诊断概览以及块级的在线/离线比较 通过一http://www.sd173.com/soft/9950.html
13.考试15002000证书申请和下载可以采用在线或离线两种方式用户签名密钥对和加密密钥对均由用户自己产生用户的数字证书由 CA签发,根CA的数字证书由根CA自己签发,下级CA的数字证书由上级CA签发证书状态查询系统所提供的服务可以采用CRL查询或在线证书状态查询两种方式 以下哪项不是CA的服务功能( )。 提供加密私钥管理用户证书签发用户证书https://www.wjx.cn/xz/228260884.aspx
14.西门子S7在线阅读 序言 本书系统地介绍了西门子S7-1200/1500系列PLC在博途环境下的SCL语言编程,具有如下特点。 1.视频配合文字:文字的优点在于方便查阅,便于记忆。视频的优点在于直观易懂,有些内容用文字描述可能要花费很多笔墨,并且无法看到实际演示的效果。本书将文字与视频相结合,随书带有80多个视频教程,有的视频介绍硬件实https://read678.com/JdBook/index/30720
15.离线厚度尺寸测量一体机LXC1500设备用途:实现锂电池涂布工序或者辊压工序极片厚度宽度的离线检测前一个: 辊压激光在线测量仪 LCH700 后一个: 五架面密度测量仪同步系统 测量原理:测厚模块由两个激光位移传感器上下对射的方式组成的,上下的两个传感器分别利用三角形测量法,发射一束激光至极片表面,通过检测反光位置即可测量出极片上表面的位置和https://www.kfckgs.com/productinfo/2824426.html
16.监管总队辽宁蚀守所武警“智慧磐石”工程竞争性磋商公告7、★能对门的开启方式,指纹、人脸使用权限进行组合设置,实现不同场景的权限管理,***张人脸管理; 8、支持数据上传功能,可将前端比对结果及抓拍的照片实时上传给后台平台保存; 9、 ★门禁终端支持与AB门客户端进行实时对讲功能,无需另外安装对讲分机; 10、支持https://www.dlzb.com/d-zb-17992420.html
17.Siemens西门子工业SIMATICS7免费在线预览全文 Siemens西门子工业SIMATICS7-1500STEP7V18及以上版本的S7-1500T运动系统功能V7.0SIMATICS7-1500STEP7V18及以上版本的S7-1500T运动系统功能V7.0使用手册用户手册产品说明书使用说明文档安装使用手册 11/2022 SIMATIC S7-1500 1 简介 (S7-1500T) 2 安全须知 (S7-1500T) SIMATIC 3 V7.0 新功能 (https://m.book118.com/html/2023/0522/7060043042005111.shtm