自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

騰訊大數(shù)據(jù)多引擎統(tǒng)一元數(shù)據(jù)和權(quán)限管理的探索

大數(shù)據(jù) 數(shù)據(jù)湖
本文介紹了騰訊大數(shù)據(jù)多引擎統(tǒng)一元數(shù)據(jù)和權(quán)限管理的探索。TBDS的全稱是騰訊大數(shù)據(jù)處理套件,它是一個(gè)基于 Hadoop 生態(tài)以及 MPP 生態(tài)的大數(shù)據(jù)平臺(tái)。

一、騰訊大數(shù)據(jù)處理套件

TBDS的全稱是騰訊大數(shù)據(jù)處理套件,它是一個(gè)基于 Hadoop 生態(tài)以及 MPP 生態(tài)的大數(shù)據(jù)平臺(tái)。我們主要有以下的四種應(yīng)用場(chǎng)景:大數(shù)據(jù)的批流的處理,云原生的數(shù)據(jù)湖,湖倉(cāng)一體,以及國(guó)產(chǎn)化的數(shù)據(jù)中臺(tái)。

圖片

下面是我們的一些客戶,大家可以看到種類非常多,有金融類的、產(chǎn)業(yè)類的,還有傳媒以及政府。不同用戶的業(yè)務(wù)場(chǎng)景差別非常大,數(shù)據(jù)規(guī)模、集群規(guī)模的差別也非常大。他們對(duì)于大數(shù)據(jù)如何使用,對(duì)于數(shù)據(jù)服務(wù)的要求也非常的不一樣。

圖片

下圖是金融場(chǎng)景的一個(gè)典型的技術(shù)方案:業(yè)務(wù)數(shù)據(jù)通過(guò)實(shí)時(shí)鏈路和離線鏈路進(jìn)入大數(shù)據(jù)平臺(tái)。在大數(shù)據(jù)平臺(tái)中有兩種類型的集群。第一類是事件中心集群,也可以叫實(shí)時(shí)計(jì)算中心集群;經(jīng)過(guò) Kafka、Flink數(shù)據(jù)處理之后再進(jìn)入 Hive和 Elasticsearch,然后對(duì)外圍的系統(tǒng)提供數(shù)據(jù)服務(wù)。另一類是離線計(jì)算集群,主要負(fù)責(zé)數(shù)據(jù)的批處理。

圖片

整個(gè)大數(shù)據(jù)平臺(tái)是基于 Hadoop生態(tài)搭建的;得益于 Hadoop生態(tài)的繁榮,基本上每種特定的需求都可以找到合適的計(jì)算存儲(chǔ)組件來(lái)滿足。

除了 Hadoop,我們還提供基于 MPP的技術(shù)方案,它對(duì)于中小體量的客戶更加合適?;?nbsp;MPP的來(lái)搭建數(shù)據(jù)平臺(tái),實(shí)時(shí)鏈路以及離線鏈路的數(shù)據(jù)都進(jìn)入 MPP,然后來(lái)統(tǒng)一加工處理,最后也是由 MPP統(tǒng)一對(duì)外提供數(shù)據(jù)服務(wù)。

圖片

Hadoop還是 MPP?這兩個(gè)生態(tài)之間的對(duì)比,其實(shí)業(yè)界已經(jīng)討論非常多了。隨著各自的發(fā)展,我相信相關(guān)的討論也會(huì)一直持續(xù)下去。例如對(duì) Iceberg這樣的數(shù)據(jù)湖表格式的支持,目前無(wú)論是 Spark還是 ClickHouse,都在做軍備競(jìng)賽,現(xiàn)在的結(jié)論過(guò)兩三個(gè)月可能就過(guò)時(shí)了。

圖片

