數據管理DMS提供的邏輯數倉具有強大的數據源管理能力,可以實現將企業的異構數據源進行邏輯聚合,形成物理分散、邏輯統一的虛擬數倉,然后快速地提供數據分析和訪問服務,滿足業務人員、BI分析師、運營人員等各種角色的需求。
背景信息
企業在數字化轉型過程中,越來越意識到數據作為生產要素的重要性,期望通過數據驅動業務和決策,提升企業競爭力。但在實際落地過程中有兩個常見問題影響了數據驅動的實現和效率:
資源和成本問題
建倉和管倉成本高,中小企業缺少資源和技術手段構建數倉支持業務分析和決策,使得大多數企業望而卻步。
大型企業業務復雜度高,數倉開發門檻高,專業開發人員少,難以高效支撐日益增長的各項運營分析需求。
靈活多變的分析需求
數倉通過數據清洗、數倉建模、集中化等方式標準化業務數據,能夠有效提高數據獲取、統計和分析的效率,但在應對業務迭代較快的場景,標準數倉難以適用于新的業務,無法滿足靈活多變的業務分析需求。
從近年客戶的需求來看,數據價值的發掘地越來越靠近業務的發生地。業務發生后相關數據在何時何地發揮價值將是評估企業數字化程度的重要依據。
數據分析的鏈路和時效等問題,導致數倉無法有效支撐運營分析。
為解決上述問題,數據管理DMS推出了邏輯數倉功能,用戶可以在不搬遷原始數據的前提下將多種異構數據源進行邏輯上的融合,形成一個邏輯倉,然后通過DMS內置的跨庫查詢引擎 (支持SQL)創建邏輯視圖進行數據的融合分析。這種方式避免了繁瑣的ETL過程,讓數據分析更加敏捷,同時也可以讓了解業務數據的人員直接操作、按需分析,消除了業務人員與開發人員之間的溝通成本。
關于視圖的SQL語法,請參見邏輯數倉SQL語法介紹。
使用限制
查詢操作支持的數據源類型如下:
操作類別
支持的數據源類型
查詢操作
云數據庫:RDS MySQL、AnalyticDB MySQL版、PolarDB、RDS SQL Server、RDS PostgreSQL、AnalyticDB PostgreSQL版、ClickHouse。
ECS上的自建數據庫:MySQL、SQL Server、PostgreSQL、Oracle。
公網數據庫:MySQL、SQL Server、PostgreSQL、Oracle、ClickHouse。
邏輯視圖支持CREATE、DROP語句,暫不支持ALTER、UPDATE、DELETE語句。
核心功能
提供跨源、跨Region的SQL聯邦查詢服務,支持RDS MySQL、RDS SQL Server、云原生數倉AnalyticDB MySQL版、云數據庫ClickHouse、對象存儲OSS、PolarDB、PG等多種數據源。
支持查詢鑒權和脫敏,數據權限與底層數據源保持一致。
支持邏輯視圖,通過視圖定義簡化查詢,方便分享。
兼容DSQL跨庫查詢語法,可通過
dblink.schema.table
方式引用表。
名詞解釋
名詞 | 描述 |
邏輯數倉 | 邏輯數倉是架構在用戶數據源基礎上的一個虛擬數倉,由數據源、虛擬庫和邏輯視圖組成,并提供了虛擬庫管理界面,以及視圖的管理和查詢界面。 用戶可在邏輯數倉中直接跨庫查詢數據,也可以創建和管理虛擬庫并基于查詢語句保存為邏輯視圖。 |
數據源 | 數據源對應于一個數據庫實例的連接,即DBLink。在設置實例的DBLink名稱后(在實例編輯界面設置),可使用基于DBLink的三段式語法引用物理表進行查詢,如 |
虛擬庫 | 虛擬庫類似于一般數據庫中的Schema概念,用戶需要在虛擬庫下創建和管理視圖。 |
邏輯視圖(Logical VIEW) | 類似于數據庫普通視圖,邏輯視圖定義了數據的加工計算過程,不存放數據,僅存放定義。 查詢邏輯視圖時,邏輯視圖從源端提取數據,在DMS計算引擎中進行加工(如:Join、聚合、過濾、計算等),然后展示數據,把復雜SQL保存為視圖,再執行對視圖的查詢,可簡化手動輸入復雜SQL的流程,同時視圖支持嵌套定義,能夠達到SQL的復用目的。 |
應用場景
不同用戶角色使用邏輯數倉支持的應用場景:
數據庫及數倉開發人員:
跨庫查詢與開發,業務數據邏輯歸檔、數據準備與供應、輕量數倉、數倉構建模擬、敏捷建倉、入倉等。
運營分析及BI人員:
數據準備與分析、跨庫查詢、查詢與分析加速、周期性報表等。
使用流程
進入邏輯數倉頁面后,可在數據源頁簽中查看可查詢的數據源列表。
說明若沒有顯示可查詢的數據源,請檢查相應的實例是否開啟跨庫查詢并定義了DBLink名稱。
展開數據源,雙擊數據源下的表名,可自動生成單表查詢的三段式SQL,如
SELECT * FROM dblink1.schem1.table1 LIMIT 20
,單擊執行查詢或手動輸入三段式SQL查詢并執行查詢。單擊虛擬庫頁簽。在此頁面,您可選擇添加虛擬庫,還可進行如下操作:
通過界面添加視圖,也可以通過
CREATE VIEW
語句添加視圖。雙擊視圖名稱生成SQL,或者手動輸入
SELECT * FROM <虛擬庫名>.<視圖名>
執行兩段式的視圖查詢操作。
操作步驟
- 登錄數據管理DMS 5.0。
配置DBLink。
在首頁左側的數據庫實例列表中,右鍵單擊目標實例,選擇編輯實例。
在編輯實例對話框中,單擊高級信息。
系統默認勾選開啟DBLink,并指定一個DBLink名稱。該名稱可用于執行SQL查詢命令時使用。
說明DBLink名稱由小寫字母、數字和下劃線(_)組成,且以字母開頭。
DBLink名稱需要在租戶內保持全局唯一性。
單擊提交。
進入邏輯數倉的SQL窗口。
在首頁左側數據庫實例列表區域,單擊邏輯數倉。
執行跨庫查詢。
在左側可視化操作區域的數據源(DBLink)中,選擇目標數據源,雙擊目標表名,會在SQL窗口生成SELECT語句。
單擊執行。
說明SQL可自由修改,根據跨庫查詢的多段式語法對多個不同庫的不同表進行關聯查詢,如
SELECT * FROM dblink1.db1.table1 t1 join dblink2.db2.table2 t2 ON t1.c_id=t2.c_id WHERE t1.age > 20;
連接DBLink。
說明若實例的管控模式為自由操作或穩定變更,則在登錄數據庫后需要配置賬號和密碼連接DBLink才可以使用。
在左側可視化操作區域的數據源中,右鍵單擊目標DBLink,選擇連接DBLink。
在連接DBLink對話框中,輸入數據庫賬號和數據庫密碼。
單擊確認。
在SQL Console頁面執行三段式SQL語句,查詢該DBLink的數據。
可選:創建DBLink。
針對同一個管控模式為自由操作或穩定變更的實例使用不同賬號連接DBLink的場景,除在編輯實例界面可配置默認DBLink外,還可在邏輯數倉中創建額外的DBLink。一般情況下,建議僅使用系統默認創建的DBLink。
說明安全協同模式的實例無法額外創建DBLink,系統會為您自動生成DBLink。
選擇數據源頁簽,單擊圖標新建DBLink。
在新建DBLink對話框中,配置DBLink名稱、實例、數據庫賬號和數據庫密碼參數信息。
單擊確認。
可選:創建虛擬庫。
在虛擬庫頁簽中,單擊,選擇創建虛擬庫。
配置虛擬庫的名稱、別名等信息。
說明虛擬庫名稱,輸入SQL時使用,創建成功后,名稱不可修改。
虛擬庫名稱由字母、數字、下劃線(_)組成,且以字母或下劃線開頭。
您可以直接在系統默認虛擬庫
public
中創建視圖。
單擊確認。
創建邏輯視圖。
在左側可視化操作區域的虛擬庫頁簽中,單擊,選擇創建邏輯視圖。
在創建邏輯視圖頁面,輸入視圖名稱,選擇保存視圖的虛擬數據庫。
說明虛擬數據庫可選擇系統內置的public數據庫。
輸入視圖定義的SELECT SQL語句。關于視圖的SQL語法,請參見邏輯數倉SQL語法介紹。
您可以單擊數據預覽,查看SQL語句的運行結果是否符合預期。
單擊提交。
說明邏輯視圖創建成功后,您可以在對應虛擬庫的邏輯視圖分類中,查看已創建的邏輯視圖。
查詢邏輯視圖。
在邏輯視圖的SQL窗口中輸入SELECT語句,并在視圖名稱前加視圖所在虛擬庫的前綴,如
public
。例如,在SQL窗口中輸入
SELECT * FROM public.v_ex_customer
,單擊執行,查詢邏輯視圖v_ex_customer。說明您還可以在頁面左側可視化操作區域的虛擬庫頁簽中,展開虛擬庫并雙擊目標邏輯視圖,系統自動在SQL窗口中生成查詢目標邏輯視圖的SQL語句。