版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Security Level: ONIP SOABean DDS開(kāi)發(fā)維護(hù)指南開(kāi)發(fā)維護(hù)指南HUAWEI Telco-SOA PDUHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 2目錄DDS部署及使用51產(chǎn)品集成的困境與挑戰(zhàn)DDS特性介紹3DDS開(kāi)發(fā)指南4DDS產(chǎn)品定位2HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 產(chǎn)品集成的困境和挑戰(zhàn)產(chǎn)品集成的困境和挑戰(zhàn)Page 3IT系統(tǒng)集中化建設(shè)例如
2、:聯(lián)通CRM&Billing集中化海量用戶互聯(lián)網(wǎng)應(yīng)用例如:移動(dòng)的各類(lèi)基地企業(yè)服務(wù)集成,ICT融合越來(lái)越深入,數(shù)據(jù)需要集中建設(shè)集中服務(wù)異構(gòu)數(shù)據(jù)庫(kù),使得數(shù)據(jù)復(fù)雜性的不斷增加客戶不想直面眾多的、異構(gòu)的數(shù)據(jù)CRMASPISP/ICPORTALHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 4目錄DDS部署及使用52DDS產(chǎn)品定位DDS特性介紹3DDS開(kāi)發(fā)指南4產(chǎn)品集成的困境與挑戰(zhàn)1HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential DDS產(chǎn)品定位產(chǎn)品定位Page 51、提供透明的數(shù)據(jù)訪問(wèn)接
3、口2、支持水平/垂直分庫(kù),支持海量數(shù)據(jù)儲(chǔ)存和高并發(fā)數(shù)據(jù)訪問(wèn)3、提供多種數(shù)據(jù)分庫(kù)策略,滿足不同業(yè)務(wù)的分庫(kù)要求4、支持讀寫(xiě)分離和讀負(fù)載均衡策略5、提供多數(shù)據(jù)源數(shù)據(jù)映射模型,支持異構(gòu)數(shù)據(jù)源DDS集群ApplicationDDS1JDBCApplicationApplicationDDS2DDS3RDBMSRDBMSRDBMSHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential DDS幾個(gè)重要概念幾個(gè)重要概念數(shù)據(jù)源(數(shù)據(jù)源(DataSource):即數(shù)據(jù)庫(kù)的來(lái)源,對(duì)應(yīng)Oracle的一個(gè)User,或者M(jìn)ySQL的一個(gè)DataBase。數(shù)據(jù)節(jié)點(diǎn)(數(shù)據(jù)節(jié)點(diǎn)(Dat
4、aNode):一組具有相同數(shù)據(jù)副本的數(shù)據(jù)源的分組,在DDS中通過(guò)它來(lái)提供數(shù)據(jù)讀寫(xiě)分離能力。數(shù)據(jù)表分區(qū)(數(shù)據(jù)表分區(qū)(Table Partition):將邏輯數(shù)據(jù)表的記錄按照一種規(guī)則分成多個(gè)分區(qū),每個(gè)分區(qū)分別存放到一個(gè)數(shù)據(jù)節(jié)點(diǎn)上。分區(qū)規(guī)則(分區(qū)規(guī)則(Sharding Rule):用于對(duì)數(shù)據(jù)表記錄進(jìn)行分區(qū)的規(guī)則。DDS支持的分區(qū)規(guī)則包含Range/Hash兩種。分區(qū)鍵(分區(qū)鍵(Sharding Key):參與數(shù)據(jù)表記錄進(jìn)行分區(qū)計(jì)算的字段集合Schema:DDS中提供給客戶進(jìn)行資源(例如數(shù)據(jù)表,Sequence等)管理的一個(gè)邏輯對(duì)象,客戶可創(chuàng)建多個(gè)Schema管理不同業(yè)務(wù)中的表或其它資源。路由(路由(
5、Route):根據(jù)分區(qū)鍵值將SQL操作分發(fā)到對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)去執(zhí)行。Page 6Read-dbRead-dbWrite-dbRead-dbRead-dbWrite-db數(shù)據(jù)源數(shù)據(jù)節(jié)點(diǎn)T_CUSTOMER(userid, username, )Userid = 1000000分區(qū)規(guī)則分區(qū)鍵SQL路由HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 7目錄DDS部署及使用53DDS特性介紹產(chǎn)品集成的困境與挑戰(zhàn)1DDS開(kāi)發(fā)指南4DDS產(chǎn)品定位2HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential DD
6、S功能視圖功能視圖Page 8DDS ServerSession ManagementLoad BalanceCursorAgent TaskListenerDDS ClientCLIDDS ToolsHeart beatSessionMonitorInfrastructureOMLog ServerLDBCConn PoolJDBCODBCConsole ToolGUI ToolCommunicationNodeManagementMPR(Multi-Platform Runtime)Global Area/PGATable DictionaryTMPolicy ManagementShar
7、ding PolicyRead Write PolicyRouting PolicyWindows WrapperSUSE WrapperAIX WrapperOracle DriverDB2 DriverMySQL DriverGaussDB DriverConfigSpinlockUpgrading PolicyAdapting PolicyDistributed SQL EngineSQL ParserDistributed SQL ExecutorDML ParserDDL ParserDCL ParserParser CacheDistributed SQL PlannerDistr
8、ibuted SQL OptimizerOptimizer Pattern RepositoryGroup-by PlacementSub-query UnnestView MergePredict PushData Sharding OptimizerData AmountOptimizerNetwork Times OptimizerDML ExecutorDDL ExecutorDCL ExecutorDistributed Transaction ManagementEvent TriggerNode AgentSecurity PolicyHUAWEI TECHNOLOGIES CO
9、., LTD.Huawei Confidential 基本工作流程基本工作流程Page 9SQL解析解析將SQL文本解析為一顆語(yǔ)法樹(shù)SQL優(yōu)化優(yōu)化基于語(yǔ)句本身,對(duì)SQL語(yǔ)法樹(shù)進(jìn)行等價(jià)優(yōu)化變換SQL變形變形基于數(shù)據(jù)分布,數(shù)據(jù)源類(lèi)型,進(jìn)行SQL變形,最大程度利用物理數(shù)據(jù)能力創(chuàng)建執(zhí)行計(jì)劃創(chuàng)建執(zhí)行計(jì)劃基于規(guī)則或代價(jià)最小原則,創(chuàng)建執(zhí)行計(jì)劃執(zhí)行計(jì)劃并發(fā)執(zhí)行執(zhí)行計(jì)劃并發(fā)執(zhí)行傳入?yún)?shù),多分區(qū)并發(fā)處理執(zhí)行計(jì)劃,匯聚處理結(jié)果,響應(yīng)客戶12345【舉例】Select t1.f1, t2.f2, SUM(t1.f3)From t1,t2Where t1.f1 = t2.f1 and t1.f1 = :1 and t2
10、.f2 :2Group by t1.f1,t2.f2HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential DDS 重要特性重要特性提供透明數(shù)據(jù)訪問(wèn)支持,支持多種數(shù)據(jù)庫(kù)提供透明數(shù)據(jù)訪問(wèn)支持,支持多種數(shù)據(jù)庫(kù)支持?jǐn)?shù)據(jù)垂直劃分和水平劃分支持?jǐn)?shù)據(jù)垂直劃分和水平劃分支持分布式主鍵支持分布式主鍵支持?jǐn)?shù)據(jù)多級(jí)路由支持?jǐn)?shù)據(jù)多級(jí)路由支持讀寫(xiě)分離支持讀寫(xiě)分離提供集群負(fù)載均衡提供集群負(fù)載均衡支持分布式支持分布式XA事務(wù)事務(wù)支持彈性伸縮支持彈性伸縮支持?jǐn)?shù)據(jù)擴(kuò)容支持?jǐn)?shù)據(jù)擴(kuò)容Page 10HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidenti
11、al 提供數(shù)據(jù)透明訪問(wèn)提供數(shù)據(jù)透明訪問(wèn),支持多種數(shù)據(jù)庫(kù)支持多種數(shù)據(jù)庫(kù)Page 111、向客戶呈現(xiàn)一個(gè)集中式虛擬數(shù)據(jù)庫(kù),屏蔽了底層各種數(shù)據(jù)源的差異、特質(zhì)和實(shí)現(xiàn),以及位置2、向客戶提供統(tǒng)一的DDS SQL語(yǔ)言,屏蔽各種數(shù)據(jù)源SQL語(yǔ)言的差異3、提供統(tǒng)一的錯(cuò)誤代碼4、嚴(yán)格遵循關(guān)系數(shù)據(jù)庫(kù)ACID原則5、支持異構(gòu)數(shù)據(jù)庫(kù),分階段支持ORACLE,MySQL、PostgreSQL等等數(shù)據(jù)庫(kù)Application(C+)BODAFApplication(Java)BODAFApplication(Java)JDBCApplication(C+)ODBCCloud Data ServerCloud Data S
12、erverOracleDB2MySQLFastoreTeastore元數(shù)據(jù)管理虛擬點(diǎn)虛擬節(jié)點(diǎn)管理中心DDS Instance Active BufferData Sharding PolicyDistributed SQL EngineUpgrading PolicyMeta dataRedo filesParameterData FileData Read-Write PolicyData Routing PolicySecurity PolicyDataSource AdaptingDistributed Transaction ManagementServer ClusterData B
13、ackup & RecoveryData Online Move ToolsData ReshardingData LoadData MonitorData Query StandBy BufferHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 支持?jǐn)?shù)據(jù)垂直劃分和水平劃分支持?jǐn)?shù)據(jù)垂直劃分和水平劃分Page 121、支持按業(yè)務(wù)管理數(shù)據(jù)表和其它資源,不同業(yè)務(wù)使用不同schema進(jìn)行垂直劃分管理。2、支持按指定字段和算法將數(shù)據(jù)表記錄進(jìn)行分區(qū)存放,實(shí)現(xiàn)數(shù)據(jù)水平劃分。3、支持Range、Hash兩種分區(qū)算法。其中Range支持Number、Str
14、ing、Date三種類(lèi)型。4、支持不分區(qū)系統(tǒng)表、參數(shù)表在多個(gè)分區(qū)保存一個(gè)副本(復(fù)制表復(fù)制表),提升多表操作處理效率。(訂購(gòu)域)分區(qū)1(訂購(gòu)域)分區(qū)2(訂購(gòu)域)分區(qū)(賬單域)分區(qū)1(賬單域)分區(qū)2(賬單域)分區(qū)DDSnDDS1Schema-OrderSchema-BillingHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 支持分布式主鍵支持分布式主鍵Page 13DDSDN1DN2DNmApplicationSeq1: Start with Increment by n mSequenceSequence可以創(chuàng)建在一個(gè)或多個(gè)數(shù)據(jù)源上:可以創(chuàng)建在
15、一個(gè)或多個(gè)數(shù)據(jù)源上:CREATE SEQUENCE schema_name. seq_nameSTART WITH start_val INCREMENT BY stepMINVALUE min_val MAXVALUE max_valON dn_name , dn_name , . n;使用使用SequenceSequence:SELECT seq1.currval from dualSELECT seq1.nextval from dual;SELECT seq1.nextval FROM dual CONNECT BY level = 分布分布SequenceSequence特點(diǎn)特點(diǎn)1
16、1、若、若SequenceSequence創(chuàng)建在一個(gè)數(shù)據(jù)節(jié)點(diǎn)上創(chuàng)建在一個(gè)數(shù)據(jù)節(jié)點(diǎn)上可保證主鍵值唯一且連續(xù),但可靠性低2 2、若、若SequenceSequence創(chuàng)建在多個(gè)數(shù)據(jù)源上創(chuàng)建在多個(gè)數(shù)據(jù)源上可保證主鍵值唯一,但不保證連續(xù),可靠性高Seq1: Start with Increment by n+1 mSeq1: Start with Increment by n+m mHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 支持多級(jí)數(shù)據(jù)路由支持多級(jí)數(shù)據(jù)路由Page 14DDSDN11DN12ApplicationDN13DN21DN22DN330
17、214-1)P1-1P2:1000000120000000214215-1)P1-2215216-1)P1-3SELECT * FROM USERWHERE userid = ?P1:1100000000214-1)P2-1214215-1)P2-2215216-1)P2-3分區(qū)表創(chuàng)建分區(qū)表創(chuàng)建CREATE TABLE dds.user( int userid, ) PARTITION BY(NumRange(userid)( PARTITION P1 VALUES INTERVAL(0, 1000000) PARTITION BY(RangeHash(userid) ( PARTITION
18、P1-1 VALUES INTERVAL(0, 214) ON dn11, PARTITION P1-2 VALUES INTERVAL(214, 215) ON dn12 PARTITION P1-2 VALUES INTERVAL(215, 216) ON dn13 ) PARTITION P2 VALUES INTERVAL(1000000, 2000000) PARTITION BY(RangeHash(userid) ( PARTITION P2-1 VALUES INTERVAL(0, 214) ON dn21, PARTITION P2-2 VALUES INTERVAL(214
19、, 215) ON dn22 PARTITION P2-2 VALUES INTERVAL(215, 216) ON dn23 ) );找到schema找到table找到二級(jí)分區(qū)找到一級(jí)分區(qū)找到數(shù)據(jù)節(jié)點(diǎn)找到數(shù)據(jù)源一級(jí)分區(qū)二級(jí)分區(qū)路由處理路由處理HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 支持讀寫(xiě)分離支持讀寫(xiě)分離Page 151、寫(xiě)操作時(shí),只寫(xiě)“寫(xiě)庫(kù)”。2、后臺(tái)通過(guò)數(shù)據(jù)同步工具將“寫(xiě)庫(kù)”數(shù)據(jù)同步到讀庫(kù)。3、讀操作只從“讀庫(kù)”讀取,也可以通過(guò)設(shè)置,“寫(xiě)庫(kù)”也參與讀處理。4、因?yàn)閿?shù)據(jù)同步需要時(shí)間,若要實(shí)時(shí)讀取剛剛更新的數(shù)據(jù),可以通過(guò)Hint指定從
20、“寫(xiě)庫(kù)”讀取。5、數(shù)據(jù)同步使用數(shù)據(jù)同步工具。DDS1DDS2DDS3ApplicationApplicationApplication數(shù)據(jù)同步數(shù)據(jù)同步數(shù)據(jù)同步WriteReadReadWriteReadReadWriteReadRead數(shù)據(jù)節(jié)點(diǎn)“寫(xiě)”數(shù)據(jù)源“讀”數(shù)據(jù)源HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 支持集群負(fù)載均衡支持集群負(fù)載均衡Page 16ApplicationZookeeperZookeeperZookeeperJDBCDDS2注冊(cè)狀態(tài)和允許的最大連接數(shù)獲取DDS狀態(tài)及允許的最大連接數(shù)依據(jù)負(fù)載均衡建立連接因?yàn)槊總€(gè)App與D
21、DS集群負(fù)載均衡,因此整個(gè)App與DDS也是負(fù)載均衡DDS3DDS1HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 支持分布式支持分布式XA事務(wù)事務(wù)Page 171、普通數(shù)據(jù)庫(kù)事務(wù)2、多數(shù)據(jù)庫(kù)XA事務(wù)RDBMSRDBMSDDS1ApplicationRDBMSRDBMSDDS1Application如果只涉及一個(gè)數(shù)據(jù)源,則使用普通數(shù)據(jù)庫(kù)事務(wù)提交如果涉及多個(gè)數(shù)據(jù)源,則使用XA數(shù)據(jù)庫(kù)事務(wù)提交RDBMSXA事務(wù)普通數(shù)據(jù)庫(kù)事務(wù)HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential DDS集群支持彈性伸縮支持彈性
22、伸縮Page 18DDSDDSZookeeperZookeeperZookeeperZookeeper集群實(shí)施步驟:1、增加DDS節(jié)點(diǎn)2、DDS向Zookeeper進(jìn)行狀態(tài)注冊(cè)。3、Zookeeper通知訂閱者JDBC(位于APP中)4、App建立連接時(shí)將新增DDS參與負(fù)載均衡DDS應(yīng)用背景:DDS性能不能滿足App需要APPJDBCAPPJDBCAPPJDBCDDSHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 無(wú)搬遷無(wú)搬遷Range分區(qū)擴(kuò)容分區(qū)擴(kuò)容Page 19Range1R1, R2)Range2R2, R3)Range3R3, R4)1
23、.應(yīng)用需要增加值域應(yīng)用需要增加值域R4,R5)2.增加一個(gè)數(shù)據(jù)節(jié)點(diǎn),規(guī)劃存增加一個(gè)數(shù)據(jù)節(jié)點(diǎn),規(guī)劃存放值域放值域R4,R5) 數(shù)據(jù)數(shù)據(jù)3.在在DDS集群中增加數(shù)據(jù)節(jié)點(diǎn)集群中增加數(shù)據(jù)節(jié)點(diǎn)信息信息4.DDS集群創(chuàng)建新分區(qū)集群創(chuàng)建新分區(qū)Range45.新分區(qū)新分區(qū)Range4參與參與DDS路由路由處理處理說(shuō)明:擴(kuò)容無(wú)需搬遷數(shù)據(jù),無(wú)需說(shuō)明:擴(kuò)容無(wú)需搬遷數(shù)據(jù),無(wú)需停機(jī)處理。停機(jī)處理。Node1Node2Node3ApplicationApplicationApplicationRange4R4, R5)應(yīng)用背景:擴(kuò)大數(shù)據(jù)的值域范圍,使用新的Range分區(qū)存放新增值域數(shù)據(jù)HUAWEI TECHNOLOGIE
24、S CO., LTD.Huawei Confidential 支持多級(jí)分區(qū)無(wú)搬遷擴(kuò)容支持多級(jí)分區(qū)無(wú)搬遷擴(kuò)容Page 20Node1Node2Node3ApplicationApplicationApplication應(yīng)用背景:按時(shí)間、按區(qū)域、按范圍進(jìn)行一級(jí)分區(qū)擴(kuò)展。10000001200000001100000002000000130000000一級(jí)路由Range(UserID)二級(jí)路由Hash(UserID)0214)214215)215216)0214)214215)215216)0214)214215)215216)實(shí)施步驟實(shí)施步驟1.增加一組新的數(shù)據(jù)節(jié)點(diǎn),用于存放擴(kuò)展二級(jí)分區(qū)數(shù)據(jù)2.在
25、DDS集群中增加數(shù)據(jù)節(jié)點(diǎn)信息3.DDS集群創(chuàng)建新的二級(jí)分區(qū)4.新二級(jí)分區(qū)參與DDS路由處理說(shuō)明:使用二級(jí)分區(qū)擴(kuò)容無(wú)需搬遷數(shù)據(jù),無(wú)需停機(jī)處理。HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 在數(shù)據(jù)庫(kù)節(jié)點(diǎn)數(shù)不太多的場(chǎng)景(=16節(jié)點(diǎn)),可以采取共享磁陣方案,水平擴(kuò)展時(shí)無(wú)需復(fù)制數(shù)據(jù),只需重新掛載。此方案的優(yōu)點(diǎn)是簡(jiǎn)單易實(shí)施,水平擴(kuò)展效率高,缺點(diǎn)是磁陣吞吐能力限制了最大節(jié)點(diǎn)數(shù)。DDS以Instance顆粒來(lái)遷移數(shù)據(jù):123456Node 1Node 2123456Node 1Node 2Node 3不搬遷數(shù)據(jù)共享磁陣擴(kuò)容不搬遷數(shù)據(jù)共享磁陣擴(kuò)容應(yīng)用背景:數(shù)據(jù)
26、庫(kù)處理能力不足Step 1:在Node 1上關(guān)閉instance 3,Node2上關(guān)閉instance 6,凍結(jié)DDS對(duì)這兩個(gè)實(shí)例的訪問(wèn)Step 2:將Instance 3和Instance 6的數(shù)據(jù)VG去激活,并在新增的Node 3上激活Step 3:在Node 3上啟動(dòng)Instance 3和Instance 6,取消DDS上的凍結(jié)HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 當(dāng)節(jié)點(diǎn)數(shù)大于16時(shí),需要采用本方案。以Partition為數(shù)據(jù)遷移的最小單位,并依賴數(shù)據(jù)庫(kù)本身的物理復(fù)制技術(shù)提升遷移效率。在Oracle數(shù)據(jù)庫(kù)中,DDS的一個(gè)Part
27、ition對(duì)應(yīng)到數(shù)據(jù)庫(kù)中一個(gè)Schema,每個(gè)schema擁有自己獨(dú)立的表空間,復(fù)制一個(gè)schema需要對(duì)其所有表空間進(jìn)行物理復(fù)制。Oracle(遷出庫(kù))Schema 1Schema 2Schema 3Oracle(臨時(shí)庫(kù))Schema 3Step 1:從遷出庫(kù)找最近的全備份構(gòu)造輔助庫(kù),并應(yīng)用歸檔日志到某個(gè)最近時(shí)間點(diǎn)T1(只涉及遷移的schema3)Oracle(臨時(shí)庫(kù))Schema 3Oracle(遷入庫(kù))Schema 3Step 2:從輔助庫(kù)把schema3的數(shù)據(jù)文件拷貝到遷入庫(kù),并使用數(shù)據(jù)泵工具把元數(shù)據(jù)導(dǎo)入遷入目的庫(kù)Oracle(遷出庫(kù))Schema 1Schema 2Schema 3O
28、racle(遷入庫(kù))Schema 3Step 3:使用GoldenGate工具,將遷出庫(kù)T1時(shí)間點(diǎn)之后新產(chǎn)生的數(shù)據(jù)從遷出庫(kù)復(fù)制到遷入庫(kù)Oracle(遷出庫(kù))Schema 1Schema 2Oracle(遷入庫(kù))Schema 3Step 4:DDS切換到新數(shù)據(jù)源(短暫凍結(jié)訪問(wèn)),并從原遷出庫(kù)刪除schema3相關(guān)數(shù)據(jù)Schema整體搬遷擴(kuò)容整體搬遷擴(kuò)容應(yīng)用背景:數(shù)據(jù)庫(kù)處理能力不足HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 23目錄DDS部署及使用54DDS開(kāi)發(fā)指南DDS特性介紹3產(chǎn)品集成的困境與挑戰(zhàn)1DDS產(chǎn)品定位2HUAWEI T
29、ECHNOLOGIES CO., LTD.Huawei Confidential Page 24聯(lián)通測(cè)試邏輯組網(wǎng)圖MySQL ORACLEDCS集群負(fù)載均衡SLBWeb ServerUEEUEEeBus1eBus.、分布式異步通信總線DSF跨域分布式服務(wù)調(diào)用客戶域客戶查詢服務(wù) 客戶資料更新服務(wù) DDS Client其它服務(wù)訂單域訂單服務(wù) DCS Client緩存加速ORACLEDDS Client訂單數(shù)據(jù)增刪改查批量數(shù)據(jù)同步用戶域用戶服務(wù)ORACLEjetMQMQ Client事務(wù)一致性DDS Client公共域 公共服務(wù)oracleDDS Client訂閱發(fā)布HUAWEI TECHNOLOG
30、IES CO., LTD.Huawei Confidential Page 25開(kāi)戶流程圖(部分)HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 26DDS使用流程HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 27DDS常用接口(JDBC)1. 創(chuàng)建DDS連接 Connection DriverManager:getConnection(url, username, password) 參數(shù)說(shuō)明: url為接入DDS的連接信息,有兩種格式: 當(dāng)DDS為集群時(shí),應(yīng)用從Zook
31、eeper接入,url格式為 jdbc:soa:dds:zk:ip:port/root-path/instance ZooKeeper支持集群部署,多組IP和端口號(hào)通過(guò)逗號(hào)隔開(kāi)。 url示例如下: jdbc:soa:dds:zk:10.137.166.133:1281,10.137.166.134:1281/soa_dds/cluster1/instance 其中“root-path”需要與配置文件dds.env.local.xml中配置項(xiàng)“cluster-manager”的“root-path”相一致。 當(dāng)DDS為非集群時(shí),應(yīng)用直接與DDS Server建立連接,url格式為: DDS ur
32、l:jdbc:soa:dds:ip:port password為非加密密碼為非加密密碼HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 28DDS常用接口(JDBC)2. 創(chuàng)建PrepareStatement對(duì)象PreparedStatement Connection:prepareStatement(String sql)3. 綁定參數(shù)(可選)void PrepareStatement:setType(int index,Type value)參數(shù)說(shuō)明:該語(yǔ)法支持參數(shù)綁定??梢栽赟QL字符串中設(shè)置參數(shù),任意值類(lèi)型的參數(shù)都可以使用“?”
33、表示,之后再對(duì)參數(shù)進(jìn)行綁定。綁定參數(shù)的說(shuō)明請(qǐng)參見(jiàn)后續(xù)說(shuō)明。具體示例如下:String sql = SELECT id, data FROM Images WHERE id、=、!=等運(yùn)算符可以有效地使用分區(qū)特性,提高SQL性能,而LIKE條件不能。 減少使用子查詢。子查詢會(huì)降低SQL性能。 盡可能完善查詢條件,即WHERE條件。 WHERE條件中,少使用OR,多使用AND。3. 分區(qū)字段選擇選擇的分區(qū)字段和分區(qū)算法能夠?qū)⒈頂?shù)據(jù)在均勻分布到各個(gè)分區(qū)。該分區(qū)字段在執(zhí)行SQL時(shí)經(jīng)常被用于作為連接字段。進(jìn)行數(shù)據(jù)訪問(wèn)時(shí)最大限度地減少跨庫(kù)數(shù)據(jù)訪問(wèn)。盡量選擇整型字段做為分區(qū)字段。HUAWEI TECHNOL
34、OGIES CO., LTD.Huawei Confidential Page 32目錄產(chǎn)品集成的困境與挑戰(zhàn)15DDS部署及使用DDS特性介紹3DDS開(kāi)發(fā)指南4DDS產(chǎn)品定位2HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 33目錄結(jié)構(gòu)DDS目錄結(jié)構(gòu):HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 34重要配置dds.server.xml: user-nameddssql工具連接DDS Server時(shí)的用戶名。只有此處配置的用戶名才能通過(guò)DDS Server的鑒權(quán)驗(yàn)證,建議使
35、用三個(gè)以上字符作為用戶名。passwordddssql工具連接DDS Server時(shí)的用戶密碼。只有此處配置的用戶密碼才能通過(guò)DDS Server的鑒權(quán)驗(yàn)證。用戶密碼需配置為經(jīng)過(guò)AES128加密算法加密后的密碼,需使用“ddspe”工具加密。IP鑒權(quán)白名單,該名單中的IP地址所在的服務(wù)器允許與本機(jī)通訊?!皏alid-ip value”對(duì)應(yīng)一個(gè)合法的IP地址,多個(gè)IP地址需分別填寫(xiě),3個(gè)IP地址示例如下: HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 35重要配置dds.server.xml: self:根據(jù)dds內(nèi)部配置文件dds.
36、datasource.xml和dds.*.sharding.xml導(dǎo)入DDL,建立相關(guān)分區(qū)規(guī)則。none:?jiǎn)?dòng)時(shí)手工導(dǎo)入DDL語(yǔ)法文件,默認(rèn)值。embedded:根據(jù)業(yè)務(wù)插件導(dǎo)入DDL語(yǔ)法,建立相關(guān)分區(qū)規(guī)則。根據(jù)ds-loader所配內(nèi)容在ds-loaders配置項(xiàng)中找到對(duì)應(yīng)插件。調(diào)試日志開(kāi)關(guān),修改后需重啟DDS Server進(jìn)程才能生效。開(kāi)啟該開(kāi)關(guān)后,30分鐘內(nèi)可在“$DDS_HOME/log/debug/ddsserver_*.dlog”文件中查詢debug日志信息。超過(guò)30分鐘后,該開(kāi)關(guān)失效,停止打印debug日志信息。取值如下:0:關(guān)閉調(diào)試日志開(kāi)關(guān),默認(rèn)值。1:打開(kāi)調(diào)試日志開(kāi)關(guān)。注意調(diào)
37、測(cè)日志的開(kāi)關(guān)打開(kāi)后會(huì)影響系統(tǒng)的性能,減緩業(yè)務(wù)的運(yùn)行速度,占用磁盤(pán)空間,所以系統(tǒng)商用后一般不允許打開(kāi)。如果定位問(wèn)題需要,在得到維護(hù)主管同意以后才可以打開(kāi)調(diào)測(cè)日志的開(kāi)關(guān)進(jìn)行問(wèn)題定位,完畢后立即關(guān)閉調(diào)測(cè)日志的開(kāi)關(guān)。商用環(huán)境不建議打開(kāi)這個(gè)配置項(xiàng),可以使用logadm動(dòng)態(tài)打開(kāi)/關(guān)閉日志。HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 36重要配置dds.env.local.xml: DDS Server提供的服務(wù)端口,修改后需重啟DDS Server進(jìn)程才能生效。取值范圍:102465535。共享內(nèi)存信息,修改后需重啟monitor、nodea
38、gent以及l(fā)ogserver進(jìn)程才能生效。“base-key”:共享內(nèi)存基址,monitor、nmgr以及l(fā)ogserver等模塊都會(huì)使用共享內(nèi)存,這些共享內(nèi)存都從base-key偏移獲取。默認(rèn)值:0 x22。說(shuō)明安裝DDS Server前需確保該基址未被其他進(jìn)程使用,否則會(huì)造成啟動(dòng)失敗。HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 37重要配置dds.datasource.xml : ora119 wwei E52D6DA4D79A2132D4D4116513EDB6EF 數(shù)據(jù)源的url,用于獲取和特定數(shù)據(jù)庫(kù)的連接。取值由dbT
39、ype的取值決定。不同類(lèi)型的數(shù)據(jù)庫(kù)配置格式不同。dbType取值Oracle時(shí),配置tns名或者”IP:Port/SID”。若配置為”IP/SID”,表示默認(rèn)端口為1521。dbType取值mysql時(shí),配置“databasenameip:port”,其中databasename是數(shù)據(jù)庫(kù)名,ip與port為mysql所在的IP與提供的服務(wù)端口。 ora119 DDS的statement池緩存PDB端的statement個(gè)數(shù)。PDB端的每個(gè)statement對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)游標(biāo)(cursor)。在Oracle端查看v$open_cursor得到的cursor,包括DDS端打開(kāi)的cursor數(shù)(最大
40、個(gè)數(shù)為dds.datasource.xml文件配置的statement number)和session_cached_cursors 之和。其中,session_cached_cursors可以通過(guò)命令show parameter session_cached_cursors進(jìn)行查看。SQL show parameter session_cached_cursors; 在MySQL端通過(guò)查看參數(shù)可得到max_prepared_stmt_count??蓞⒖济顂how variables進(jìn)行查詢。mysql show global variables like %stmt%; 如果需修改stat
41、ement最大值,可參考如下命令。mysql set global max_prepared_stmt_count=124000; 節(jié)點(diǎn)為一組具有相同數(shù)據(jù)副本的數(shù)據(jù)源的分組,數(shù)據(jù)源名稱為前面datasources中定義的數(shù)據(jù)源,讀寫(xiě)模式有三種:rw、r、w。 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 38重要配置dds.datasource.xml : user-name為dds登錄用戶,schema-name為該用戶下定義的某個(gè)schema名字,該名字來(lái)源于dds.*.sharding.xml分區(qū)算法支持以下幾種:Hash:選
42、擇該算法后“range-area”參數(shù)無(wú)需配置,“virtual-partition”參數(shù)范圍為0-65534。NumRange:針對(duì)int類(lèi)型分區(qū)字段,“range-area”參數(shù)填寫(xiě)分區(qū)范圍,范圍是int類(lèi)型數(shù)值的取值范圍;“virtual-partition”參數(shù)無(wú)需配置。StringRange:針對(duì)string類(lèi)型分區(qū)字段,“range-area”參數(shù)填寫(xiě)分區(qū)范圍,“virtual-partition”參數(shù)無(wú)需配置。DateRange:針對(duì)data類(lèi)型分區(qū)字段,“range-area”參數(shù)填寫(xiě)分區(qū)范圍,“virtual-partition”參數(shù)無(wú)需配置。Sharing:不分區(qū),每個(gè)節(jié)點(diǎn)
43、保有全量數(shù)據(jù),此時(shí)“range-area”和“virtual-partition”參數(shù)無(wú)需配置。分區(qū)算法詳細(xì)信息。range-area待分區(qū)字段取值范圍。virtual-partitionhash算法的分區(qū)范圍。data-node數(shù)據(jù)節(jié)點(diǎn)名稱。說(shuō)明分區(qū)的區(qū)間遵循左閉右開(kāi)原則,例如配置為“0-1001”,表示0,1001),值從0取到1000。兩級(jí)路由 HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 39重要配置dds.*.sharding.xml : 配置某個(gè)表使用的分區(qū)規(guī)則,sharding-rule必須為dds.datasourc
44、e.xml中已定義的規(guī)則。 sharding-column填寫(xiě)name對(duì)應(yīng)的表中,用于分區(qū)的字段名稱,例如:表A使用id字段作為分區(qū)字段,則填寫(xiě)id。sharding-field填寫(xiě)“dds_datasource.xml”文件中定義的“sharding-field”。 不分區(qū)表,配置規(guī)則名稱即可. node name節(jié)點(diǎn)名稱,當(dāng)建在多個(gè)節(jié)點(diǎn)上時(shí),保證唯一性,不保證連續(xù)性。說(shuō)明(統(tǒng)一安裝的環(huán)境無(wú)需執(zhí)行以下操作)使用sequence前需在對(duì)應(yīng)數(shù)據(jù)源上創(chuàng)建內(nèi)置表和存儲(chǔ)過(guò)程,腳本需存放在目錄:$HOME/ONIP_DDS/server/db。包括createTable.sql:建表腳本p_DDS_ge
45、nerate_seq.sql:存儲(chǔ)過(guò)程腳本使用方法:oracle上導(dǎo)入命令參考:sqlplus SID username/password xxx.sqlmysql上導(dǎo)入命令參考:mysql -u username -p password -D dbname xxx.sqlHUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 40分區(qū)說(shuō)明通過(guò)DDS訪問(wèn)的表都要配置一下分區(qū)規(guī)則,DDS中的表分為兩類(lèi):分區(qū)表和復(fù)制表。所謂分區(qū)表,就是對(duì)表進(jìn)行水平劃分,將一張表的數(shù)據(jù)按照一定的規(guī)則劃分到多個(gè)數(shù)據(jù)節(jié)點(diǎn)上的多張表中,以減輕單個(gè)數(shù)據(jù)節(jié)點(diǎn)的壓力。對(duì)于業(yè)務(wù)
46、層來(lái)說(shuō),只需要定制分區(qū)規(guī)則即可,路由由DDS負(fù)責(zé)實(shí)現(xiàn),對(duì)業(yè)務(wù)透明。一般數(shù)據(jù)量很大,訪問(wèn)量也很大的表,建議分區(qū)。1)選擇分區(qū)層級(jí)。目前支持一級(jí)分區(qū)和兩級(jí)分區(qū)。一般數(shù)據(jù)量確定不會(huì)增長(zhǎng)到系統(tǒng)規(guī)劃容量以外的表,使用一級(jí)分區(qū)即可。如果數(shù)據(jù)量隨系統(tǒng)運(yùn)行持續(xù)增長(zhǎng),可能會(huì)超過(guò)規(guī)劃,為便于后續(xù)擴(kuò)容,建議選用兩級(jí)分區(qū)(參考P20擴(kuò)容圖理解)。2)選擇分區(qū)鍵。要選取分區(qū)表中的某個(gè)字段作為分區(qū)鍵。兩級(jí)分區(qū)的情況需要兩個(gè)分區(qū)鍵值,可以相同也可以不同。分區(qū)鍵應(yīng)盡可能多的出現(xiàn)在DML的過(guò)濾條件中;分區(qū)鍵應(yīng)能夠讓表的數(shù)據(jù)比較均勻的分?jǐn)偟礁鱾€(gè)數(shù)據(jù)節(jié)點(diǎn)。3)選擇分區(qū)算法。當(dāng)前支持兩種:Range和Hash。Range里面又包括: NumRange、DateRange、StringRange。每種分區(qū)的區(qū)間配置都為左閉右開(kāi),Hash范圍為0-65535)。HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 41分區(qū)說(shuō)明所謂復(fù)制表,是指該表可以存在于一個(gè)或多個(gè)數(shù)據(jù)節(jié)點(diǎn)中,但是每個(gè)節(jié)點(diǎn)存儲(chǔ)的都是全量數(shù)據(jù)的表。DDS會(huì)隨機(jī)選擇一個(gè)數(shù)據(jù)節(jié)點(diǎn)來(lái)處理對(duì)這類(lèi)表的請(qǐng)求。選擇存多份在一定條件下可以加快多表關(guān)聯(lián)的處理效率。一般表數(shù)據(jù)量不是很大,建議配成復(fù)制表。如:系統(tǒng)表、參數(shù)表等。讀多寫(xiě)少的表或?qū)懸脖容^多,但是不關(guān)注寫(xiě)的性能的表,可以考慮配成多節(jié)點(diǎn)存儲(chǔ)。注意
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市地下空間沉降監(jiān)測(cè)與開(kāi)發(fā)合同7篇
- 2025年度棉花產(chǎn)業(yè)環(huán)保治理與污染防控合同4篇
- 2025年沙地生態(tài)保護(hù)與可持續(xù)發(fā)展承包合同3篇
- 2025年度戶外廣告牌使用權(quán)及維護(hù)合同4篇
- 二零二五版杭州二手房買(mǎi)賣(mài)合同產(chǎn)權(quán)變更與登記服務(wù)協(xié)議3篇
- 2025年度光伏發(fā)電項(xiàng)目個(gè)人工勞務(wù)分包合同2篇
- 2025年度苗木種植保險(xiǎn)合同匯編3篇
- 二零二五年度廚房設(shè)備安裝與智能化節(jié)能改造合同4篇
- 二零二五年度地產(chǎn)樣板間軟裝設(shè)計(jì)定制合同3篇
- 2025年拋光技術(shù)成果轉(zhuǎn)化與應(yīng)用合同4篇
- 墓地銷(xiāo)售計(jì)劃及方案設(shè)計(jì)書(shū)
- 從偏差行為到卓越一生3.0版
- 優(yōu)佳學(xué)案七年級(jí)上冊(cè)歷史
- 鋁箔行業(yè)海外分析
- 紀(jì)委辦案安全培訓(xùn)課件
- 超市連鎖行業(yè)招商策劃
- 醫(yī)藥高等數(shù)學(xué)智慧樹(shù)知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo))
- 【公司利潤(rùn)質(zhì)量研究國(guó)內(nèi)外文獻(xiàn)綜述3400字】
- 工行全國(guó)地區(qū)碼
- 新疆2022年中考物理試卷及答案
評(píng)論
0/150
提交評(píng)論