案例分享:數據集市搭建方案中集成SQLFlow數據血緣分析工具

本文中描述的數據集市搭建方案是一家跨國公司在AWS平臺上的具體實踐案例。我公司參與其中的數據血緣部分的建設,SQLFlow數據血緣分析工具在該方案中幫助用戶實現了數據血緣分析。

用戶使用Redshift 數據庫倉庫進行數據集市開發。從各種數據源提取數據,并將數據存儲到AWS S3中,通過將S3中的數據映射到Redshift Spectrum實現對大規模數據的高效查詢,然后根據設計好的數據集市數據模型,將S3中的數據進行各種數據轉換和審查,最終將處理結果數據存儲到Redshift數據集市庫中,經過測試后數據集市上線運維。從數據準備到數據集市上線的整個開發流程如下圖所示:
在這里插入圖片描述
數據集市開發過程中涉及到多個環節,其中一些環節會產生數據血緣關系。數據血緣關系是指數據從源頭到目的地的整個流轉過程,包括數據的來源、經過的轉換、以及最終存儲的位置。在 AWS 平臺上,特別是使用 Redshift 數據庫進行數據集市開發時,理解和管理數據血緣關系對于確保數據質量、進行數據治理以及優化數據處理流程至關重要。

產生數據血緣關系的環節:

1、數據提取:從各種數據源提取數據到 S3 時,會產生數據的初步血緣關系,記錄了數據從源系統到 S3 的移動。

2、S3 到 Redshift Spectrum 的映射:將 S3 中的數據映射為 Redshift Spectrum 的外部表時,進一步定義了數據從 S3 到 Redshift 的流轉路徑。

3、數據轉換:在數據轉換過程中,原始數據會經過一系列的轉換操作,生成新的數據集。這一過程中產生的血緣關系記錄了數據如何被轉換以及轉換的邏輯。

4、數據加載:將轉換后的數據加載到 Redshift 的持久化表中,這一步驟也會產生數據血緣關系,記錄了數據從臨時表到持久化表的移動。

數據血緣分析方案設計:

1、采用SQLFlow的私有化部署版本作為數據血緣分析工具,通過REST API做系統集成。

2、定義血緣關系模型:首先需要定義一個數據血緣關系模型,明確記錄數據源、轉換步驟、目標表以及每個步驟的依賴關系。 模型定義時可以參考SQLFlow的dataflow對象,該對象定義了元數據和數據血緣關系包含的所有信息。

3、血緣數據的收集:在數據處理的每個環節,通過日志、元數據管理工具或編程方式收集數據血緣信息。由于用戶整個數據集市的開發都是圍繞Redshift數倉展開的,所以分析Redshift日志中的sql可以覆蓋所有數據血緣產生環節。另外為了保證血緣分析的準確性,還需要提取Redshift的metadata輔助分析。

4、血緣關系的存儲與管理:設計一個中心化的血緣關系數據庫或使用現有的數據目錄服務來存儲和管理血緣信息。用戶將數據血緣存儲到了Redshift庫中,并上傳到數據資產管理系統Alation進行管理。

數據血緣分析實施步驟:

1、集成血緣收集

a) 安裝SQLFlow私有化部署regular版本。

b) 使用sqlflow-ingester的submitter工具,每天定時自動執行一次增量的SQLFlow數據血緣分析。submitter會拉取最近30天的Redshift日志,并將日志文件中的sql提取出來存為后綴為sql的文本文件,同時submitter還會連接Redshift數據庫將完整的元數據提取出來存為metadata.json, 最后submitter將提取到的sql文件和metadata.json壓縮成一個zip包,遞交給SQLFlow做數據血緣分析。整個過程由submitter自動完成,無需人工干預。

2、血緣數據存儲

編寫Python腳本,每天凌晨定時執行,在腳本內調用SQLFlow的REST API查詢數據血緣分析結果,并將血緣數據轉成用戶的數據血緣關系格式,存入Redshift數據庫。同時上傳到Alation數據資產管理平臺。

3、實現血緣查詢與分析功能

通過集成SQLFLow的widget前端組件可以實現數據血緣可視化。用戶的數據資產管理是通過Alation實現,數據分析是通過商業智能BI軟件Qlik Sense實現。在這兩個系統中,點擊要查詢的表、視圖或者字段可以鏈接到一個widget生成頁面查看數據血緣。

用戶用到的數據血緣分析功能主要有:

