火山引擎DataLeap的Data Catalog系统公有云实践

news2024/10/5 20:27:02

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

Data Catalog是一种元数据管理的服务,会收集技术元数据,并在其基础上提供更丰富的业务上下文与语义,通常支持元数据编目、查找、详情浏览等功能。目前Data Catalog作为火山引擎大数据研发治理套件DataLeap产品的核心功能之一,经过多年打磨,服务于字节跳动内部几乎所有核心业务线,解决了数据生产者和消费者对于元数据和资产管理的各项核心需求。

DataLeap作为一站式数据中台套件,汇集了字节内部多年积累的数据集成、开发、运维、治理、资产、安全等全套数据中台建设的经验,助力ToB市场客户提升数据研发治理效率、降低管理成本。

Data Catalog公有云整体架构

 

Data Catalog支持综合搜索、血缘分析、库表管理、元数据采集、备注问答、专题管理、OpenAPI等功能,和DataLeap其他功能模块(如数据开发、数据集成、数据质量、数据安全等)一起提供了大数据研发和治理场景的一站式解决方案。同时,Data Catalog公有云产品是基于火山引擎提供的数据引擎和云基础设施来部署和服务的,下面会简单介绍下我们所依赖和使用的产品和服务:

  • 数据引擎:是火山引擎提供的数据分析、数据仓库和数据湖相关产品,包括ByteHouse/EMR/LAS等产品。通常Data Catalog会从这类系统内采集元并存储元数据,进行处理加工后,再提供搜索、血缘分析等功能;另外,库表管理模块也会依赖这类系统提供对应的接口来做建库建表等操作。

  • 内部公共服务:是火山引擎为支持公司内部产品上公有云提供的若干公共基础服务,主要作用是方便内部产品能快速在公有云部署,提供和公司内部兼容性比较高的公共服务,降低改造和迁移成本。其中Data Catalog使用较多的包括:API网关、网络代理、访问控制、安全认证、监控报警等。

  • 基础服务:这类服务或产品相较于上面说的内部公共服务主要区别是,他们是火山引擎对外售卖的标准云服务,内外部用户都可使用,且和业界主流云厂商能力是基本对齐的,不过会和公司内部一些类似的基础服务会有不少差异。Data Catalog主要使用这类基础服务来进行自身服务的部署运维,并且进行较多的兼容性改造,包括容器部署、网络打通、内外部CICD和监控报警流程一致性等方面。

  • 数据库和中间件:是和业界主流云厂商对齐的存储和中间件领域的标准云服务,和公司内部对应组件也会有若干差异,Data Catalog为此也做了多版本的兼容。Data Catalog在元数据存储上使用到了Hbase/MySQL/ES/Redis,然后在元数据采集和同步场景使用了Kafka,同时用到了日志服务来提高研发运维效率。

Data Catalog公有云遇到的挑战

Data Catalog经历了一个从0到1在火山引擎公有云部署并逐步优化和迭代发布10+版本的过程,在这个过程中经历不少挑战,下面将介绍其中比较典型的问题以及我们探索并实践的一些解决方案。

网络和数据安全

为保证网络安全和多租户数据安全,火山引擎上公有云产品部署的环境划分为“公共服务区”和“售卖区”,同时售卖区又分割为若干私有网络(即VPC),然后公共服务区和售卖区以及售卖区的VPC之间都是网络隔离的。

另外,Data Catalog对外会提供OpenAPI,外部客户可以通过火山引擎的API网关来访问这些API,但API网关服务是在公共服务区,无法直接访问到Data Catalog服务,基于以上情况,为了正常对外提供服务,我们需要解决网络隔离问题同时还要保证安全性。