但是有一點(diǎn)是肯定的,沒(méi)有一個(gè)單獨(dú)的生態(tài),能夠解決所有用戶的所有問(wèn)題。這種情況會(huì)持續(xù)很長(zhǎng)的一段時(shí)間。即便現(xiàn)在已經(jīng)是 2024 年了,很多客戶他們的數(shù)據(jù)平臺(tái)已經(jīng)持續(xù)建設(shè)了很長(zhǎng)的一段時(shí)間,多種集群、多種類型、多種版本的大數(shù)據(jù)系統(tǒng),它們的共存是我們會(huì)經(jīng)常遇到的一個(gè)問(wèn)題。所以必然我們會(huì)遇到這么一個(gè)問(wèn)題:如何來(lái)處理數(shù)據(jù)孤島--不同的系統(tǒng)之間的數(shù)據(jù)該如何互通。

二、如何處理數(shù)據(jù)孤島

我們都知道,如果是要做數(shù)據(jù)遷移、做 ETL,是一件成本非常高的事情。有的時(shí)候可以接受,但有的時(shí)候是很難去承擔(dān)這樣的成本的。

圖片

目前其實(shí)已經(jīng)有一個(gè)可以跑通的技術(shù)方案,就是利用 Hive Metastore 作為統(tǒng)一的元數(shù)據(jù)中心。在圖的右邊是 MPP 的服務(wù),在使用外表的模式下,它們可以使用 Hive Metastore 作為數(shù)據(jù)來(lái)源。左邊是 Hadoop 生態(tài)下的計(jì)算引擎,它們基本上都會(huì)默認(rèn)使用 Hive Metastore 作為它們的元數(shù)據(jù)服務(wù)。

在這樣一個(gè)統(tǒng)一的元數(shù)據(jù)服務(wù)的情況下,再加上支持如 Iceberg 這樣的表格式,提供統(tǒng)一的元數(shù)據(jù)的格式,基本上問(wèn)題可以得到解決。這也是目前很多私有化場(chǎng)景下湖倉(cāng)一體、湖上建倉(cāng)的技術(shù)基礎(chǔ)。

在上面的方案中,Hive Metastore 是絕對(duì)的核心,然而 Hive Metastore 本身還是有很多的局限性的。首先 Hive Metastore 是一個(gè)單純的元數(shù)據(jù)技術(shù)和服務(wù),基本上沒(méi)有任何的治理能力。其次它的元數(shù)據(jù)模型完全是關(guān)系型的數(shù)據(jù)庫(kù)模型,對(duì)于像 Message、Topic、文件,以及 AI 模型這類半結(jié)構(gòu)化、非結(jié)構(gòu)化的數(shù)據(jù)基本是不匹配的。而且它的服務(wù)設(shè)計(jì)也沒(méi)有考慮到要承擔(dān)如此重要的任務(wù),所以有很明顯的單點(diǎn)瓶頸。

圖片

在一個(gè)多集群的場(chǎng)景下面,它的方案會(huì)非常的復(fù)雜,但至少它還是可以跑的。那么數(shù)據(jù)孤島看上去是有方案了,但是權(quán)限怎么辦?Hadoop,還有 Hive Metastore,它本身也有一套比較簡(jiǎn)陋的權(quán)限模型,但是基本沒(méi)有計(jì)算引擎來(lái)使用它,更別說(shuō) MPP 引擎了。

圖片

因此,如果沒(méi)有一個(gè)統(tǒng)一的權(quán)限中心,單個(gè)資源的授權(quán)就需要在每一個(gè)子系統(tǒng)上面再重復(fù)地授權(quán)一遍,步驟非常繁瑣,并且很容易出錯(cuò)。在 Hadoop生態(tài)下,Ranger是一個(gè)權(quán)限中心,它的機(jī)制是有點(diǎn)像 OPA (open policy agent),整個(gè)權(quán)限策略被 Manager統(tǒng)一的管理,然后各個(gè)計(jì)算引擎使用各自的 Plugin 進(jìn)行授權(quán)。但是它的權(quán)限模型存在一定的問(wèn)題。最重要的問(wèn)題是它頂層設(shè)計(jì)的概念并不是以數(shù)據(jù)來(lái)劃分的,而是以服務(wù)組件來(lái)劃分的,不同的組件,如果要訪問(wèn)同樣的數(shù)據(jù),那么需要重復(fù)的授權(quán),而且這只是當(dāng)前 Hadoop生態(tài)的一個(gè)方案,MPP生態(tài)基本是沒(méi)有權(quán)限管理。