a) to left most 當前表/視圖/字段的數據最初來自哪些表/視圖/字段。

b) up stream 當前表/視圖/字段的數據來自哪些表/視圖/字段。

c) down stream 當這個表/視圖/字段的數據發生變動時,會影響哪些表/視圖/字段。

d) outgoing 用戶在做報表查詢時,會用到一些表或視圖。需要通過分析SQL語句,列出這些給報表提供數據的表,并回溯到給這些表提供數據的數據集市表,通過數據集市表,可以繼續回溯到更早的源系統。

4.血緣信息的維護與更新

確保數據處理流程中的變更能夠及時反映到血緣信息中,定期審核和更新血緣數據庫,保持數據血緣信息的準確性和時效性。 編寫Python腳本,每日凌晨定時執行,腳本中會對數據的合法性進行校驗,校驗結果會自動發郵件到用戶運維人員電子郵箱。

實施后的系統拓撲圖如下所示:
在這里插入圖片描述
通過上述設計方案和實施步驟,可以有效地管理和分析數據集市開發過程中產生的數據血緣關系,從而提高數據質量,優化數據處理流程,并支持數據治理和合規性要求。

更多文章請關注微信公眾號:鳳鳴古都

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/39573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39573.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39573.shtml

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

相關文章

動態代理(通俗易懂)

程序為什么需要代理?代理長什么樣? 例子 梳理 代理對象(接口):要包含被代理的對象的方法 ---Star 被代理對象:要實現代理對象(接口) ---SuperStar 代理工具類:創建一個代理,返回值用代理對象&#xff0c…

羅克韋爾 AB 1756-OA16控制器 模塊 處理器

羅克韋爾 AB 1756-OA16該模塊是任何自動化系統的重要組成部分,提供對各種過程的精確控制。它被設計為易于安裝和使用,具有用戶友好的界面,允許簡單的配置和監控。 羅克韋爾 AB 1756-OA16控制器是一款為工業應用而設計的先進控制系統。它具有…

React快速入門-跟著AI學習react

React的快速入門可以遵循以下步驟進行,我將結合參考文章中的相關信息,以分點表示和歸納的形式給出詳細步驟: 一、React基礎知識了解 React的概念和特點: React是一個專注于構建用戶界面的JavaScript庫,采用聲明式設計…

python將多個文件夾里面的文件拷貝到一個文件夾中

網上可以搜到很多方式,有的好使,有的不好使,親測如下腳本可用,并可達到我想要的效果,只將多個文件夾里的文件拷貝到一個文件夾中,不拷貝文件夾本身,如果需要文件夾也拷貝打開注釋行即可 import…

初次使用GitHub教程入門

注冊一個github賬戶 訪問地址:https://github.com/,點擊右上角sign up,錄入以下信息,郵箱,密碼,賬號,會有郵箱驗證,跟著步驟來就好了 配置 本機上設置你的github的郵箱和用戶名 …

51-5 權限維持2 - 影子賬號(隱藏用戶)

權限維持技術 權限維持技術(Persistence,也稱為權限持久化)是一種能夠在系統重啟、用戶更改密碼或其他可能導致訪問中斷的情況下保持對系統訪問的技術。例如,它包括創建系統服務、利用計劃任務、修改系統啟動項或注冊表、以及映像劫持等方法。 創建影子賬戶 影子賬戶是指隱…

【管理咨詢寶藏139】某大型快消集團公司多渠道銷售管理體系方案

本報告首發于公號“管理咨詢寶藏”,如需閱讀完整版報告內容,請查閱公號“管理咨詢寶藏”。 【管理咨詢寶藏139】某大型快消集團公司多渠道銷售管理體系方案 【格式】PDF版本 【關鍵詞】羅蘭貝格、營銷咨詢、戰略規劃 【核心觀點】 - 銷售體系建設主要需…

谷粒商城學習-06-使用vagrant快速創建linux虛擬機

這一節的內容是在Windows上安裝虛擬機。 為什么要按照虛擬機呢? 原因是很多軟件只能在Linux下運行,有的雖然也可以在Windows上運行,但從安裝到運行會遇到很多問題,為這些解決這些問題花時間對于大多數人特別是初學者是沒有什么價…

數字人直播源碼開發全攻略揭秘:如何搭建自己的數字人直播平臺?

