DataHub - 为现代数据技术栈而生的元数据管理平台
mhr18 2024-12-16 11:48 18 浏览 0 评论
1.引言
当前属于大数据时代,数据爆炸式增长,当然管理数据的工具也是层出不穷,从传统的单机关系型数据库PostgreSQL、Oracle、MySQL、MS SQL到擅长分析的Greenplum、Clickhouse、Vertica等,再到前几年火的不要不要的Hadoop体系,种类繁多的数据管理软件,也得有上百种了。以下截图节选自知名VC Matt Turck分享的数据栈:
完整图片获取地址:http://mattturck.com/wp-content/uploads/2021/12/2021-MAD-Landscape-v3.pdf
2.问题的产生
当然我们今天不是要讨论这些数据管理软件的优劣。大家从第一部分也可以看到,数据管理软件层出不穷,小型企业可能并不能切身感受到多种数据技术带来的苦恼,但是稍微成规模的企业,总要有自己的业务系统数据库、分析型数据平台、海量数据存储的平台等等,那么这么多平台带来的最直观的问题就是管理。
数据平台多,数据可能存在多个不必要的副本,数据质量就无法保证,数据的空间感就会很差,数据管理的混乱,导致的直接问题就是,业务无法第一时间找到最合适的数据源,数据平台之间不能产生数据的联动。
这个问题不是刚出现的问题,在数据发展的历史长河中,已经有很多人对这个问题进行了研究,进而产生了各种开源与闭源方案。那么今天,我们就来看看近几年由Linkedin开源的元数据管理/数据治理平台:DataHub 是如何解决这个问题的。
3.DataHub简介
DataHub是由Linkedin开源的,官方喊出的口号为:The Metadata Platform for the Modern Data Stack - 为现代数据栈而生的元数据平台。官方网站传送门。目的就是为了解决多种多样数据生态系统的元数据管理问题,它提供元数据检索、数据发现、数据监测和数据监管能力,帮助大家解决数据管理的复杂性。
DataHub基于Apache License 2开源,采用基于推送的数据收集架构(当然也支持pull拉取的方式),能够持续收集变化的元数据。当前版本已经集成了大部分流行数据生态系统接入能力,包括但不限于:Kafka, Airflow, MySQL, SQL Server, Postgres, LDAP, Snowflake, Hive, BigQuery。
- 源码仓库地址:linkedin/datahub: 该仓库包含DataHub前端和后端服务的完整源码。(DataHub采用先进的前后端分离架构)linkedin/datahub-gma: 该仓库包含DataHub元数据搜索和发现服务GMA
4.DataHub主要功能
DataHub是端到端的元数据发现工具,可以帮助数据管理者挖掘其公司数据的价值。DataHub的主要功能特点如下。
4.1 端到端搜索和发现
4.1.1 在数据库、数据湖、BI平台、ML特征存储、工作流配置等数据资产中进行[元数据集中查询搜索]
从下面两个截图可以看到,在DataHub里面搜索health,从所有的元数据(BigQuery数据集、DataHub Tags/Users等)中,得到了所有相关结果,可以在结果中,点击查看相关的结果。
4.1.2 通过跨平台、数据集、管道的[血缘关系追踪],轻松理解数据的端到端旅程
从下面两个截图可以看到,“DataHub Health”这个查询的依赖关系表一级一级的展示出来,可以通过点击?展开下一级内容。通过使用lineage视图,可以详细地查看在数据集和管道中的依赖关系。
4.1.3 通过线性血缘图,快速获取相关实体的上下文
从下面截图可以看到,通过在图上点击相关实体,可以很容易地查看文档、使用状态、用户等信息。
4.1.4 获取数据集准确性和相关性的确切信息
DataHub针对流行的数据仓库平台提供数据集合的详细信息浏览和实用信息统计,让数据从业者更容易理解数据的形态。
4.2 构造坚实的文档和标签基础
上面4.1部分展示的是DataHub的搜索查看特性,本节介绍一下它在维护编辑方面的特性。
4.2.1 通过API或DataHub UI获取并维护公司的知识库
随着我们日常操作中定义和用例的丰富,DataHub可以轻松地更新和维护文档。除了通过GMS管理文档外,DataHub通过UI界面提供丰富的文档和外部支持链接操作界面。
4.2.2 通过API或DataHub UI创建和定义新的标签(tag)
通过下图可以看到,在DataHub中可以通过GraphQL API轻松的创建和添加任何实体标签,这样随着时间的推移,实体的属性回越来越丰富。当有一天我们想要查看某一标签的相关实体信息时,只需要在标签位置点击该标签,就会将所有相关的实体数据列出来。
4.3 触手可及的数据治理
元数据管理平台,最终的目的是实现数据的有效治理,DataHub提供一系列的数据治理功能,本部分介绍它的几个特性。
4.3.1 快速将资产所有权分配给用户或用户组
通过点击实体的详细信息,进入详细信息浏览界面,可以在【Owners】部分轻松快速的将该资产分配给某个用户或用户组。如下图所示:
4.3.2 使用策略管理细粒度访问控制
DataHub管理员可以创建相应的策略,来定义谁可以在哪些资源上执行什么样的活动。在制定策略时,同时管理员还可以进行如下指定操作:
- 平台型策略 - 最高级别的DataHub平台权限,比如用户管理、组管理和策略管理等
- 资源型策略 - 指定资源类型,比如数据集、看板、管道等
- 权限策略 - 选择权限范围集合,比如编辑用户、编辑文档、编辑链接等
- 用户或组策略 - 分配相关的用户或组;比如可以直接将策略分配给资源使用的用户,而不必太关注他属于哪个组
下面给大家放一张直观的策略分配图:
4.4 元数据质量和使用分析
通过DataHub可以对元数据进行深度挖掘。DataHub提供的分析视图可以清晰的展示元数据相关的操作信息,比如用户权限分配的频繁度、本周活动用户、常用的搜索条件及活动等。
5.当前支持的数据栈列表
DataHub仍然处于活跃开发阶段,在最后这一部分,给大家罗列一下DataHub目前支持的数据栈有哪些:
5.1 支持的数据源有哪些
数据源名称 | 当前支持状态 |
Athena | 支持 |
BigQuery | 支持 |
Delta Lake | 计划支持 |
Druid | 支持 |
Elasticsearch | 支持 |
Hive | 支持 |
Hudi | 计划支持 |
Iceberg | 计划支持 |
Kafka Metadata | 支持 |
MongoDB | 支持 |
Microsoft SQL Server | 支持 |
MySQL | 支持 |
Oracle | 支持 |
PostreSQL | 支持 |
Redshift | 支持 |
s3 | 支持 |
Snowflake | 支持 |
Spark/Databricks | 部分支持 |
Trino FKA Presto | 支持 |
5.2 支持的BI工具有哪些
数据源名称 | 当前支持状态 |
Business Glossary | 支持 |
Looker | 支持 |
Redash | 支持 |
Superset | 支持 |
Tableau | 计划支持 |
Grafana | 部分支持 |
5.3 支持的ETL/ELT工具有哪些
数据源名称 | 当前支持状态 |
dbt | 支持 |
Glue | 支持 |
5.4 支持的工作流编排工具有哪些
数据源名称 | 当前支持状态 |
Airflow | 支持 |
Prefect | 计划支持 |
最后的最后,如果您感觉我的分享有用,欢迎点赞并关注,后续会继续分享更具体的Datahub操作案例给大家。
相关推荐
- 订单超时自动取消业务的 N 种实现方案,从原理到落地全解析
-
在分布式系统架构中,订单超时自动取消机制是保障业务一致性的关键组件。某电商平台曾因超时处理机制缺陷导致日均3000+订单库存锁定异常,直接损失超50万元/天。本文将从技术原理、实现细节、...
- 使用Spring Boot 3开发时,如何选择合适的分布式技术?
-
作为互联网大厂的后端开发人员,当你满怀期待地用上SpringBoot3,准备在项目中大显身手时,却发现一个棘手的问题摆在面前:面对众多分布式技术,究竟该如何选择,才能让SpringBoot...
- 数据库内存爆满怎么办?99%的程序员都踩过这个坑!
-
你的数据库是不是又双叒叕内存爆满了?!服务器监控一片红色警告,老板在群里@所有人,运维同事的电话打爆了手机...这种场景是不是特别熟悉?别慌!作为一个在数据库优化这条路上摸爬滚打了10年的老司机,今天...
- springboot利用Redisson 实现缓存与数据库双写不一致问题
-
使用了Redisson来操作Redis分布式锁,主要功能是从缓存和数据库中获取商品信息,以下是针对并发时更新缓存和数据库带来不一致问题的解决方案1.基于读写锁和删除缓存策略在并发更新场景下,...
- 外贸独立站数据库炸了?对象缓存让你起死回生
-
上周黑五,一个客户眼睁睁看着服务器CPU飙到100%——每次页面加载要查87次数据库。这让我想起2024年Pantheon的测试:Redis缓存能把WooCommerce查询速度提升20倍。跨境电商最...
- 手把手教你在 Spring Boot3 里纯编码实现自定义分布式锁
-
为什么要自己实现分布式锁?你是不是早就受够了引入各种第三方依赖时的繁琐?尤其是分布式锁这块,每次集成Redisson或者Zookeeper,都得额外维护一堆配置,有时候还会因为版本兼容问题头疼半...
- 如何设计一个支持百万级实时数据推送的WebSocket集群架构?
-
面试解答:要设计一个支持百万级实时数据推送的WebSocket集群架构,需从**连接管理、负载均衡、水平扩展、容灾恢复**四个维度切入:连接层设计-**长连接优化**:采用Netty或Und...
- Redis数据结构总结——面试最常问到的知识点
-
Redis作为主流的nosql存储,面试时经常会问到。其主要场景是用作缓存,分布式锁,分布式session,消息队列,发布订阅等等。其存储结构主要有String,List,Set,Hash,Sort...
- skynet服务的缺陷 lua死循环
-
服务端高级架构—云风的skynet这边有一个关于云风skynet的视频推荐给大家观看点击就可以观看了!skynet是一套多人在线游戏的轻量级服务端框架,使用C+Lua开发。skynet的显著优点是,...
- 七年Java开发的一路辛酸史:分享面试京东、阿里、美团后的心得
-
前言我觉得有一个能够找一份大厂的offer的想法,这是很正常的,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司...
- mysql mogodb es redis数据库之间的区别
-
1.MySQL应用场景概念:关系型数据库,基于关系模型,使用表和行存储数据。优点:支持ACID事务,数据具有很高的一致性和完整性。缺点:垂直扩展能力有限,需要分库分表等方式扩展。对于复杂的查询和大量的...
- redis,memcached,nginx网络组件
-
1.理解阻塞io,非阻塞io,同步io,异步io的区别2.理解BIO和AIO的区别io多路复用只负责io检测,不负责io操作阻塞io中的write,能写多少是多少,只要写成功就返回,譬如准备写500字...
- SpringBoot+Vue+Redis实现验证码功能
-
一个小时只允许发三次验证码。一次验证码有效期二分钟。SpringBoot整合Redis...
- AWS MemoryDB 可观测最佳实践
-
AWSMemoryDB介绍AmazonMemoryDB是一种完全托管的、内存中数据存储服务,专为需要极低延迟和高吞吐量的应用程序而设计。它与Redis和Memcached相似,但具有更...
- 从0构建大型AI推荐系统:实时化引擎从工具到生态的演进
-
在AI浪潮席卷各行各业的今天,推荐系统正从幕后走向前台,成为用户体验的核心驱动力。本文将带你深入探索一个大型AI推荐系统从零起步的全过程,揭示实时化引擎如何从单一工具演进为复杂生态的关键路径。无论你是...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (83)
- php redis (97)
- redis 存储 (67)
- redis 锁 (74)
- 启动 redis (73)
- redis 时间 (60)
- redis 删除 (69)
- redis内存 (64)
- redis并发 (53)
- redis 主从 (71)
- redis同步 (53)
- redis结构 (53)
- redis 订阅 (54)
- redis 登录 (62)
- redis 面试 (58)
- redis问题 (54)
- 阿里 redis (67)
- redis的缓存 (57)
- lua redis (59)
- redis 连接池 (64)