圖片

我們其實(shí)也看到主流的云廠商基本提供了相關(guān)的產(chǎn)品來(lái)解決數(shù)據(jù)孤島以及權(quán)限孤島的問(wèn)題。這樣的解決方案一般都會(huì)被包裝成為數(shù)據(jù)湖產(chǎn)品的一部分,例如 AWS的 Lake Formation,Databricks的 Unity Catalog,此外 Microsoft和 Google也有自己的產(chǎn)品。但是對(duì)于這樣的商業(yè)公司所主導(dǎo)的產(chǎn)品,他們也有自己的局限性。

圖片

首先是對(duì)于計(jì)算引擎的支持比較少,也缺少私有云、尤其是非云化環(huán)境的部署方案。并且它們對(duì)于云廠商本身的依賴程度非常深。

圖片

因此,我們需要一個(gè)更加統(tǒng)一、更加清晰、同時(shí)也更加開放的產(chǎn)品,來(lái)更好地解決數(shù)據(jù)孤島以及權(quán)限孤島的問(wèn)題。騰訊云和Datastrato一起,基于 Gravitino 的開源社區(qū)來(lái)合作,希望能夠解決這樣的問(wèn)題。

圖片

三、Gravitino 能做什么

我來(lái)簡(jiǎn)單的介紹一下 Gravitino,它是一個(gè)使用 Apache License v2.0許可證的開源統(tǒng)一元數(shù)據(jù)服務(wù),全面支持公有云、私有云以及非云環(huán)境的部署。它可以為多種的數(shù)據(jù)源提供統(tǒng)一的元數(shù)據(jù)視圖,并且提供了標(biāo)準(zhǔn)的 SDK,可以開放的支持多種計(jì)算引擎的接入。

圖片

此外很重要的一點(diǎn)是,Gravitino提供了一個(gè)統(tǒng)一的、開放的權(quán)限管控機(jī)制。統(tǒng)一指的是統(tǒng)一的授權(quán):對(duì)于所有的數(shù)據(jù)源,可以使用統(tǒng)一的模型和流程來(lái)進(jìn)行授權(quán);開放指的是開放的接入:對(duì)于數(shù)據(jù)源可以使對(duì)于各種計(jì)算引擎包括 MPP,以及存儲(chǔ),都能接入這樣的權(quán)限模型,完成權(quán)限的管控。

圖片

四、Gravitino 的統(tǒng)一權(quán)限模型

對(duì)于數(shù)據(jù)系統(tǒng)來(lái)說(shuō),它的權(quán)限設(shè)計(jì)至關(guān)重要。但是現(xiàn)在的大部分企業(yè)的數(shù)據(jù)系統(tǒng)有很多種類型,有 MPP類型,也有一些在線的例如 MySQL、PostgreSQL這樣的數(shù)據(jù)庫(kù),以及 Hadoop上的 HDFS、Spark、Hive等的大數(shù)據(jù)組件。這些的數(shù)據(jù)系統(tǒng)帶來(lái)了異構(gòu)的數(shù)據(jù)棧,對(duì)于目前的一些權(quán)限的設(shè)計(jì),就很難有統(tǒng)一的權(quán)限入口來(lái)做統(tǒng)一的管理。

對(duì)于企業(yè)來(lái)說(shuō),這樣的情況對(duì)于它構(gòu)建自己的數(shù)據(jù)生態(tài)帶來(lái)了很大的不便。為此,在計(jì)算機(jī)系統(tǒng)里有這樣一句話:沒(méi)有任何問(wèn)題不是可以通過(guò)加一層來(lái)解決的。在去年的時(shí)候,我們公司開源了 Gravitino這樣一款元數(shù)據(jù)管理軟件,用于解決這種跨數(shù)據(jù)棧的元數(shù)據(jù)管理。我為大家主要講一下 Gravitino的權(quán)限模型。

圖片

首先我介紹一下權(quán)限模型,業(yè)界比較常見(jiàn)的權(quán)限模型有 ABAC、RBAC等等,但是目前還是以 RBAC為主。Gravitino在這塊兒也是采用了 RBAC的權(quán)限模型。