當前,數字人直播逐漸成為眾多中小型企業線上帶貨和品牌宣傳的不二之選,而艾媒研究數據也顯示,超五成以上的被調查群體的企業使用過虛擬人技術,超三成被調查群體的企業計劃使用虛擬人技術。在此背景下,越來越多的創業者…

android應用的持續構建CI(一)-- 總體設計

一、背景 接下里我希望通過一系列的文章,把android應用的構建梳理一遍,從總體設計到逐個環節的實現。 總體設計jenkins集成手動簽名依賴環境應用管理 二、構建流程圖 三、技術組件 jenkinsjdkgradle360加固 既然是android應用的持續構建&#xff0c…

記錄一次解決循環依賴

場景 寫權限模塊-登錄驗證這一塊的時候,遇到了一個比較有意思的問題,循環依賴: The dependencies of some of the beans in the application context form a cycle:userController defined in file xxx↓userServiceImpl defined in file xxxx ┌───…

Web3 開發者入門手冊:技能、工具和職業前景

原文:https://remote3.co/blog-post/how-to-become-a-web3-developer 作者:Paul Anderson 編譯:TinTinLand Web3 是 2024 年科技領域最受矚目的話題之一——Web3 令人激動的實用潛力可以跨越多個行業,早期采用者更有機會在未來…

TortoiseSVN 使用教程

TortoiseSVN 使用教程 1. 引言 TortoiseSVN 是一個開源的版本控制系統,它基于 Subversion(SVN)系統,為 Windows 操作系統提供了一套方便的圖形用戶界面。通過 TortoiseSVN,用戶可以輕松地管理文件的版本,進行團隊協作,以及跟蹤文件的變更歷史。本教程將詳細介紹 Torto…

亞馬遜云服務器的價格真的那么貴嗎?一年要花多少錢?

亞馬遜Web服務(AWS)作為全球領先的云計算平臺,其定價策略常常引起用戶的關注。很多人可能會問:"AWS真的那么貴嗎?"實際上,這個問題的答案并不是簡單的"是"或"否"&#xff0c…

【大數據綜合試驗區1008】揭秘企業數字化轉型:大數據試驗區政策數據集大公開!

今天給大家分享的是國內頂級期刊中國工業經濟2023年發布的最新期刊《政策賦能、數字生態與企業數字化轉型——基于國家大數據綜合試驗區的準自然實驗》文章中所使用到的數據集——國家大數據綜合試驗區政策數據集以及工具變量數據,該文章基于2009-2019年中國上市企業…

【代碼隨想錄_Day24】134. 加油站 135. 分發糖果 860. 檸檬水找零 406. 根據身高重建隊列

Day24 OK,今日份的打卡!第二十四天 以下是今日份的總結加油站分發糖果檸檬水找零根據身高重建隊列 以下是今日份的總結 加油站分發糖果檸檬水找零根據身高重建隊列 今天的題目難度不低,而且非常的有意思,盡量還是寫一些簡潔代碼…

花鍵參數確定的流程是怎么樣的?

繼續花鍵的話題,今天跟小伙伴們一同學習一下:漸開線花鍵的參數確定的一般流程及基本方法。 前面有好幾篇介紹了花鍵的基本參數的概念,包括規格、模數、齒數、壓力角等等。以及花鍵的定心方式,內外花鍵的配合方式。那么這些參數的…

ARM架構 AArch64 基礎知識介紹

介紹 aarch64是 ARM 架構的 64 位版本,它是 ARMv8 架構的一部分,被設計用來提供更高的性能和更大的地址空間,同時保持與 32 位 ARM 架構的兼容性。AArch64 是 ARMv8 的 64 位指令集架構(ISA),它提供了豐富的…

2023 最新版IntelliJ IDEA 2023.1創建Java Web前(vue3)后端(spring-boot3)分離 項目詳細步驟(圖文詳解)

文章目錄 🚩 接上篇🏳?🌈 項目構建所需的相關工具JavaIDEAmavenNodeJSVueVisual Studio Code 🌌 后端項目創建詳細步驟🛫 1、開始創建新項目🛫 2、輸入項目名稱、選擇項目存儲位置、項目管理工具&#xff…

昇思25天學習打卡營第4天|yulang

今天主要了解了數據集 Dataset,主要包含了:數據集加載、數據集迭代、數據集常用操作、 可隨機訪問數據集、可迭代數據集、生成器。對于生成器很好理解,用代碼來造數據,可以動態地生成數據。主要作用數據集通常被用于訓練模型