《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,全書共分10章,第1章主要讓讀者認識資料資產,瞭解資料資產相關的基礎概念,以及資料資產的發展情況。第2~8章主要介紹大資料時代資料資產管理所涉及的核心技術,內容包括後設資料的採集與儲存、資料血緣、資料質量、資料監控與告警、資料服務、資料許可權與安全、資料資產管理架構等。第9~10章主要從實戰的角度介紹資料資產管理技術的應用實踐,包括如何對後設資料進行管理以發揮出資料資產的更大潛力,以及如何對資料進行建模以挖掘出資料中更大的價值。
圖書介紹:資料資產管理核心技術與應用
今天主要是給大家分享一下第五章的內容:
第五章的標題為資料服務
內容思維導圖如下:
在資料資產中,資料服務是對外提供使用和訪問的一種最重要的形式,資料只有提供對外的訪問,才能體現其自身的價值。而且有了資料服務後也可以降低外部業務或者使用者使用資料的門檻,對於使用者來說提供瞭如下的便利。
- 不需要使用者自己花時間從資料資產中去檢索資料。
- 不要使用者自己考慮怎麼來獲取自己已經檢索到的資料。
- 不需要考慮獲取資料時的網路安全等問題。
- 資料服務可以複用於多個使用者和業務。
- 使用者不需要關注技術細節,可以專注於資料服務的具體需求。
另外資料質量以及資料的監控與告警,會直接決定資料服務的質量,因為如果資料質量低下以及資料在存在問題時不能及時得到監控與告警,這樣資料服務被使用者訪問時,就無法獲取到準確的資料。
《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
1、如何設計資料服務
在傳統的API介面服務中,通常會面臨如下的一些問題:
- 一個普通的介面服務通常需要資料ETL開發工程師按照資料產品經理提供的業務邏輯進行資料處理加工得到最終的結果資料,然後再由後端開發工程師開發介面服務,並且輸出介面服務的文件,之後再讓業務透過介面來獲取最終的結果資料。由於經過的環節很多,導致時間週期一般需要很長,如下圖所示。
- 當業務眾多時,對外輸出的資料介面服務勢必也會很多,隨著人員的交替、資料需求邏輯的變更等,資料服務的管理會非常困難,需要維護的介面數量越來越多,運維成本非常大。
- 通常在時間久了後,由於業務方以及資料服務開發和運維人員的交替,會遇到每個資料服務有哪些業務在呼叫、每個業務的呼叫量有多少、資料服務在變更和升級時,需要通知到哪些業務等眾多繁瑣的問題。
所以資料服務的設計非常的重要,在設計時,通常需要考慮如下問題:《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
- 資料服務的敏捷化和可配置化:敏捷化是指資料服務可以隨著業務需求的變化,能快速的進行修改和變更。可配置化是指資料服務不需要使用太多的程式碼開發,而是根據配置SQL查詢邏輯、配置請求的入參和響應報文,就能快速生成一個對外使用的資料服務。
- 資料服務API文件可自動生成:能根據資料服務的請求入參和響應報文,自動生成API文件,不需要後端開發工程師每次手動進行編寫,而且手動編寫文件還極易出錯,並且每次變更時都需要及時更新和維護。
- 資料服務的流程化管理:流程化管理是指可以在一個平臺上完成資料服務呼叫的申請、審批、開發、上線、監控、告警等環節,方便資料服務的運維與管理。
- 資料服務的統一鑑權設計:所有的資料服務採用相同的統一鑑權方式,方便以後的運維和管理。
- 資料服務的效能以及熔斷:效能是資料服務最重要的一項指標,因為如果效能不達標的話,那就無法滿足業務的查詢要求。熔斷是指當資料服務的呼叫量過大或者發生了大量異常時,為了保護資料服務的整體穩定性,而觸發的一種降級機制。
- 資料服務的監控與告警:資料服務在發生問題時,能透過監控與告警及時讓運維或者開發人員進行處理,降低資料服務的問題給業務帶來的影響。資料服務如果自身沒有監控與告警,在發生問題時,可能就需要透過業務使用時主動來報出服務不可用的問題。
為了解決上述的問題,在大資料資產中,一般建議對資料服務進行平臺化設計。開發一個資料服務API 通常的流程如下圖所示。《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
上述的這些流程,在做資料服務的平臺化設計時,都可以考慮進去,這樣透過平臺化的管理,就可以達到資料服務的敏捷化開發以及開發時可以基於平臺快速配置來生成外部訪問需要的資料服務節省人力的成本開銷以及縮短開發的週期。《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
在平臺化的統一管理下,自然就可以在建立資料服務或者變更資料服務時,自動來生成API文件。也可以對資料服務進行統一的鑑權以及監控與告警。
1.1、資料來源管理
資料來源是資料服務的基礎,沒有資料來源,自然也就無法提供資料服務。資料來源的來源可以是多種多樣的。資料倉儲、資料湖、常見的各種型別的關係型資料庫等都可以是資料服務的資料來源。而且建立好的一個資料來源也可以讓多個資料服務共同使用,如下圖所示。
在資料服務的平臺化建設中,資料來源管理的關鍵就在於需要去適配多種不同的資料來源,而每一種資料來源通常都有自己專有的資料驅動。所以資料服務平臺在底層技術實現時需要能支援動態的去根據不同的資料來源載入不同的資料驅動來達到建立資料來源連線的目的,如下圖所示。
1.2、 資料服務的敏捷化和可配置化
資料服務的敏捷化和可配置化主要體現在能隨著業務需求的變化而快速的開發、修改對應的資料服務。而要達到快速響應需求的提出或者變更,將資料服務設計成能配置SQL查詢邏輯或者低程式碼的邏輯指令碼、能配置請求的入參和響應報文便是一種最好的解決方式,如下圖所示為建議的資料服務可配置的技術實現方案設計。《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
從圖中可以看到
- 在建立資料服務時,填入的請求引數,需要和SQL查詢指令碼中的查詢條件對應上。
- 建立的資料服務在儲存時,需要將引數和SQL查詢指令碼都儲存到資料庫表中,在設計時,會設計兩張表,一張表用於儲存資料服務的相關資訊,一張表用於儲存資料服務對應的資料引數資訊。建立資料服務時,資料服務平臺會自動生成一個唯一的API服務ID,兩張表之間透過API服務ID進行關聯。
資料服務在建立好了後,外部使用者在呼叫資料服務時,資料服務平臺處理請求的邏輯如下圖所示。《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
1.3、 資料服務文件的自動生成
資料服務在支援了可配置化之後,還需要能自動生成資料服務的API文件,這樣外部使用者在呼叫資料服務的API時,就知道如何去呼叫了。由於資料服務的請求引數、服務ID等資訊都已經儲存在資料服務平臺中了,所以透過從資料服務平臺中把這些資料資訊查詢出來,按照API文件的格式展示出來就可以了,如下圖所示。
從圖中可以看到,由於資料服務平臺中儲存了資料服務每次修改變更的資訊,所以在自動生成出的資料服務文件中,還可以將該資料服務的歷史變更記錄也展示出來,可以看到自動生成出來的資料服務文件和通常手動編寫的那種介面服務文件的內容幾乎是一致的。
1.4、資料服務的統一認證與鑑權
資料服務在建立好了後,在呼叫時必定需要認證,不然就無法保證服務的安全性,也無法防止網路機器人或者駭客等發起的頻繁惡意的請求或者攻擊等。傳統的認證通常是透過密碼來完成的,給每個請求方分配一個唯一的密碼,然後請求時,每次都帶上這個密碼,如果密碼正確,那麼就可以完成請求的呼叫,如下圖所示。《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
但是這種簡單的認證方式會面臨如下問題:
- 安全性太低,密碼容易丟失或者被別人使用。
- 通常情況下,很多資料服務都是支援Http協議,但是Http請求非常容易被劫持,一旦被劫持後,就可以從攔截到的請求中獲取到密碼,這樣別人就可以用這個密碼來傳送請求或者直接篡改劫持到的請求,造成惡意的攻擊。
為了解決上述的問題,通常推薦使用數字簽名的方式來完成資料服務的統一認證,如下圖所示,數字簽名通常採用非對稱的密碼的方式(也稱為公私鑰機制),請求方透過私鑰對請求的報文進行加密。資料服務平臺透過使用該私鑰對應的公鑰進行解密。
從圖中可以看到請求方需要先對資料生成摘要,然後再用私鑰加密後,生成加密的摘要,然後將資料和加密的摘要一起傳送給資料服務平臺,資料服務平臺在收到資料和加密後的摘要後,先對加密後的摘要使用對應的公鑰進行解密得到解密後的摘要,並且對傳送過來的資料也重新生成摘要,如果生成出來的摘要和解密後的摘要一致,說明資料在傳輸過程中沒用被更改。資料簽名的認證方式可以有效的防止請求被劫持從而發生篡改。
在服務認證時,還可以加入網路認證,這樣可以有效的攔截非正常呼叫的請求,最常見的網路認證的方式就是在網路中設定白名單,如下圖所示。《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著
從圖中可以看到,資料服務首先就會判斷請求方的IP地址是否在白名單內,如果不在就可以直接返回。
在服務認證透過後,就可以進行下一步的鑑權操作了,資料服務平臺在設計時,通常會給每個請求方分配唯一的身份ID(通常也稱作appId),資料服務平臺在收到該唯一身份ID後,會判斷其是否有呼叫該資料服務的許可權,如下圖所示,如果沒用許可權,那麼就直接返回並且給出對應的提示資訊。
未完待續......《資料資產管理核心技術與應用》是清華大學出版社出版的一本圖書,作者為張永清等著