火山引擎DataLeap的Data Catalog系統公有云實踐

更多技術交流、求職機會,歡迎關注字節跳動數據平臺微信公眾號,回復【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.pswp.cn/news/37842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37842.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37842.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自然數的拆分問題

題目描述 任何一個大于 11 的自然數 n,總可以拆分成若干個小于 n 的自然數之和。現在給你一個自n,要求你求出 n 的拆分成一些數字的和。每個拆分后的序列中的數字從小到大排序。然后你需要輸出這些序列,其中字典序小的序列需要優先輸出。 輸…

搭建openGauss 5.0 一主一從復制集群

openGauss是一款支持SQL2003標準語法,支持主備部署的高可用關系型國產數據庫。 多種存儲模式支持復合業務場景,新引入提供原地更新存儲引擎。NUMA化數據結構支持高性能。Paxos一致性日志復制協議,主備模式,CRC校驗支持高可用。支…

設置返回列表元素上限

我正在「拾陸樓」和朋友們討論有趣的話題,你?起來吧?拾陸樓知識星球入口 在get_cell ,get_nets,get_xx等操作時返回的值上限是100,后面的就用...省略了,如果要修改這個上限,需要用下面命令: s…

設計模式之七大原則

👑單一職責原則 單一職責原則告訴我們一個類應該只有一個責任或者只負責一件事情。 想象一下,如果一個類承擔了太多的責任,就像一個人同時負責做飯、洗衣服和打掃衛生一樣,那么這個類會變得非常復雜,難以理解和維護。而…

一些Git Repo

文章目錄 Fake-TcpWow Fishing Script模擬券商柜臺 Fake-Tcp Fake-Tcp 自己寫的一個偽裝包測試。 嘗試把UDP的包偽裝成TCP包,再發送到Internet Wow Fishing Script 魔獸世界釣魚腳本 自己寫的魔獸世界釣魚腳本,10.0初期釣魚成功率90%以上。現在關服了…

基于Spring Boot的高校圖書館管理系統的設計與實現(Java+spring boot+MySQL)

獲取源碼或者論文請私信博主 演示視頻: 基于Spring Boot的高校圖書館管理系統的設計與實現(Javaspring bootMySQL) 使用技術: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java sp…

關于ChatGPT抽樣調查:78%的人用于搜索,30%的人擔心因它失業

人工智能早已不再被視為未來科技,而是越來越多地應用在時下人們的生活之中。根據DECO PROTESTE的調查,大約72%的葡萄牙人認為人工智能已經活躍于他們的日常。[1] 隨著ChatGPT對各個行業的影響,也引發了人們關于這種人工智能模型潛力的爭論&a…

c++模板的原理與使用

C中實現代碼復用有兩個方式:類的繼承(即實現了多態),以及模板的使用。這里介紹的模板的知識。 模板的目的: 同樣的代碼適用于不同類型下的使用,實現代碼的復用目的。 模板的原理: 編譯階段&am…

Cygwin 配置C/C++編譯環境以及如何編譯項目

文章目錄 一、安裝C、C編譯環境需要的包1. 選擇gcc-core、gcc-g2. 選擇gdb3. 選擇mingw64下的gcc-core、gcc-g4. 選擇make5. 選擇cmake6. 確認更改7. 查看包安裝狀態 二、C、C 項目編譯示例step1:解壓縮sed-4.9.tar.gzstep2:執行./configure生成Makefile…

shell之正則表達式及三劍客grep命令

一、正則表達式概述 什么是正則表達式? 正則表達式是一種描述字符串匹配規則的重要工具 1、正則表達式定義: 正則表達式,又稱正規表達式、常規表達式 使用字符串描述、匹配一系列符合某個規則的字符串 正則表達式 普通字符: 大小寫字母…

opencv視頻截取每一幀并保存為圖片python代碼CV2實現練習

當涉及到視頻處理時,Python中的OpenCV庫提供了強大的功能,可以方便地從視頻中截取每一幀并將其保存為圖片。這是一個很有趣的練習,可以讓你更深入地了解圖像處理和多媒體操作。 使用OpenCV庫,你可以輕松地讀取視頻文件&#xff0…

判斷推理 -- 圖形推理 -- 位置規律

一組圖:從前往后找規律。 二組圖:從第一組圖找規律,第二組圖應用規律。 九宮格: 90%橫著看找規律,第一行找規律,第二行驗證規律,第三行應用規律。 所有有元素組成都是線,三角形&…

面試熱題(驗證二叉搜索樹)

給你一個二叉樹的根節點 root ,判斷其是否是一個有效的二叉搜索樹。 有效 二叉搜索樹定義如下: 節點的左子樹只包含 小于 當前節點的數。節點的右子樹只包含 大于 當前節點的數。所有左子樹和右子樹自身必須也是二叉樹 二叉樹滿足以上3個條件&#xff0c…

spark的使用

spark的使用 spark是一款分布式的計算框架,用于調度成百上千的服務器集群。 安裝pyspark # os.environ[PYSPARK_PYTHON]解析器路徑 pyspark_python配置解析器路徑 import os os.environ[PYSPARK_PYTHON]"D:/dev/python/python3.11.4/python.exe"pip inst…

喜盈門、夢百合競相入局,智能床墊起風了

配圖來自Canva可畫 現代人的生活壓力普遍大,熬夜、失眠是常有的事,提高睡眠質量十分的重要。近些年來,市面上出現了許多輔助睡眠的產品,比如香薰、褪黑素、蒸汽眼罩、降噪耳塞、助眠枕、睡眠監測app等助眠神器。可以說為了睡個好…

【CLion + ROS2】在 clion 中編譯調試 ros2 package

目錄 0 背景1. 命令行編譯 ros2 package2. 使用 clion 打開 ros2 工程3. 使用 clion 編譯整個 ros2 工程3.1 使用 clion 的 external tool 配置 colcon build3.2 開始編譯 dev_ws 工程3.3 編譯結果: 4. 調試單獨的 ros2 package4.1 創建 ros2 package 的獨立的 colc…

【Git】版本控制器詳解之git的概念和基本使用

版本控制器git 初始Gitgit的安裝git的基本使用初始化本地倉庫配置本地倉庫三區協作添加---add修改文件--status|diff版本回退--reset撤銷修改刪除文件 初始Git 為了能夠更?便我們管理不同版本的?件,便有了版本控制器。所謂的版本控制器,就是?個可以記…

yolo源碼注釋2——數據集配置文件

代碼基于yolov5 v6.0 目錄: yolo源碼注釋1——文件結構yolo源碼注釋2——數據集配置文件yolo源碼注釋3——模型配置文件yolo源碼注釋4——yolo-py 數據集配置文件一般放在 data 文件夾下的 XXX.yaml 文件中,格式如下: path: # 數據集存放路…

基于ssm+vue的新能源汽車在線租賃管理系統源碼和論文PPT

基于ssmvue的新能源汽車在線租賃管理系統源碼和論文PPT010 開發環境: 開發工具:idea 數據庫mysql5.7(mysql5.7最佳) 數據庫鏈接工具:navcat,小海豚等 開發技術:java ssm tomcat8.5 摘 要 隨著科學技術的飛速發展&#xff0…