首先我們可以看出這張圖里有幾個(gè)概念,第一個(gè)概念就是 Metalake。第二個(gè)是 Role,第三個(gè)是 User。

對(duì)于 Metalake 來(lái)說(shuō),我們可以把它看作是一個(gè)組織;一般來(lái)說(shuō),一個(gè)企業(yè)就是一個(gè) Metalake,它只有一個(gè)組織。在 Metalkae 下面會(huì)掛載 Role 以及 User。

Role主要是我們權(quán)限模型中用來(lái)管理權(quán)限的核心概念,它會(huì)綁定具體的一些權(quán)限。Role是實(shí)體的具體的某些權(quán)限的集合。在實(shí)際的使用的過(guò)程中會(huì)把 Role授權(quán)給 User,Role和 User是多對(duì)多的關(guān)系,可以去進(jìn)行比較靈活的綁定。

講完了權(quán)限模型,我介紹一下統(tǒng)一權(quán)限的系統(tǒng)架構(gòu)。Gravitino的權(quán)限大概可以分為兩部分:第一部分是,它對(duì)于自身會(huì)有內(nèi)建的鑒權(quán),主要負(fù)責(zé)對(duì)于自身管理的一部分的元數(shù)據(jù)進(jìn)行鑒權(quán),比如說(shuō) Metalake 的一些鑒權(quán),比如說(shuō)自有的一些數(shù)據(jù)實(shí)體的鑒權(quán)。同時(shí)它還提供了強(qiáng)大的插件機(jī)制,用來(lái)對(duì)接一些外部系統(tǒng)的權(quán)限。

圖片

目前權(quán)限插件會(huì)有四類,第一類是 Native Catalog的權(quán)限插件,主要用于大數(shù)據(jù)生態(tài)的權(quán)限鑒權(quán),這主要是考慮了一些用戶,他們不想引入類似于 Ranger這種額外的大數(shù)據(jù)權(quán)限管理組件,進(jìn)行簡(jiǎn)便的一些數(shù)據(jù)權(quán)限的管理。

第二類是正就像前面徐瀟所說(shuō)的,在大數(shù)據(jù)體系當(dāng)中,Ranger是一個(gè)比較主流的權(quán)限管理系統(tǒng)。這里會(huì)提供 Ranger的 Catalog的權(quán)限鑒權(quán)的插件,然后通過(guò)它來(lái)去對(duì)大數(shù)據(jù)的體系進(jìn)行整體的權(quán)限管控。

第三類是對(duì)于 MPP、數(shù)據(jù)庫(kù)這類系統(tǒng),它們一般會(huì)提供 JDBC 接口。我們會(huì)對(duì)這樣的系統(tǒng)來(lái)提供 JDBC Catalog鑒權(quán)的插件,來(lái)對(duì)這樣的系統(tǒng)進(jìn)行權(quán)限的管控。

第四類是對(duì)于很多的云上的生態(tài),比如 AWS、Azure,它們會(huì)有像 IAM這樣的權(quán)限管理系統(tǒng)。對(duì)于這種我們會(huì)提供云的 Cloud Catalog的鑒權(quán)插件。

整體的來(lái)說(shuō),Gravitino是通過(guò)自建的鑒權(quán)機(jī)制,以及結(jié)合豐富的外部鑒權(quán)插件機(jī)制,來(lái)實(shí)現(xiàn)對(duì)權(quán)限機(jī)制的統(tǒng)一。

在這個(gè)過(guò)程中 Gravitino對(duì)外暴露 RESTful的 API接口,然后將用戶的各種權(quán)限設(shè)置的請(qǐng)求,通過(guò)自身的邏輯以及模型的轉(zhuǎn)換,通過(guò)插件透?jìng)鹘o下游的各種不同的數(shù)據(jù)生態(tài),從而達(dá)到讓 Gravitino成為權(quán)限入口的效果。

接下來(lái)可以看這張圖,來(lái)結(jié)合具體的例子給大家分享 Gravitino的授權(quán)過(guò)程。

圖片

