




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、DM8 大規(guī)模并行處理MPPIDM8 大規(guī)模并行處理 MPP PAGE * ROMAN II前言概述本文檔主要介紹 DM MPP 集群的系統(tǒng)特性、基本概念、實(shí)現(xiàn)原理,以及如何搭建 DM MPP集群并使用等。讀者對象本文檔主要適用于DM 數(shù)據(jù)庫的:數(shù)據(jù)庫管理員開發(fā)工程師測試工程師技術(shù)支持工程師通用約定在本文檔中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下:表 0.1 標(biāo)志含義標(biāo)志說明表示可能導(dǎo)致系統(tǒng)損壞、數(shù)據(jù)丟失或不可預(yù)知的結(jié)果。表示可能導(dǎo)致性能降低、服務(wù)不可用。可以幫助您解決某個(gè)問題或節(jié)省您的時(shí)間。表示正文的附加信息,是對正文的強(qiáng)調(diào)和補(bǔ)充。DM 大規(guī)模并行處理 MPP PAGE * ROMAN II
2、I在本文檔中可能出現(xiàn)下列格式,它們所代表的含義如下:表 0.2 格式含義格式說明宋體表示正文。Courier new表示代碼或者屏幕顯示內(nèi)容。粗體表示命令行中的關(guān)鍵字(命令中保持不變、必須照輸?shù)牟糠郑┗蛘哒闹袕?qiáng)調(diào)的內(nèi)容。標(biāo)題、警告、注意、小竅門、說明等內(nèi)容均采用粗體。語法符號中,表示一個(gè)語法對象。:=語法符號中,表示定義符,用來定義一個(gè)語法對象。定義符左邊為語法對象,右邊為相應(yīng)的語法描述。|語法符號中,表示或者符,限定的語法選項(xiàng)在實(shí)際語句中只能出現(xiàn)一個(gè)。 語法符號中,大括號內(nèi)的語法選項(xiàng)在實(shí)際的語句中可以出現(xiàn) 0N 次(N 為大于 0 的自然數(shù)),但是大括號本身不能出現(xiàn)在語句中。 語法符號中,
3、中括號內(nèi)的語法選項(xiàng)在實(shí)際的語句中可以出現(xiàn) 01 次,但是中括號本身不能出現(xiàn)在語句中。關(guān)鍵字關(guān)鍵字在 DM_SQL 語言中具有特殊意義,在 SQL 語法描述中,關(guān)鍵字以大寫形式出現(xiàn)。但在實(shí)際書寫 SQL 語句時(shí),關(guān)鍵字既可以大寫也可以小寫。訪問相關(guān)文檔如果您安裝了DM 數(shù)據(jù)庫,可在安裝目錄的“doc”子目錄中找到 DM 數(shù)據(jù)庫的各種手冊與技術(shù)叢書。 DM 大規(guī)模并行處理 MPP PAGE * ROMAN V目錄 HYPERLINK l _bookmark0 引言1 HYPERLINK l _bookmark1 概述2 HYPERLINK l _bookmark2 系統(tǒng)架構(gòu)2 HYPERLINK
4、l _bookmark3 原理概述4 HYPERLINK l _bookmark4 系統(tǒng)特性4 HYPERLINK l _bookmark5 基本概念與原理6 HYPERLINK l _bookmark6 基本概念6 HYPERLINK l _bookmark7 執(zhí)行節(jié)點(diǎn) EP6 HYPERLINK l _bookmark8 主、從 EP6 HYPERLINK l _bookmark9 數(shù)據(jù)分布6 HYPERLINK l _bookmark10 MAL 系統(tǒng)7 HYPERLINK l _bookmark11 全局連接與本地連接8 HYPERLINK l _bookmark12 MPP 并行執(zhí)行
5、計(jì)劃8 HYPERLINK l _bookmark13 并行計(jì)劃相關(guān)操作符8 HYPERLINK l _bookmark14 并行計(jì)劃的生成9 HYPERLINK l _bookmark15 數(shù)據(jù)分布與并行執(zhí)行計(jì)劃12 HYPERLINK l _bookmark16 并行計(jì)劃執(zhí)行流程12 HYPERLINK l _bookmark17 DDL 語句分發(fā)14 HYPERLINK l _bookmark18 相關(guān)配置文件14 HYPERLINK l _bookmark19 dm.ini MPP 相關(guān)配置項(xiàng)14 HYPERLINK l _bookmark20 dmmal.ini 配置項(xiàng)16 HYPE
6、RLINK l _bookmark21 dmmpp.ctl17 HYPERLINK l _bookmark22 DM MPP 環(huán)境搭建與使用18 HYPERLINK l _bookmark23 制定合適的 DM MPP 方案18 HYPERLINK l _bookmark24 DM MPP 環(huán)境搭建19 HYPERLINK l _bookmark25 系統(tǒng)規(guī)劃19 HYPERLINK l _bookmark26 配置 dm.ini19 HYPERLINK l _bookmark27 配置 dmmal.ini20 HYPERLINK l _bookmark28 配置 dmmpp.ctl21 HY
7、PERLINK l _bookmark29 運(yùn)行 MPP21 HYPERLINK l _bookmark30 建立分布表22 HYPERLINK l _bookmark31 快速數(shù)據(jù)裝載24 HYPERLINK l _bookmark32 停止 MPP 系統(tǒng)24 HYPERLINK l _bookmark33 MPP 相關(guān)系統(tǒng)過程與函數(shù)25 HYPERLINK l _bookmark34 MPP 下系統(tǒng)過程與系統(tǒng)視圖常見用法28 HYPERLINK l _bookmark35 使用說明29 HYPERLINK l _bookmark36 DM MPP 系統(tǒng)管理30 HYPERLINK l _b
8、ookmark37 使用 DEM 部署與監(jiān)控 DM MPP30 HYPERLINK l _bookmark38 使用 DEM 部署 DM MPP31 HYPERLINK l _bookmark39 使用 DEM 監(jiān)控 DM MPP 運(yùn)行37 HYPERLINK l _bookmark40 MPP 系統(tǒng)動(dòng)態(tài)擴(kuò)容38 HYPERLINK l _bookmark41 環(huán)境準(zhǔn)備39 HYPERLINK l _bookmark42 動(dòng)態(tài)增加節(jié)點(diǎn)41 HYPERLINK l _bookmark43 數(shù)據(jù)重分發(fā)44 HYPERLINK l _bookmark44 MPP 環(huán)境的 DDL 克隆與還原48 HY
9、PERLINK l _bookmark45 DM MPP 主備系統(tǒng)50DM 大規(guī)模并行處理 MPP PAGE 39引言達(dá)夢大規(guī)模并行處理 MPP(DM Massively Parallel Processing,縮寫 DM MPP) 是基于達(dá)夢數(shù)據(jù)庫管理系統(tǒng)研發(fā)的完全對等無共享式集群組件,支持將多個(gè) DM 數(shù)據(jù)庫實(shí)例組織為一個(gè)并行計(jì)算網(wǎng)絡(luò),對外提供統(tǒng)一的數(shù)據(jù)庫服務(wù)。在海量數(shù)據(jù)分析的應(yīng)用場景中,經(jīng)常會(huì)遇到以下問題:大量的復(fù)雜查詢操作需要較高的系統(tǒng)性能支持;數(shù)據(jù)庫響應(yīng)能力受到硬件的束縛;小型機(jī)雖然能在垂直領(lǐng)域提供較好的單個(gè)節(jié)點(diǎn)性能,但是價(jià)格較高。為了支持上述海量數(shù)據(jù)存儲(chǔ)和處理、高性價(jià)比等方面的需求
10、,提供高端數(shù)據(jù)倉庫解決方案,達(dá)夢數(shù)據(jù)庫提供了大規(guī)模并行處理 MPP 架構(gòu),以極低的成本代價(jià),為客戶提供業(yè)界領(lǐng)先的計(jì)算性能。本文檔主要介紹 DM MPP 的概念與實(shí)現(xiàn)原理,如何搭建與使用 DM MPP 以及 DM MPP系統(tǒng)的運(yùn)行管理。概述本章簡單介紹DM MPP 的系統(tǒng)架構(gòu)、原理及功能特性。系統(tǒng)架構(gòu)當(dāng)前主流的數(shù)據(jù)庫系統(tǒng)架構(gòu)有完全共享、共享存儲(chǔ)、完全不共享和完全對等不共享幾種。其中完全共享體系如 SMP 服務(wù)器,局限于單節(jié)點(diǎn)服務(wù)器,通常價(jià)格比較昂貴,其擴(kuò)展性和性能受到相應(yīng)的限制。共享存儲(chǔ)體系允許系統(tǒng)帶有多個(gè)服務(wù)器實(shí)例,這些實(shí)例與共享存儲(chǔ)設(shè)備相連。這種體系可實(shí)現(xiàn)多機(jī)并行,保證系統(tǒng)的高可用性,但需要
11、通過一個(gè)數(shù)據(jù)管道將所有 I/O 信息過濾到共享存儲(chǔ)子系統(tǒng),對硬件的要求較高,且并非高性能解決方案。與此相比,基于硬件的數(shù)據(jù)倉庫平臺(tái)一般采用完全無共享體系。在這種體系下,通訊功能部署在一個(gè)高寬帶網(wǎng)絡(luò)互連體系上,用戶通過一個(gè)主控制節(jié)點(diǎn)執(zhí)行并行查詢。該體系的一個(gè)重要優(yōu)勢就是每個(gè)節(jié)點(diǎn)都有一個(gè)通往本地磁盤的獨(dú)立通道,不但簡化了體系,還提供良好的擴(kuò)展性。但主控節(jié)點(diǎn)的存在使得系統(tǒng)規(guī)模擴(kuò)張時(shí)主控節(jié)點(diǎn)可能成為系統(tǒng)瓶頸,且主控節(jié)點(diǎn)一旦發(fā)生故障這個(gè)系統(tǒng)將無法提供服務(wù)。DM MPP 采用的完全對等無共享體系架構(gòu),結(jié)合了完全無共享體系的優(yōu)點(diǎn),在此基礎(chǔ)上又前進(jìn)了一步,不采用增加主控制節(jié)點(diǎn)來協(xié)調(diào)所有并行處理的主從式方法,而
12、是各個(gè)節(jié)點(diǎn)完全對等,更進(jìn)一步簡化了體系的實(shí)現(xiàn),也消除了系統(tǒng)可能存在的主節(jié)點(diǎn)瓶頸問題。圖 2.1 是這幾種數(shù)據(jù)庫系統(tǒng)架構(gòu)的整體結(jié)構(gòu)示意圖。圖 2.1 主流數(shù)據(jù)庫系統(tǒng)架構(gòu)示意圖表 2.1 則總結(jié)了這幾種數(shù)據(jù)庫系統(tǒng)架構(gòu)各自的優(yōu)缺點(diǎn)。表 2.1 數(shù)據(jù)庫主流系統(tǒng)架構(gòu)特點(diǎn)比較架構(gòu)名稱特點(diǎn)完全共享局限于單節(jié)點(diǎn)服務(wù)器,價(jià)格昂貴,擴(kuò)展性、性能受限共享磁盤允許多個(gè)服務(wù)器實(shí)例共享存儲(chǔ)設(shè)備,可有效解決單實(shí)例負(fù)載問題,具有一定的擴(kuò)展性,但當(dāng)節(jié)點(diǎn)增加到一定程度以后,由于對 I/O 資源、鎖資源等的激烈競爭,反而導(dǎo)致性能的下降,擴(kuò)展性和性能在系統(tǒng)規(guī)模變大時(shí)受限。同時(shí)共享磁盤等硬件成本也十分昂貴完全不共享部署在高速網(wǎng)絡(luò),各節(jié)
13、點(diǎn)相對獨(dú)立,無共享 I/O,擴(kuò)展性和性能良好,缺點(diǎn)是系統(tǒng)中有一個(gè)主控節(jié)點(diǎn),系統(tǒng)規(guī)模擴(kuò)充時(shí)可能成為瓶頸,主控節(jié)點(diǎn)無備份,容易形成單點(diǎn)故障完全對等不共享繼承了完全不共享架構(gòu)的優(yōu)點(diǎn),且各節(jié)點(diǎn)完全對等,不需要專用硬件,不存在主控節(jié)點(diǎn),消除了潛在瓶頸以及單節(jié)點(diǎn)故障問題DM MPP 采用完全對等不共享架構(gòu),具體的系統(tǒng)架構(gòu)如圖 2.2 所示。圖 2.2 DM MPP 系統(tǒng)架構(gòu)圖DM MPP 中的每一個(gè) DM 數(shù)據(jù)庫服務(wù)器實(shí)例作為一個(gè)執(zhí)行節(jié)點(diǎn),簡稱 EP??蛻舳丝蛇B接任意一個(gè)EP 節(jié)點(diǎn)進(jìn)行操作,所有 EP 對客戶來說都是對等的。DM MPP 系統(tǒng)內(nèi)每個(gè) EP 只負(fù)責(zé)自身部分?jǐn)?shù)據(jù)的讀寫,執(zhí)行計(jì)劃在所有 EP 并
14、行執(zhí)行, 能充分利用各 EP 的計(jì)算能力及發(fā)揮各 EP 獨(dú)立存儲(chǔ)的優(yōu)勢。數(shù)據(jù)只在必要時(shí)通過 DM 的高速郵件 MAL 系統(tǒng)在 EP 間傳遞。當(dāng)通信代價(jià)占整體執(zhí)行代價(jià)的比例較小時(shí),更能體現(xiàn)大規(guī)模并行處理的優(yōu)勢,隨著系統(tǒng)規(guī)模的擴(kuò)大,并行支路越多,優(yōu)勢越明顯。原理概述在 DM MPP 中,數(shù)據(jù)根據(jù)用戶指定的分布規(guī)則分布在不同的 EP 上。MPP 的核心在于對用戶請求的并行執(zhí)行,其執(zhí)行流程可簡單描述如下:用戶選擇一個(gè)EP 登錄,此時(shí)該 EP 就是此用戶的主 EP,集群中的其余 EP 都是此用戶的從EP;主 EP 接受用戶的 SQL 請求,并生成并行執(zhí)行計(jì)劃;主 EP 將計(jì)劃打包后分發(fā)給其他從 EP;各
15、 EP 并行執(zhí)行;主 EP 收集各 EP(包括自己)的執(zhí)行結(jié)果;主 EP 將執(zhí)行結(jié)果匯總后返回給用戶。如圖 2.3 所示。圖 2.3 DM MPP 執(zhí)行流程系統(tǒng)特性DM MPP 采用完全對等不共享架構(gòu),系統(tǒng)中各 EP 的功能完全對等,因此對于用戶來說, MPP 系統(tǒng)的處理是完全透明的,用戶任意登錄 MPP 系統(tǒng)的的任一節(jié)點(diǎn)進(jìn)行操作都可獲得完全的MPP 支持。使用DM MPP 可獲得以下功能特性支持:TB/PB 級數(shù)據(jù)分析支持?jǐn)?shù)據(jù)的并行裝載和操作的并行執(zhí)行,數(shù)據(jù)分布式存儲(chǔ)在各 EP 中,能支持 TB/PB 級數(shù)據(jù)分析支持絕大部分單機(jī)功能支持絕大部分的 DM 單機(jī)版功能,同時(shí)支持行、列存儲(chǔ),支持存
16、儲(chǔ)過程、觸發(fā)器、索引、分區(qū)表、多媒體數(shù)據(jù)類型等高性價(jià)比無需額外配置特殊軟、硬件,性價(jià)比超高高可靠性DM MPP 與 DM 數(shù)據(jù)守護(hù)相結(jié)合,為 MPP 系統(tǒng)中的每個(gè)EP 配置一個(gè)或多個(gè)實(shí)時(shí)備庫,在 EP 發(fā)生故障時(shí)其對應(yīng)備庫能迅速切換為主庫繼續(xù)提供服務(wù),確保系統(tǒng)的高可用性支持超大型集群支持最多 1024 個(gè) EP,輕松組建超大型集群基本概念與原理本章介紹 DM MPP 的一些基礎(chǔ)概念與基本原理,雖然讀者跳過這一章繼續(xù)閱讀后續(xù)章節(jié)也能進(jìn)行 DM MPP 的相關(guān)操作,但是本章的閱讀有利于讀者進(jìn)一步理解 DM MPP 的工作原理,對于后續(xù)對MPP 系統(tǒng)的規(guī)劃與管理能起到一定幫助。基本概念執(zhí)行節(jié)點(diǎn) EP
17、DM MPP 系統(tǒng)中每一個(gè)運(yùn)行的 DM 數(shù)據(jù)庫服務(wù)器實(shí)例稱為一個(gè)執(zhí)行節(jié)點(diǎn) EP,基于數(shù)據(jù)守護(hù)的MPP 環(huán)境內(nèi)的備庫除外。主、從 EPDM MPP 采用完全對等無共享架構(gòu),對整個(gè)系統(tǒng)來說,每個(gè) EP 作用都是一樣的,用戶可以連接到其中的任何一個(gè)進(jìn)行操作。而對每個(gè)用戶會(huì)話來說,EP 具有主從之分。用戶會(huì)話實(shí)際連接的那個(gè)EP 對該用戶會(huì)話來說稱為主 EP,其余的EP 都稱為從EP。數(shù)據(jù)分布DM MPP 系統(tǒng)中的數(shù)據(jù)分布在各 EP 中,支持表數(shù)據(jù)的哈希分布、隨機(jī)分布、復(fù)制分布、范圍分布、LIST 分布類型,用戶可根據(jù)應(yīng)用的實(shí)際情況為表數(shù)據(jù)選擇合適的分布類型。哈希分布哈希分布按照表定義中指定的一列或多列
18、對行數(shù)據(jù)計(jì)算一個(gè)哈希值,再根據(jù)哈希值和哈希映射表,將該行數(shù)據(jù)分布到映射的節(jié)點(diǎn)上。當(dāng)表的連接查詢中使用的連接鍵為哈希分布列時(shí),MPP 下的查詢計(jì)劃會(huì)進(jìn)行優(yōu)化,比如可能減少計(jì)劃中通訊操作符個(gè)數(shù)、使用索引、對分組計(jì)劃優(yōu)化等,減少數(shù)據(jù)在節(jié)點(diǎn)間的分發(fā),提高查詢效率。使用哈希分布時(shí),節(jié)點(diǎn)間的數(shù)據(jù)是否均衡,取決于設(shè)置的哈希分布列以及表中的數(shù)據(jù)情況。當(dāng)節(jié)點(diǎn)個(gè)數(shù)變動(dòng)時(shí),各個(gè)節(jié)點(diǎn)的數(shù)據(jù)需要按照新的哈希映射表重新進(jìn)行分發(fā)。隨機(jī)分布隨機(jī)分布表不存在分布列,插入表數(shù)據(jù)時(shí)會(huì)按照一定的隨機(jī)算法,將數(shù)據(jù)隨機(jī)均衡分布到各個(gè)節(jié)點(diǎn)。隨機(jī)分布的優(yōu)點(diǎn)是數(shù)據(jù)和節(jié)點(diǎn)間不存在映射關(guān)系。節(jié)點(diǎn)個(gè)數(shù)變動(dòng)后,如果沒有節(jié)點(diǎn)數(shù)據(jù)均衡的要求,可以不用對節(jié)
19、點(diǎn)現(xiàn)有的數(shù)據(jù)進(jìn)行變動(dòng)。一般來說,隨機(jī)分布對于復(fù)雜查詢及存在較多的節(jié)點(diǎn)間數(shù)據(jù)分發(fā)情況,性能不如哈希分布高。復(fù)制分布復(fù)制分布表在每個(gè)節(jié)點(diǎn)上的本地?cái)?shù)據(jù)都是一份完整的拷貝,查詢該表數(shù)據(jù)時(shí)在任意節(jié)點(diǎn)上都能單獨(dú)完成,不需要從其他節(jié)點(diǎn)獲取數(shù)據(jù)。復(fù)制分布一般用于數(shù)據(jù)量不是很大的表。范圍分布范圍分布按照表定義中指定的一個(gè)或多個(gè)列的列值范圍分布項(xiàng),決定將一行數(shù)據(jù)存儲(chǔ)到MPP 的哪個(gè)相應(yīng) EP 上。LIST 分布LIST 分布通過指定表中的一個(gè)或多個(gè)列的離散值集,來確定將一行數(shù)據(jù)存儲(chǔ)到 MPP 的哪個(gè)相應(yīng)EP 上。此分布用于表中列值可列舉的情況。DM MPP 同時(shí)支持?jǐn)?shù)據(jù)分布與分區(qū)表,實(shí)現(xiàn)了“數(shù)據(jù)分布后再分區(qū)”。在
20、數(shù)據(jù)分布到各節(jié)點(diǎn)的基礎(chǔ)上,再在單個(gè)節(jié)點(diǎn)上將數(shù)據(jù)再次分區(qū),可進(jìn)一步提高查詢性能。分布的類型和分區(qū)的類型可以混合搭配,比如建立哈希分布表的范圍水平分區(qū)表。MAL 系統(tǒng)MAL 系統(tǒng)是 DM 數(shù)據(jù)庫實(shí)例間的高速通信系統(tǒng),是基于 TCP 協(xié)議實(shí)現(xiàn)的一種內(nèi)部通信機(jī)制,具有可靠、靈活、高效的特性。DM 通過MAL 系統(tǒng)實(shí)現(xiàn)實(shí)例間的消息通訊。全局連接與本地連接MPP 系統(tǒng)中數(shù)據(jù)分布在各個(gè) EP 中,用戶只需要登錄到某個(gè) EP,系統(tǒng)自動(dòng)建立這個(gè) EP 與其余 EP 的連接,因此用戶建立的實(shí)際上是與整個(gè) MPP 系統(tǒng)的全局連接,用戶對數(shù)據(jù)庫的操作通過全局連接在 MPP 系統(tǒng)的所有 EP 進(jìn)行。使用全局連接時(shí),要求
21、 MPP 系統(tǒng)的所有 EP 都正常提供服務(wù),否則無法建立連接。DM MPP 也提供本地連接。當(dāng)使用本地連接時(shí),用戶登錄到某個(gè) EP 后,這個(gè) EP 不再建立與其余 EP 的連接,用戶的所有數(shù)據(jù)庫操作僅在這個(gè) EP 上進(jìn)行。如 SELECT 語句以及UPDATE 和DELETE 語句中的WHERE 條件中的子查詢都僅僅查詢本地EP的數(shù)據(jù),而INSERT 語句如果插入的數(shù)據(jù)根據(jù)分布定義應(yīng)分布在其余 EP 時(shí)系統(tǒng)會(huì)報(bào)錯(cuò)。通常在 MPP 系統(tǒng)正常運(yùn)行時(shí)都使用全局連接,DM MPP 的快速裝載和動(dòng)態(tài)擴(kuò)容使用到了本地連接,用戶在某些時(shí)候如 MPP 系統(tǒng)中有EP 故障時(shí)也可以使用本地連接。DM 的各接口驅(qū)動(dòng)
22、程序都提供了連接屬性用于設(shè)置全局連接(登錄)或本地連接(登錄),缺省都為全局連接。DM 交互式工具 DIsql 也提供了登錄參數(shù) MPP_TYPE 用來指定使用全局連接或本地連接,“GLOBAL”表示全局連接,“LOCAL”表示本地連接,默認(rèn)為全局連接。MPP 并行執(zhí)行計(jì)劃在 DM 數(shù)據(jù)庫中,SQL 語句經(jīng)過一系列的處理最終生成一棵由不同操作符組成的計(jì)劃樹, DM 執(zhí)行器以自底向上的順序執(zhí)行計(jì)劃樹,數(shù)據(jù)也按自底向上的順序在計(jì)劃樹中流動(dòng)并經(jīng)過各操作符的處理,最終在計(jì)劃樹的根節(jié)點(diǎn)生成執(zhí)行結(jié)果。在 DM MPP 環(huán)境中各 EP 執(zhí)行的是并行計(jì)劃,并行計(jì)劃是在單節(jié)點(diǎn)執(zhí)行計(jì)劃的基礎(chǔ)上, 按照一定規(guī)則于適
23、當(dāng)?shù)奈恢貌迦?MPP 通訊操作符而生成的。本節(jié)介紹DM MPP 并行執(zhí)行計(jì)劃的原理與處理過程。并行計(jì)劃相關(guān)操作符MPP 并行執(zhí)行計(jì)劃是在單節(jié)點(diǎn)執(zhí)行計(jì)劃的基礎(chǔ)上增加 MPP 通訊操作符生成的,DM MPP相關(guān)通訊操作符有 5 個(gè),如下表所示。表 3.1 MPP 并行執(zhí)行計(jì)劃通訊操作符操作符名稱功能MPP GATHER(MGAT)主 EP 收集所有節(jié)點(diǎn)數(shù)據(jù)從 EP 將數(shù)據(jù)發(fā)送到主 EPMPP COLLECT(MCLCT)在 MGAT 的基礎(chǔ)上,增加主從 EP 執(zhí)行同步功能,避免數(shù)據(jù)在主 EP 上堆積。一個(gè)計(jì)劃樹中一般只會(huì)在較上層出現(xiàn)一個(gè) MCLCT,但可能有多個(gè) MGATMPP DISTRIBUT
24、E(MDIS)各 EP 節(jié)點(diǎn)間相互分發(fā)數(shù)據(jù),按照分發(fā)列計(jì)算行數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)并發(fā)送過去,目標(biāo)節(jié)點(diǎn)負(fù)責(zé)接收MPP BROADCAST(MBRO)功能類似 MGAT,收集數(shù)據(jù)到主 EP,該操作符帶有聚集函數(shù)運(yùn)算功能,僅和 FAGR 配合使用MPP SCATTER(MSCT)主 EP 發(fā)送完整數(shù)據(jù)到所有從 EP,保證每個(gè)節(jié)點(diǎn)數(shù)據(jù)都完整,一般和 MGAT配合使用并行計(jì)劃的生成在 DM 數(shù)據(jù)庫中,計(jì)劃樹執(zhí)行時(shí),數(shù)據(jù)總是自底向上流動(dòng)的,若是在 MPP 環(huán)境中,由于每個(gè) EP 都只保存表的部分?jǐn)?shù)據(jù)(復(fù)制分布除外),計(jì)劃樹葉子節(jié)點(diǎn)的數(shù)據(jù)都是不完整的,因此葉子節(jié)點(diǎn)向上傳送的只是本 EP 部分的數(shù)據(jù)。要獲得完整的正
25、確執(zhí)行結(jié)果,上層節(jié)點(diǎn)必須知道此時(shí)下層節(jié)點(diǎn)傳來的數(shù)據(jù)是否完整,從而決定是否需要添加 MPP 通訊操作符,并根據(jù)單節(jié)點(diǎn)操作符的功能和數(shù)據(jù)分布情況決定應(yīng)該添加何種通訊操作符。關(guān)于單節(jié)點(diǎn)執(zhí)行計(jì)劃操作符的介紹可以參看DM8 系統(tǒng)管理員手冊的附錄。CREATE TABLE T1(C1 INT, C2 INT) DISTRIBUTED BY HASH(C1);CREATE TABLE T2(C3 INT, C4 INT) DISTRIBUTED BY HASH(C3);下面通過幾個(gè)簡單的例子說明MPP 并行計(jì)劃生成的原理。首先,在MPP 環(huán)境中建兩個(gè)表 T1 與 T2,都使用哈希分布。EXPLAIN SEL
26、ECT * FROM T1;例 1:單表查詢,查詢表 T1 的全部數(shù)據(jù)。使用EXPLAIN 查看語句的執(zhí)行計(jì)劃:顯示的并行執(zhí)行計(jì)劃如下:1#NSET2: 0, 1, 162#MPP COLLECT: 0, 1, 16; op_id(1) n_grp_by (0) n_cols(0)n_keys(0)3#PRJT2: 0, 1, 16; exp_num(3), is_atom(FALSE)4#CSCN2: 0, 1, 16; INDEX33555445(T1)可以看到,這條語句的并行執(zhí)行計(jì)劃只是在單節(jié)點(diǎn)執(zhí)行計(jì)劃中增加了一個(gè) MPP COLLECT 通訊操作符,用于在從 EP 掃描和投影數(shù)據(jù)后,主
27、 EP 收集所有EP 的數(shù)據(jù)。EXPLAIN SELECT * FROM T1 INNER JOIN T2 ON T1.C2=T2.C4;例 2:連接查詢,連接鍵不是分布列的情況。使用EXPLAIN 查看語句的執(zhí)行計(jì)劃:#CSCN2: 0, 1, 8; INDEX33555446(T2)8) rowid_flag(0)#MPP DISTRIBUTE: 0, 1, 8; op_id(2) n_keys(1) n_grp(0) filter(FALSE7#CSCN2: 0, 1, 8; INDEX33555445(T1)6) rowid_flag(0)#MPP DISTRIBUTE: 0, 1,
28、8; op_id(1) n_keys(1) n_grp(0) filter(FALSE5#HASH2 INNER JOIN: 0, 1, 16; KEY_NUM(1);4#PRJT2: 0, 1, 16; exp_num(4), is_atom(FALSE)3#MPP COLLECT: 0, 1, 16; op_id(3) n_grp_by (0) n_cols(0) n_keys(0)21#NSET2: 0, 1, 16顯示的并行執(zhí)行計(jì)劃如下:在這個(gè)并行計(jì)劃中,哈希連接操作符“HASH2 INNER JOIN”的左右孩子 CSCN2 都各增加了一個(gè)MPP DISTRIBUTE 通訊操作符,用
29、于將數(shù)據(jù)按照連接鍵分發(fā)到各 EP 進(jìn)行連接操作,之后計(jì)劃的上層增加MPP COLLECT 通訊操作符將各 EP 的連接和投影結(jié)果收集到主 EP。EXPLAIN SELECT COUNT(*) FROM T1;例 3:集函數(shù)查詢,查詢表 T1 的行數(shù)。使用EXPLAIN 查看語句的執(zhí)行計(jì)劃:#FAGR2: 0, 1, 0; sfun_num(1),5#MPP BROADCAST: 0, 1, 0; op_id(1)4#PRJT2: 0, 1, 0; exp_num(1), is_atom(FALSE)3#MPP COLLECT: 0, 1, 0; op_id(3) n_grp_by (0) n_
30、cols(0) n_keys(0)21#NSET2: 0, 1, 0顯示的并行執(zhí)行計(jì)劃如下:在這個(gè)并行計(jì)劃中,集函數(shù)操作符 FAGR2 的上層增加了 MPP BROADCAST 通訊操作符,使得主 EP 可以收集并合并各從 EP 的集函數(shù)操作符執(zhí)行結(jié)果。在此計(jì)劃中,上層的 MPP COLLECT 操作符只起同步執(zhí)行的作用,并不收集從 EP 的數(shù)據(jù)。EXPLAIN SELECT * FROM T1 INNER JOIN T2 ON T1.C1T2.C4;例 4:連接查詢,執(zhí)行計(jì)劃中使用嵌套連接操作符的情況。使用EXPLAIN 查看語句的執(zhí)行計(jì)劃:#CSCN2: 0, 1, 8; INDEX335
31、55446(T2)11#MPP GATHER: 0, 1, 8; op_id(2) n_grp_by (0) n_cols(0) n_keys(010#NTTS2: 0, 1, 8; for_mdis(TRUE)9#CSCN2: 0, 1, 8; INDEX33555445(T1)8#MPP GATHER: 0, 1, 8; op_id(1) n_grp_by (0) n_cols(0) n_keys(07#NTTS2: 0, 1, 8; for_mdis(TRUE)6#NEST LOOP INNER JOIN2: 49, 1, 16;5#SLCT2: 49, 1, 16; T1.C1 T2.
32、C44#PRJT2: 49, 1, 16; exp_num(4), is_atom(FALSE)3#MPP COLLECT: 49, 1, 16; op_id(4) n_grp_by (0) n_cols(0) n_keys(0)21#NSET2: 49, 1, 16顯示的并行執(zhí)行計(jì)劃如下:由于嵌套連接操作符的特殊性,左表數(shù)據(jù)要和右表的全部數(shù)據(jù)都比較一遍,右表需要多次執(zhí)行,因此在這個(gè)并行執(zhí)行計(jì)劃中增加了 MPP GATHER 通訊操作符將各從 EP 的數(shù)據(jù)完整收集到主 EP。計(jì)劃上層的 MPP COLLECT 通訊操作符只起同步執(zhí)行的作用,并不收集從EP 的數(shù)據(jù)。以上舉了幾個(gè)簡單的例子說明DM
33、 是如何在單節(jié)點(diǎn)執(zhí)行計(jì)劃中增加MPP 通訊操作符生成MPP 并行執(zhí)行計(jì)劃的。DM 數(shù)據(jù)庫的操作符眾多,并行計(jì)劃也復(fù)雜多變,這里不能一一介紹, 用戶可通過查看語句的并行執(zhí)行計(jì)劃體會(huì) DM MPP 并行執(zhí)行計(jì)劃的生成規(guī)則。數(shù)據(jù)分布與并行執(zhí)行計(jì)劃在 MPP 環(huán)境中,建表時(shí)指定的數(shù)據(jù)分布類型決定了表數(shù)據(jù)的分布。DM MPP 支持的表分布類型包括哈希分布、隨機(jī)分布、范圍分布、復(fù)制分布、LIST 分布,數(shù)據(jù)插入或裝載時(shí)系統(tǒng)會(huì)根據(jù)表的分布類型自動(dòng)將數(shù)據(jù)發(fā)送到對應(yīng)的EP。哈希分布、范圍分布和 LIST 分布的共同特征是在創(chuàng)建表的時(shí)候,用戶指定一個(gè)或多個(gè)列作為分布列,系統(tǒng)會(huì)針對每個(gè)插入的數(shù)據(jù)行計(jì)算這些對應(yīng)列的值
34、,確定將數(shù)據(jù)所屬 EP。隨機(jī)分布和復(fù)制分布則不需要指定分布列。并行執(zhí)行計(jì)劃與數(shù)據(jù)分布密切相關(guān),數(shù)據(jù)分布能夠決定最終生成的并行計(jì)劃。例如查詢的數(shù)據(jù)經(jīng)過預(yù)先判斷發(fā)現(xiàn)正好都在一個(gè)EP 上,服務(wù)器會(huì)做一定的優(yōu)化,在最優(yōu)的情況下, 整個(gè)計(jì)劃甚至不包含任何通訊操作符。優(yōu)化的原則是盡量減少節(jié)點(diǎn)之間的通信交互。因此,用戶應(yīng)根據(jù)應(yīng)用中查詢的實(shí)際需求來確定表的分布類型,進(jìn)而得到較優(yōu)的并行執(zhí)行計(jì)劃。場景一在某應(yīng)用中,查詢語句中包含大量連接查詢,表數(shù)據(jù)分布較為均勻,應(yīng)用對查詢的效率要求較高。此時(shí)我們可以使用哈希分布,并且將常用連接列作為哈希分布列,這樣能盡可能地減少 EP 間的數(shù)據(jù)傳遞,少占用網(wǎng)絡(luò)帶寬,減少網(wǎng)絡(luò)延遲,
35、充分發(fā)揮多節(jié)點(diǎn)并行執(zhí)行的巨大優(yōu)勢。場景二在某應(yīng)用中,查詢以單表查詢居多,連接查詢較少,我們可以采用隨機(jī)分布。隨機(jī)分布使得海量數(shù)據(jù)能均勻分布,充分體現(xiàn) MPP 的并行優(yōu)勢。場景三對于單表查詢或出現(xiàn)在連接查詢中數(shù)據(jù)量較小的表,可采用復(fù)制分布。復(fù)制分布的表在每個(gè)EP 上都有一份完整的數(shù)據(jù)拷貝,使得在生成并行執(zhí)行計(jì)劃時(shí)能減少對應(yīng)通訊操作符的使用,進(jìn)一步優(yōu)化并行計(jì)劃。并行計(jì)劃執(zhí)行流程DM MPP 對于查詢語句和插入/刪除/修改語句的處理是不同的,因?yàn)椴迦?刪除/修改語句涉及到數(shù)據(jù)的修改,必須在數(shù)據(jù)行所在 EP 進(jìn)行修改操作,而查詢語句只需要主 EP 收集查詢結(jié)果即可。查詢語句處理流程DM MPP 對查詢
36、語句的處理按如下流程進(jìn)行:建立連接用戶連接到 MPP 系統(tǒng)內(nèi)任意一個(gè) EP 節(jié)點(diǎn),則該 EP 為連接的主 EP,其余節(jié)點(diǎn)為從 EP;生成執(zhí)行計(jì)劃主 EP 解析查詢語句,生成普通的查詢計(jì)劃后,根據(jù)數(shù)據(jù)分布情況在合適的位置插入合適的并行通訊操作符,生成最終的并行查詢計(jì)劃;分發(fā)計(jì)劃主 EP 把執(zhí)行計(jì)劃分發(fā)給所有的從 EP;執(zhí)行計(jì)劃各從EP 收到計(jì)劃后,生成執(zhí)行計(jì)劃的運(yùn)行環(huán)境,所有 EP 并行執(zhí)行,執(zhí)行時(shí)各 EP通過通訊操作符分發(fā)必要的數(shù)據(jù)并協(xié)調(diào)執(zhí)行進(jìn)度;生成結(jié)果集主 EP 收集所有 EP 的查詢結(jié)果(包括自身數(shù)據(jù)),生成結(jié)果集;返回結(jié)果集主 EP 將結(jié)果集返回給用戶。插入/修改/刪除語句處理流程DM
37、 MPP 對插入/修改/刪除語句的處理按如下流程進(jìn)行:建立連接用戶連接到 MPP 系統(tǒng)內(nèi)任意一個(gè) EP 節(jié)點(diǎn),則該 EP 為連接的主 EP,其余節(jié)點(diǎn)為從 EP;生成執(zhí)行計(jì)劃主 EP 解析語句,生成執(zhí)行計(jì)劃,其中包含的查詢計(jì)劃(即 WHERE 條件對應(yīng)的計(jì)劃)也是并行查詢計(jì)劃,另外還會(huì)生成一個(gè)對應(yīng)的在從EP 上執(zhí)行的計(jì)劃(MPLN);準(zhǔn)備數(shù)據(jù)主 EP 開始執(zhí)行計(jì)劃時(shí)首先把查詢計(jì)劃部分發(fā)布給所有的從 EP,并行執(zhí)行查詢, 主 EP 收集查詢結(jié)果;定位節(jié)點(diǎn)數(shù)據(jù)準(zhǔn)備完成后,根據(jù)分布列和分布方式計(jì)算出需要修改的行數(shù)據(jù)所在的目標(biāo) EP, 將 MPLN 以及操作所需數(shù)據(jù)發(fā)送到各對應(yīng)的 EP。如果目標(biāo) EP
38、為本地則不發(fā)送,在本地直接完成操作;執(zhí)行修改操作從 EP 收到 MPLN 計(jì)劃和數(shù)據(jù)后生成執(zhí)行環(huán)境,執(zhí)行實(shí)際的修改操作;返回執(zhí)行結(jié)果主 EP 等待所有的從 EP 執(zhí)行完成后才會(huì)返回執(zhí)行結(jié)果給客戶端,只要其中有任一個(gè) EP 執(zhí)行失敗,則已經(jīng)執(zhí)行的所有 EP 都會(huì)回滾,保證數(shù)據(jù)的一致性,并返回錯(cuò)誤信息給客戶端。DDL 語句分發(fā)與 3.2.4 節(jié)中介紹的 DML 語句并行執(zhí)行計(jì)劃處理流程不同,DM MPP 對 DDL 語句的處理采用語句分發(fā)方式。主 EP 直接將 DDL 語句發(fā)送給各從 EP,每個(gè)從 EP 各自執(zhí)行該 DDL 語句。主 EP 等待所有的從 EP 執(zhí)行完成后才返回消息給用戶,只要其中有
39、任一個(gè) EP 執(zhí)行失敗,則已經(jīng)執(zhí)行的所有 EP 都會(huì)進(jìn)行回滾,保證數(shù)據(jù)的一致性,并返回錯(cuò)誤信息給客戶端。由于DDL 語句分發(fā),使得在 MPP 中登錄任一 EP 執(zhí)行的 DDL 操作都是全局的,包括數(shù)據(jù)庫對象的建立、修改和刪除等,也包括用戶的建立、修改與刪除。相關(guān)配置文件dm.ini MPP 相關(guān)配置項(xiàng)dm.ini 是 DM 數(shù)據(jù)庫實(shí)例的配置文件,通過配置該文件可以設(shè)置 DM 數(shù)據(jù)庫服務(wù)器的各種功能和性能選項(xiàng)。dm.ini 中的配置項(xiàng)多達(dá)數(shù)百個(gè),涉及DM 數(shù)據(jù)庫運(yùn)行各個(gè)方面的設(shè)置,這里我們只介紹與 MPP 相關(guān)的幾個(gè)配置項(xiàng),讀者若對其他配置項(xiàng)感興趣可以參看DM8 系統(tǒng)管理員手冊的相關(guān)章節(jié)。表 3
40、.2 dm.ini MPP 相關(guān)配置項(xiàng)配置項(xiàng)配置含義INSTANCE_NAME數(shù)據(jù)庫實(shí)例名(長度不超過 16 個(gè)字符)PORT_NUMDM 服務(wù)器通訊端口號, 有效值范圍(102465534)MAL_INIMAL 系統(tǒng)配置開關(guān),0 表示不啟用 MAL 系統(tǒng),1 表示啟用 MAL 系統(tǒng),默認(rèn)值為 0MPP_INIMPP 系統(tǒng)配置開關(guān),0 表示不啟用 MPP 系統(tǒng),1 表示啟用 MPP 系統(tǒng),默認(rèn)值為 0MAX_EP_SITESMPP 環(huán)境下 EP 節(jié)點(diǎn)的最大數(shù)量,有效值范圍(21024),默認(rèn)值為64MPP_HASH_LR_RATEMPP 下,對 HASH JOIN 節(jié)點(diǎn),可以根據(jù)左右兒子 CA
41、RD 代價(jià)的比值, 調(diào)整 HASH_JOIN 的左右兒子的 MOTION 添加,從而影響計(jì)劃。如果CARD 比值超過此值,則小數(shù)據(jù)量的一方全部收集到主 EP 來做。取值范圍,默認(rèn)值為 10MPP_OP_JUMPMPP 系統(tǒng)中操作符的跳轉(zhuǎn)開關(guān),是否支持通訊操作符的跳轉(zhuǎn)功能。1:支持;0:不支持。取值范圍:0、1,默認(rèn)值為 1PHF_NTTS_OPTMPP 系統(tǒng)中是否進(jìn)行NTTS 計(jì)劃的優(yōu)化,打開時(shí)可能減少計(jì)劃中的NTTS操作符。1:支持;0:不支持。取值范圍:0、1,默認(rèn)值為 1另外,DM MPP 要求MPP 系統(tǒng)中每個(gè) EP 的建庫參數(shù)及 dm.ini 中一些配置參數(shù)
42、的配置值必須一致,在用戶第一次全局登錄 MPP 系統(tǒng)時(shí)會(huì)進(jìn)行檢查,如果設(shè)置不一致,則會(huì)報(bào)錯(cuò)。這些配置項(xiàng)如下表所示。表 3.3 MPP 中每個(gè) EP 必須設(shè)置相同的配置項(xiàng)配置項(xiàng)配置含義建庫參數(shù)BLANK_PAD_MODE設(shè)置字符串比較時(shí),結(jié)尾空格填充模式是否兼容 ORACLE,0:不兼容;1:兼容。默認(rèn)為 0LENGTH_IN_CHARVARCHAR 類型對象的長度是否以字符為單位,0:否,以字節(jié)為單位;1:是,以字符為單位。默認(rèn)值為 0USE_NEW_HASH字符類型在計(jì)算 HASH 值時(shí)所采用的 HASH 算法類別,0:原始 HASH算法;1:改進(jìn)的 HASH 算法。默認(rèn)值為 1dm.ini
43、 參數(shù)COMPRESS_MODE建表時(shí)是否缺省壓縮。0:不進(jìn)行;1:進(jìn)行。默認(rèn)值為 0PARALLEL_POLICY用來設(shè)置并行策略。取值范圍:0、1 和 2,缺省為 0。其中,0 表示不支持并行;1 表示自動(dòng)并行模式;2 表示手動(dòng)并行模式。默認(rèn)值為 0LIST_TABLE默認(rèn)情況下,創(chuàng)建的表是否為堆表,0:否;1:是。默認(rèn)值為 0COMPATIBLE_MODE是否兼容其他數(shù)據(jù)庫模式。0:不兼容,1:兼容 SQL92 標(biāo)準(zhǔn),2:兼容 ORACLE,3:兼容 MS SQL SERVER,4:兼容 MYSQL,5:兼容DM6,6:兼容 Teradata。默認(rèn)值為 0COUNT_64BITCOUNT
44、 集函數(shù)的值是否設(shè)置為 BIGINT。0:否;1:是。默認(rèn)值為 1ALTER_TABLE_OPT是否對加列、修改列、刪除列操作進(jìn)行優(yōu)化,0:全部不優(yōu)化;1:全部優(yōu)化;2:打開快速加列,對于刪除列和修改列與 1 等效。默認(rèn)值0為dmmal.ini 配置項(xiàng)dmmal.ini 是 MAL 系統(tǒng)的配置文件,此配置文件生效的前提是 dm.ini 中的參數(shù)MAL_INI 置為 1。使用同一套 MAL 系統(tǒng)的所有實(shí)例,MAL 系統(tǒng)配置文件要嚴(yán)格保持一致。dmmal.ini 的配置參數(shù)及其介紹見下表。表 3.4 dmmal.ini 配置項(xiàng)配置項(xiàng)配置含義MAL_CHECK_INTERVALMAL 鏈路檢測時(shí)間間
45、隔,取值范圍(0s-1800s),默認(rèn) 30s,配置為 0 表示不進(jìn)行 MAL 鏈路檢測。為了防止誤判,DMRAC 集群中,建議將配置值= DCR_GRP_NETCHK_TIME。MAL_CONN_FAIL_INTERVAL判定 MAL 鏈路斷開的時(shí)間,取值范圍(2s-1800s),默認(rèn) 10sMAL_LEAK_CHECK是否打開 MAL 內(nèi)存泄露檢查,0:關(guān)閉,1:打開,默認(rèn) 0MAL_LOGIN_TIMEOUTMPP/DBLINK 等實(shí)例間登錄時(shí)的超時(shí)檢測間隔(3-1800),以秒為單位,默認(rèn) 15sMAL_BUF_SIZE單個(gè) MAL 緩存大小限制,以兆為單位。當(dāng)此 MAL 的緩存郵件超
46、過此大小,則會(huì)將郵件存儲(chǔ)到文件中。有效值范圍(0500000),默認(rèn)為 100MAL_SYS_BUF_SIZEMAL 系統(tǒng)總內(nèi)存大小限制,單位:M。有效值范圍(0500000),默認(rèn)為 0,表示 MAL 系統(tǒng)無總內(nèi)存限制MAL_VPOOL_SIZEMAL 系統(tǒng)使用的內(nèi)存初始化大小,以兆為單位。有效值范圍( 1500000 ),默 認(rèn)為 128 ,此值 一般要 設(shè)置的 比MAL_BUF_SIZE 大一些MAL_COMPRESS_LEVELMAL 消息壓縮等級,取值范圍(0-10)。默認(rèn)為 0,不進(jìn)行壓縮; 19 表示采用 lz 算法,從 1 到 9 表示壓縮速度依次遞減,壓縮率依次遞增;10 表
47、示采用 quicklz 算法,壓縮速度高于 lz 算法,壓縮率相對低MAL_TEMP_PATH指定臨時(shí)文件的目錄。當(dāng)郵件使用的內(nèi)存超過 mal_buf_size或者 mal_sys_buf_size 時(shí),將新產(chǎn)生的郵件保存到臨時(shí)文件中。如果缺省,則新產(chǎn)生的郵件保存到 temp.dbf 文件中MAL_NAMEMAL 名稱,同一個(gè)配置文件中 MAL 名稱需保持唯一性MAL_INST_NAME數(shù)據(jù)庫實(shí)例名,與 dm.ini 的 INSTANCE_NAME 配置項(xiàng)保持一致,MAL 系統(tǒng)中數(shù)據(jù)庫實(shí)例名要保持唯一MAL_HOSTMAL IP 地址,使用 MAL_HOST + MAL_PORT 創(chuàng)建 MAL
48、 鏈路MAL_PORTMAL 監(jiān)聽端口MAL_INST_HOSTMAL_INST_NAME 實(shí)例對外服務(wù) IP 地址MAL_INST_PORTMAL_INST_NAME 實(shí)例對外服務(wù)端口,和 dm.ini 中的 PORT_NUM 保持一致MAL_DW_PORTMAL_INST_NAME 實(shí)例守護(hù)進(jìn)程監(jiān)聽端口,其他守護(hù)進(jìn)程或監(jiān)視器使用 MAL_HOST + MAL_DW_PORT 創(chuàng)建 TCP 連接。MAL_LINK_MAGICMAL 鏈路網(wǎng)段標(biāo)識(shí),有效值范圍(0-65535),默認(rèn) 0。設(shè)置此參數(shù)時(shí),同一網(wǎng)段內(nèi)的節(jié)點(diǎn)都設(shè)置相同,不同網(wǎng)段內(nèi)的節(jié)點(diǎn)設(shè)置的值必須不一樣dmmpp.ctldmmpp.c
49、tl 是DM MPP 系統(tǒng)的控制文件,它是一個(gè)二進(jìn)制文件,用戶不能直接進(jìn)行配置。用戶需要首先配置 dmmpp.ini,然后利用 dmctlcvt 工具進(jìn)行轉(zhuǎn)換得到生成的dmmpp.ctl 文件。MPP 系統(tǒng)中的每個(gè) EP 都必須使用相同的 dmmpp.ctl 文件,進(jìn)行文件拷貝即可。dmmpp.ini 的配置參數(shù)及其介紹見下表。表 3.5 dmmpp.ini 配置項(xiàng)配置項(xiàng)配置含義SERVICE_NAME標(biāo)識(shí) MPP 系統(tǒng)中每個(gè) EP 實(shí)例的選項(xiàng)名MPP_SEQ_NO實(shí)例在 mpp 系統(tǒng)內(nèi)的序號,取值范圍為 01023MPP_INST_NAME實(shí)例名DM MPP 環(huán)境搭建與使用本章介紹在實(shí)際應(yīng)用
50、環(huán)境中應(yīng)如何規(guī)劃、配置與部署 DM MPP 系統(tǒng)。通過閱讀本章, 讀者可以從根據(jù)應(yīng)用實(shí)際情況制定一個(gè)合適的 DM MPP 方案開始,完成 DM MPP 的配置與部署,建立應(yīng)用分布表并載入數(shù)據(jù)。制定合適的 DM MPP 方案對于一個(gè)應(yīng)用系統(tǒng),如果制定出一個(gè)合適的 DM MPP 解決方案呢?可以主要從以下幾個(gè)方面入手:應(yīng)用是否適合使用 DM MPP 方案DM MPP 解決方案具有高性價(jià)比、高可靠性、功能強(qiáng)大、可動(dòng)態(tài)擴(kuò)容等優(yōu)點(diǎn),但也是有其局限性的,并非是萬能解藥。DM MPP 主要針對海量數(shù)據(jù)的 OLAP 應(yīng)用而研發(fā),在合理規(guī)劃的前提下,對普通的、并發(fā)量不大的一般 OLTP 或混合類型應(yīng)用也適用,但
51、不適合于高并發(fā)操作的OLTP 類型應(yīng)用。需要使用多大規(guī)模的 DM MPP 方案確定應(yīng)用適合使用DM MPP 解決方案后,接下來需要根據(jù)應(yīng)用規(guī)模確定 MPP 的節(jié)點(diǎn)數(shù)。DM MPP 最多支持 1024 個(gè) EP 節(jié)點(diǎn),在實(shí)際應(yīng)用中具體使用幾個(gè) EP 節(jié)點(diǎn)則應(yīng)根據(jù)應(yīng)用數(shù)據(jù)規(guī)模、硬件規(guī)劃、網(wǎng)絡(luò)帶寬和項(xiàng)目預(yù)算情況而定。理論上來說節(jié)點(diǎn)數(shù)越多越好,這樣并行越充分,效率越高。但這也不是絕對的,方案設(shè)計(jì)者應(yīng)同時(shí)考慮到 EP 節(jié)點(diǎn)間網(wǎng)絡(luò)資源的情況,如果網(wǎng)絡(luò)是瓶頸,則并不是節(jié)點(diǎn)數(shù)越多越好。需要配置怎樣的硬件資源DM MPP 采用完全對等不共享架構(gòu),不需要專用硬件,可以采用普通的 PC 服務(wù)器組建集群。需要注意的是
52、,DM MPP 系統(tǒng)需要通過網(wǎng)絡(luò)在各 EP 間傳遞數(shù)據(jù),因此網(wǎng)絡(luò)的帶寬對于 MPP 系統(tǒng)的效率非常重要,建議配置千兆或萬兆內(nèi)部網(wǎng)絡(luò),用戶應(yīng)根據(jù)實(shí)際需求、配置成本及實(shí)際條件等綜合評估決定。如何設(shè)計(jì)應(yīng)用表DM MPP 系統(tǒng)中的數(shù)據(jù)分布在各 EP 中,支持表數(shù)據(jù)的哈希分布、隨機(jī)分布、復(fù)制分布、范圍分布、LIST 分布類型,用戶應(yīng)根據(jù)表在應(yīng)用中的特點(diǎn)選擇合適的分布類型,可參考3.1.3 節(jié)。除了表的分布類型,管理員還應(yīng)根據(jù)應(yīng)用的實(shí)際情況確定表的分布列、分布列的數(shù)據(jù)類型以及是否需要組合分布列等,對于查詢連接中使用頻率較高的連接鍵等可以考慮作為分布列。如何配置 DM MPP 系統(tǒng)參數(shù)DM 數(shù)據(jù)庫實(shí)例配置文
53、件 dm.ini 和 MAL 系統(tǒng)配置文件 dmmal.ini 中一些參數(shù)的配置會(huì)影響 MPP 系統(tǒng)的運(yùn)行性能,管理員應(yīng)根據(jù)應(yīng)用和硬件的實(shí)際情況對這些參數(shù)進(jìn)行適當(dāng)?shù)呐渲?。同時(shí)應(yīng)注意各 EP 必須保持一致的 INI 參數(shù),具體見 3.3.1 節(jié)。DM MPP 環(huán)境搭建本節(jié)我們將以一個(gè)簡單的兩節(jié)點(diǎn) MPP 為例,介紹手動(dòng)配置與搭建DM MPP 環(huán)境的步驟。DM 提供了 DM web 版數(shù)據(jù)庫管理工具,可以很方便地搭建 DM MPP,具體見 5.1 節(jié)。但是閱讀本節(jié)將更有利于讀者掌握配置的流程,更好地在 MPP 系統(tǒng)運(yùn)行時(shí)進(jìn)行管理。系統(tǒng)規(guī)劃本例配置一個(gè)兩節(jié)點(diǎn) MPP。兩個(gè)節(jié)點(diǎn)都配置兩塊網(wǎng)卡,一塊接入
54、內(nèi)部網(wǎng)絡(luò)交換模塊,一塊接入到外部交換機(jī)。兩節(jié)點(diǎn)實(shí)例名分別為 EP01 和EP02,相關(guān)的 IP、端口等規(guī)劃見下表。表 4.1 MPP 系統(tǒng)規(guī)劃實(shí)例名MAL_INST_HOSTMAL_INST_PORTMAL_HOSTMAL 端口MPP_SEQNOEP01192.168.1.115236192.168.0.1252690EP02192.168.1.215237192.168.0.2252701DM MPP 各 EP 使用的 DM 服務(wù)器版本應(yīng)一致,同時(shí)還應(yīng)注意各 EP 所在主機(jī)的操作系統(tǒng)位數(shù)、大小端模式、時(shí)區(qū)及時(shí)間設(shè)置都應(yīng)一致,否則可能造成意想不到的錯(cuò)誤。配置 dm.ini首先,在 EP01 和
55、EP02 上分別創(chuàng)建數(shù)據(jù)庫,用戶可以使用 DM 的圖形化客戶端工具“數(shù)據(jù)庫配置助手”或命令行工具dminit 創(chuàng)建數(shù)據(jù)庫。在各 EP 上創(chuàng)建數(shù)據(jù)庫時(shí),要求有些初始化參數(shù)必須所有 EP 都相同,見3.3.1 節(jié)表 3.3。我們建議各 EP 的數(shù)據(jù)庫初始化參數(shù)都保持一致,以免產(chǎn)生錯(cuò)誤。分別對兩個(gè)實(shí)例的dm.ini 進(jìn)行配置。= 1MPP_INI= 1MAL_INI= 5236PORT_NUMINSTANCE_NAME= EP01修改EP01 的 dm.ini 的以下幾個(gè)參數(shù)如下:修改EP02 的 dm.ini 的以下幾個(gè)參數(shù)如下:= 1MPP_INI= 1MAL_INI= 5237PORT_NUM
56、INSTANCE_NAME= EP02配置 dmmal.ini為兩個(gè) EP 配置 dmmal.ini 如下,配置完全一樣,EP 間可互相拷貝。dmmal.ini 與MAL_INST_HOST = 192.168.1.11MAL_INST_PORT = 5236= 5269MAL_PORT= 192.168.0.12MAL_HOSTMAL_INST1MAL_INST_NAME = EP01dm.ini 放在相同的目錄下。MAL_INST_HOST = 192.168.1.21MAL_INST_PORT = 5237= 5270MAL_PORT= 192.168.0.22MAL_HOSTMAL_I
57、NST2MAL_INST_NAME = EP02配置 dmmpp.ctlSERVICE_NAME1 MPP_SEQ_NO= 0 MPP_INST_NAME= EP01SERVICE_NAME2 MPP_SEQ_NO= 1 MPP_INST_NAME= EP02dmmpp.ctl 是一個(gè)二進(jìn)制文件,用戶不能直接配置,需要先配置dmmpp.ini。配置dmmpp.ini 如下:使用DM 提供的工具 dmctlcvt 將 dmmpp.ini 轉(zhuǎn)換成 dmmpp.ctl,dmctlcvt 工具在 DM 安裝目錄的“bin”子目錄中。DEST=c:dmdbmsdatadamengdmmpp.ctlSRC
58、=c:dmdbmsdatadamengdmmpp.iniTYPE=2dmctlcvt轉(zhuǎn)換生成的 dmmpp.ctl 需要放在與 dm.ini 同一個(gè)目錄。假設(shè) DM 的安裝路徑為 c 盤根目錄,下面的命令將 dmmpp.ini 轉(zhuǎn)換為 dmmpp.ctl,命令中的“TYPE=2”參數(shù)表示將文本文件轉(zhuǎn)換成控制文件,也可以使用“TYPE=1”參數(shù)進(jìn)行逆向轉(zhuǎn)換。將生成的 dmmpp.ctl 拷貝至另一 EP,保證 MPP 系統(tǒng)中所有 EP 的 dmmpp.ctl 完全相同。運(yùn)行 MPP經(jīng)過前面四個(gè)步驟,DM MPP 環(huán)境已經(jīng)配置完成了。分別啟動(dòng) EP01 和 EP02 的 DM 數(shù)據(jù)庫實(shí)例(順序不分
59、先后),DM MPP 系統(tǒng)即能正常運(yùn)行,用戶就可以登錄任一 EP 進(jìn)行數(shù)據(jù)庫操作了。建立分布表DM MPP 支持表數(shù)據(jù)的哈希分布、隨機(jī)分布、復(fù)制分布、范圍分布、LIST 分布類型, 用戶可根據(jù)實(shí)際情況選擇合適的分布類型,具體各分布類型的特點(diǎn)見 3.1.3 節(jié)。MPP 的數(shù)據(jù)分布類型和具體設(shè)置在建表時(shí)指定,語法如下,建表的其他語法分支可參見DM8_SQL 語言使用手冊。CREATE GLOBAL TEMPORARY TABLE ;:= | := ( , ,) ON COMMIT ROWS := ON COMMIT ROWS AS ;:=DISTRIBUTED|DISTRIBUTED BY ( ,
60、)|DISTRIBUTED BY RANGE ( ,)( ,)|DISTRIBUTED BY LIST ( ,)( ,):= VALUES LESS THAN (,) ON |VALUES EQU OR LESS THAN (,) ON := VALUES (,) ON CREATE TABLE T_HASH(C1 INT, C2 CHAR(10)DISTRIBUTED BY HASH (C1);下面給出幾個(gè)簡單的創(chuàng)建不同類型分布表的例子。例 1:創(chuàng)建哈希分布表 T_HASH,分布列為 C1。例 2:創(chuàng)建隨機(jī)分布表T_RANDOM。CREATE TABLE T_RANDOM(C1 INT, C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級學(xué)生法治教育活動(dòng)計(jì)劃
- 班主任校園暴力預(yù)防工作計(jì)劃
- 2025-2030中國嬰兒拉式蚊帳行業(yè)市場發(fā)展分析及需求分析與投資研究報(bào)告
- 2025-2030中國女裝行業(yè)市場深度調(diào)研及調(diào)查研究報(bào)告
- 五年級語文趣味學(xué)習(xí)計(jì)劃
- 2025-2030中國頭發(fā)干燥洗發(fā)水行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國增強(qiáng)拉伸膜行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 物流行業(yè)2025年安全管理培訓(xùn)計(jì)劃
- 2025-2030中國垃圾處理行業(yè)發(fā)展分析及投資風(fēng)險(xiǎn)與戰(zhàn)略研究報(bào)告
- 2025-2030中國垂直登山者行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報(bào)告
- 企業(yè)發(fā)展能力分析 -以中國石化集團(tuán)公司為例-企業(yè)發(fā)展-畢業(yè)論文
- 英語閱讀教學(xué)【講座課件】
- FANUC伺服報(bào)警系統(tǒng)介紹和維修要點(diǎn)
- 學(xué)生會(huì)組織結(jié)構(gòu)圖及具體職責(zé)
- 初中物理中考復(fù)習(xí)備考策略共53頁課件
- DL∕T 5544-2018 架空輸電線路錨桿基礎(chǔ)設(shè)計(jì)規(guī)程
- 高層建筑核心筒設(shè)計(jì)實(shí)例分析(共67頁)
- 陶瓷磚購銷合同模板直接用
- 電機(jī)學(xué)同步電機(jī)-全套課件
- 基于AT89S52單片機(jī)的自動(dòng)干手器的設(shè)計(jì)與實(shí)現(xiàn)
- 《特種設(shè)備目錄》(2022年第114號)
評論
0/150
提交評論