解决方案:

 

  • 服务部署:为了能够在售卖区部署,经过调研我们选择火山引擎提供的容器服务(VKE)和负载均衡(CLB)来进行基础服务部署和构建,其中CLB提供四层负载均衡能力,容器服务是高性能 Kubernetes 容器集群管理服务。Data Catalog基于容器服务提供的无状态负载(Deployment)、定时任务(CronJob)、服务(Service)等云原生容器管理功能进行基本服务和调度任务部署,同时也使用火山引擎的存储和中间件,以上组件均在同一个VPC内,能够保证网络连通以及数据安全。

  • 网络打通:为解决上文所说的网络隔离问题,经过调研我们使用了公司通用的网络代理服务(PLB/Shuttle),该网络代理可做到网络打通的同时保证四层网络流量的安全,从而达到我们和各依赖方如公共服务(API网关、IAM等、独立部署的云服务(EMR/LAS等)的网络连通目标。

  • 数据安全:火山引擎部署环境做网络隔离,主要是保证安全性,我们虽然使用网络代理打通网络,但是仍需保证各个环节的安全性,考虑到服务间交互都是通过HTTP请求,我们对和外部交互的接口都增加了SSL和双向认证的机制,同时在安全认证方面,我们没有使用Nginx或Java原生的方案,而是借助于火山引擎内部安全服务中的ZTI团队的envoy组件来实现,同时使用sidecar模式和我们后端服务容器集成部署,既降低了服务端部署改造成本,也解耦了服务端业务逻辑和安全认证逻辑。

多租户适配

云服务要为多个租户提供服务,需要做到租户隔离,保证各租户的访问控制、数据、服务响应等各方面的使用都是隔离的,彼此互不感知互不影响的。要做到租户隔离,就需要云服务能通过逻辑或物理隔离的方式来将各租户对应数据和访问隔离开来,避免互相影响。

此前,在字节跳动内部实践中不存在多租户场景,所以面向公有云用户服务时,Data Catalog针对支持多租户服务的能力,需要进行专门适配。

解决方案:

Data Catalog在元数据存储层借用了Apache Atlas的设计与实现。Atlas的底层使用JanusGraph做图引擎,JanusGraph是基于Gremlin图查询语义实现的计算引擎,而社区版Atlas不支持多租户场景。我们通过在Atlas上增加JanusGraph Partition Strategy适配,实现存储层租户逻辑隔离。

 

参考以上示例,JanusGraph的Partition Strategy可以支持设置的read/write Partition的value,并保证只读/写指定Partition的数据,从而达到数据隔离,我们将租户信息和Partition Strategy相结合,实现了多租户场景下读写数据的逻辑隔离,保证了数据安全性。

火山引擎Data Catalog产品是基于字节跳动内部平台,经过多年打磨业务场景和产品能力,在公有云进行部署和发布,期望帮忙更多外部客户创造数据价值。目前公有云产品已包含内部成熟的产品功能同时扩展若干ToB核心功能,正在逐步对齐业界领先Data Catalog云产品各项能力。

点击跳转大数据研发治理套件 DataLeap了解更多

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/880677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常见分辨率时序信息

分辨率列表 分辨率一:640x480(逐行) 分辨率二:800x600(逐行) 分辨率三:1024x768(逐行) 分辨率四:大名鼎鼎720P(逐行) 注:选择720P@30帧的,需拉长HOR TOTAL TIME 分辨率五:1280x800(逐行) 分辨率六:1280x960(逐行

MySQL和Redis如何保证数据一致性

MySQL与Redis都是常用的数据存储和缓存系统。为了提高应用程序的性能和可伸缩性,很多应用程序将MySQL和Redis一起使用,其中MySQL作为主要的持久存储,而Redis作为主要的缓存。在这种情况下,应用程序需要确保MySQL和Redis中的数据是…

Bootstrap-fileinput 插件的使用

1.bootstrap-fileinput 下载地址 https://github.com/kartik-v/bootstrap-fileinput.git 2.bootstrap-fileinput 使用 input 标签 multiple"multiple" 表示可以多选文件 <div class"container-fluid"><div class"card border-0 shadow-sm…

深度学习在MRI运动校正中的应用综述

运动是MRI中的主要挑战之一。由于MR信号是在频率空间中获取的&#xff0c;因此除了其他MR成像伪影之外&#xff0c;成像对象的任何运动都会导致重建图像中产生伪影。深度学习被提出用于重建过程的几个阶段的运动校正。广泛的MR采集序列、感兴趣的解剖结构和病理学以及运动模式&…

这四种订货系统不能选(四):不能源码交付

订货系统在现代企业管理中具备着重要的地位和作用。通过订货系统&#xff0c;企业能够更好地掌握市场需求&#xff0c;提高订单的准确性和及时性&#xff0c;优化企业的供应链管理&#xff0c;并加强与供应商之间的合作与沟通。今天我们分享最后一个不能选的、也是最重要的一点…

ArcGIS Pro发布地图服务(影像、矢量)

本文示例使用&#xff08;因为portal的授权的版本只有10.5的&#xff0c;故使用10.5进行示例&#xff09;&#xff1a; 软件:ArcGIS Pro3.0.1&#xff08;破解版&#xff09;&#xff0c; ArcGIS Portal10.5 当ArcGIS Pro和Portal不在一个机器或者版本不一样的时候&#xff0…

日常问题——git推送代码被拒绝

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 Push to origin/master was rejected 提交代码时提示&#xff0c;被拒绝。 二、问题原因 …

(七)Unity VR项目升级至Vision Pro需要做的工作

Vision Pro 概述 定位为混合现实眼镜&#xff0c;对AR支持更友好 无手柄&#xff0c;支持手&#xff08;手势&#xff09;、眼&#xff08;注视&#xff09;、语音交互 支持空间音频&#xff0c;相比立体声、环绕声更有沉浸感和空间感 支持VR/AR应用&#xff0c;支持多种应用模…

零基础官网下载jdk

Oracle 官网总是隔一段时间一改版&#xff0c;时间长了博客可能不适用&#xff0c;望注意&#xff0c;但是精髓不变。 Oracle官网 官网地址百度搜索&#xff0c;其他任何官网都一个套路&#xff0c;但要识别下一些广告网站会模仿官方网站。 官网地址&#xff1a;https://www.…

k8s服务注册发现

Service 是 将运行在一个或一组pod上的网络应用程序公开为网络服务的方法。 定义service前端为service名称、ip、端口等不变的部分&#xff0c;后端为符合标签选择的pod集合 注册 通过api server提交注册service请求到DNSservice随后得到clusterIP&#xff08;虚拟ip地址&am…

UHPC的疲劳计算——兼论ModelCode2010的适用性

文章目录 0. 背景1、结论及概述2、MC10对于SN曲线的调整&#xff08;囊括NC、HPC、UHPC&#xff09;2.1 疲劳失效曲面的构建2.2 新模型的验证 3、MC10对于疲劳设计强度的调整及其背后的原因4. 结语 0. 背景 今年年初&#xff0c;有一位用UHPC做混凝土塔筒的同行告诉我&#xf…

多平台1688、淘宝、京东搜索商品聚合接口,示例返回值说明

多平台根据关键词取商品列表 API 返回值说明 item_search-根据关键词取商品列表 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;Taobao。拼多多。京东&#xff0c;1688API 接口测试secretString是调用密钥api_nameString是A…

Deep Learning With Pytorch - 最基本的感知机、贯序模型/分类、拟合

文章目录 如何利用pytorch创建一个简单的网络模型&#xff1f;Step1. 感知机&#xff0c;多层感知机&#xff08;MLP&#xff09;的基本结构Step2. 超平面 ω T ⋅ x b 0 \omega^{T}xb0 ωT⋅xb0 or ω T ⋅ x b \omega^{T}xb ωT⋅xb感知机函数 Step3. 利用感知机进行决策…

我们为什么需要API管理系统?

我们为什么需要API管理系统&#xff1f; 随着web技术的发展&#xff0c;前后端分离成为越来越多互联网公司构建应用的方式。前后端分离的优势是一套Api可被多个客户端复用&#xff0c;分工和协作被细化&#xff0c;大大提高了编码效率&#xff0c;但同时也带来一些“副作用”:…

stm32g070的PD0/PD2 PA8和PB15

目前在用STM32G070做项目&#xff0c;其中PD2TIMER3去模拟PWM&#xff0c;PD0用作按键检测&#xff0c;测试发现PD0低电平检测没有问题&#xff0c;高电平检测不到&#xff0c;电路图如下图所示&#xff1a; 用万用表测试电平&#xff0c;高电平1.0V左右&#xff0c;首先怀疑硬…

高级SQL分析函数-窗口函数

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 SQL语句中&#xff0c;聚合函数在统计业务数据结果时起到了重要作用&#xff0c;…

nginx keepalived 本地二进制部署

文章目录 安装 nginx安装 keepalived卸载 nginx卸载 keepalived 安装 nginx wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -xf nginx-1.24.0.tar.gz cd nginx-1.24.0/ ./configure --with-stream --prefix/usr/local/nginx make && make install修改nginx…

关于ChatGPT抽样调查:78%的人用于搜索,30%的人担心因它失业

人工智能早已不再被视为未来科技&#xff0c;而是越来越多地应用在时下人们的生活之中。根据DECO PROTESTE的调查&#xff0c;大约72%的葡萄牙人认为人工智能已经活跃于他们的日常。[1] 随着ChatGPT对各个行业的影响&#xff0c;也引发了人们关于这种人工智能模型潜力的争论&a…

【LeetCode】543.二叉树的直径

题目 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,4,5]…

pwm接喇叭搞整点报时[keyestudio的8002模块]

虽然现在查看时间很方便&#xff0c;但是其实好像我的时间观念却越来越差。于是决定搞一个整点报时&#xff0c;时常提醒自己时光飞逝&#xff0c;不要老是瞎墨迹。 这篇主要讲一下拼装方式和配置&#xff0c;就差不多了。不涉及什么代码。3针的元器件&#xff0c;去掉正负接线…