可以看到,左邊是認(rèn)證 Server,會(huì)支持三種認(rèn)證服務(wù)。第一種是 OAuth的認(rèn)證,第二種是 Kerberos認(rèn)證,Kerberos認(rèn)證在大數(shù)據(jù)的生態(tài)用得會(huì)比較多一點(diǎn);第三種是 IAM 認(rèn)證,對(duì)于云的系統(tǒng) IAM會(huì)使用得比較多。

整體會(huì)提供對(duì)用戶的認(rèn)證,然后是數(shù)據(jù)授權(quán)的過(guò)程。Gravitino 在參與的過(guò)程中會(huì)有三個(gè)角色:第一個(gè)角色是Service Admin,它的職責(zé)其實(shí)比較簡(jiǎn)單,就是創(chuàng)建 Metalake;第二個(gè)角色是 MetalakeAdmin,主要對(duì) Metalake下面的 Role的創(chuàng)建和管理,以及對(duì)各種權(quán)限的 Role的創(chuàng)建,并把這些 Role和具體的 User進(jìn)行綁定。第三個(gè)角色是普通 User,他可能是新加入的 User,負(fù)責(zé)具體的數(shù)據(jù)實(shí)體的創(chuàng)建,例如創(chuàng)建 Catalog、數(shù)據(jù)庫(kù)、表,然后讀取這些表。

在這個(gè)過(guò)程中,我們可以簡(jiǎn)單來(lái)看一下簡(jiǎn)單的創(chuàng)建 Catalog和之后創(chuàng)建表的過(guò)程。第一步是 Service Admin會(huì)去創(chuàng)建 Metalake,之后 Metalake admin會(huì)去創(chuàng)建 Role,然后創(chuàng)建需要具體使用的 User,然后去創(chuàng)建 Catalog,然后開通了Catalog的 Manager Role,去把 Catalog Manager Role賦予給 new user。New user就可以具體創(chuàng)建 Catalog,例如可以創(chuàng)建 Hive Catalog,創(chuàng)建 MySQL Catalog。這個(gè)時(shí)候 Metalake admin可以去創(chuàng)建 Hive的 Schema Manager,把Schema Manager授予給 new user,然后 new user就可以創(chuàng)建 Schema。之后 Metalake admin可以創(chuàng)建Hive Table的 Manager role,再把 Hive Table的 Manager role授予給 new user,就可以具體去去創(chuàng)建 Hive Table。

對(duì)于 MySQL也是同樣的,會(huì)去創(chuàng)建Catalog、Table。當(dāng) Hive catalog 以及 MySQLCatalog和 HiveTable都創(chuàng)建完之后,具體的 new user就可以讀取這兩個(gè)表。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2023-05-26 06:49:44

2024-03-04 11:10:01

2023-11-02 09:03:24

權(quán)限管理系統(tǒng)

2011-08-11 14:04:17

大數(shù)據(jù)

2024-10-08 08:27:22

2016-11-15 09:44:21

大數(shù)據(jù)批處理流處理

2016-12-28 14:43:46

京東數(shù)據(jù)庫(kù)架構(gòu)

2023-11-20 14:32:48

大數(shù)據(jù)企業(yè)

2024-09-23 19:53:27

數(shù)據(jù)飛輪數(shù)據(jù)驅(qū)動(dòng)數(shù)字化轉(zhuǎn)型

2013-06-18 10:09:20

智慧城市大數(shù)據(jù)

2017-11-01 14:29:38

2021-08-23 10:14:20

鴻蒙HarmonyOS應(yīng)用

2015-10-15 10:30:32

2015-06-11 10:09:04

大數(shù)據(jù)HBase

2023-08-07 09:00:00

2021-09-01 10:37:25

鴻蒙HarmonyOS應(yīng)用

2020-11-02 15:56:04

大數(shù)據(jù)數(shù)據(jù)庫(kù)技術(shù)

2013-07-31 09:20:07

大數(shù)據(jù)引擎云計(jì)算個(gè)性化搜索

2023-05-31 14:54:32

2022-08-01 14:15:17

大數(shù)據(jù)元宇宙
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)