您好,登錄后才能下訂單哦!
如何操作跨庫Join,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
摘要: 企業(yè)選擇對其在線業(yè)務(wù)數(shù)據(jù)庫進行拆分,或選擇不同數(shù)據(jù)庫類型以滿足其業(yè)務(wù)需求。業(yè)務(wù)數(shù)據(jù)被“散落”在各個地方,如何方便地對這些數(shù)據(jù)進行匯總關(guān)聯(lián)查詢,已經(jīng)成為困擾用戶的一大難題
隨著業(yè)務(wù)復(fù)雜程度的提高、數(shù)據(jù)規(guī)模的增長,越來越多的公司選擇對其在線業(yè)務(wù)數(shù)據(jù)庫進行垂直或水平拆分,甚至選擇不同的數(shù)據(jù)庫類型以滿足其業(yè)務(wù)需求。原本在同一數(shù)據(jù)庫實例里就能實現(xiàn)的SQL查詢,現(xiàn)在需要跨多個數(shù)據(jù)庫實例才能完成。業(yè)務(wù)的數(shù)據(jù)被“散落”在各個地方,如何方便地對這些數(shù)據(jù)進行匯總關(guān)聯(lián)查詢,已經(jīng)成為困擾用戶的一大難題。
針對這類問題,傳統(tǒng)的解決方案需要用戶提前將所有實例的數(shù)據(jù)提前匯集到同一處,然后再做離線查詢分析。為此,用戶需要維護數(shù)據(jù)遷移鏈路,購買機器資源存儲匯集起來的數(shù)據(jù),付出大量的資源和運維成本。不僅如此,數(shù)據(jù)遷移也意味著數(shù)據(jù)延遲,剛剛產(chǎn)生的在線業(yè)務(wù)數(shù)據(jù),需要“等一會”甚至“等一天”才能去做分析,無法滿足實時性需求。
為了解決跨數(shù)據(jù)庫實例及時查詢的難題,阿里云DMS(數(shù)據(jù)管理)推出了跨實例查詢服務(wù)。
跨實例查詢服務(wù)為不同環(huán)境下的在線異構(gòu)數(shù)據(jù)源,提供及時的關(guān)聯(lián)查詢服務(wù)。不論數(shù)據(jù)庫是MySQL、SQLServer、PostgreSQL還是Redis,不論數(shù)據(jù)庫實例部署在哪個阿里云region,無需數(shù)據(jù)匯集,僅通過一條SQL就能實現(xiàn)這些數(shù)據(jù)庫實例之間的關(guān)聯(lián)查詢。
不僅如此,數(shù)據(jù)庫實例也可以部署在不同的資源環(huán)境中,除了RDS之外,我們也支持ECS上的自建數(shù)據(jù)庫、具有公網(wǎng)ip的自建數(shù)據(jù)庫、用戶本地IDC自建數(shù)據(jù)庫、甚至是部署在其他云廠商的數(shù)據(jù)庫。
目前大多數(shù)數(shù)據(jù)分析的解決方案需要將 OLTP 數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)出至離線數(shù)據(jù)系統(tǒng)再進行分析,但這種方案很難滿足實時性的要求,同時在數(shù)據(jù)導(dǎo)出至離線系統(tǒng)時也存在數(shù)據(jù)丟失的風(fēng)險。
DMS的跨實例查詢服務(wù),無需用戶遷移任務(wù),直接編寫一條SQL,就能實現(xiàn)多個在線數(shù)據(jù)庫的直接關(guān)聯(lián)分析。由于無需數(shù)據(jù)同步,降低了業(yè)務(wù)架構(gòu)的復(fù)雜性,同時也大大節(jié)省用戶持有離線計算資源的預(yù)算和運維成本。
熟悉Oracle的人應(yīng)該知道,我們可以在當前登錄的Oracle上,建立一個DBLink指向另一個遠程的Oracle數(shù)據(jù)庫表。在跨實例查詢服務(wù)中,我們重新定義了DBLink的概念,它是一個指向用戶的任意數(shù)據(jù)庫實例的虛擬連接,是數(shù)據(jù)庫實例的別名。例如,對于MySQL來說,DBLink和ip/port一一對應(yīng)。借助DBLink,即可實現(xiàn)對任意數(shù)據(jù)源的SQL訪問。
cdn.com/5195fb64ba5d07fc26656b4276350f91e59bee3b.png">
目前已支持MySQL、SQLServer、PostgreSQL等多種關(guān)系型數(shù)據(jù)庫。
除了關(guān)系型數(shù)據(jù)庫之外,跨實例查詢還支持以SQL方式訪問Redis等NoSQL數(shù)據(jù)庫。由于支持了SQL語法,也可以實現(xiàn)RDBMS和NoSQL之間關(guān)聯(lián)查詢。是的,你沒看錯,一條SQL就能實現(xiàn)MySQL和Redis之間的關(guān)聯(lián)查詢。
企業(yè)發(fā)展到一定階段,用戶量、業(yè)務(wù)量不斷攀升,原來的單機房容量已經(jīng)不能滿足業(yè)務(wù)發(fā)展的需求,再結(jié)合容災(zāi)、高可用等因素,通常會選擇跨region部署,也叫單元化部署。同時,不少企業(yè)也需要將業(yè)務(wù)拓展到海外,通過本地就近部署,為國外用戶提供更好的體驗。類似這種水平拆分帶來的問題就是,如何對全局的業(yè)務(wù)數(shù)據(jù)進行統(tǒng)一的匯總關(guān)聯(lián)查詢。
借助DMS跨實例查詢服務(wù),無論您的數(shù)據(jù)庫實例部署在阿里云的哪個region,無需跨region的數(shù)據(jù)遷移,即可實現(xiàn)所有region數(shù)據(jù)的統(tǒng)一查詢。
除了阿里云RDS,我們也支持用戶部署在阿里云ECS上的各種數(shù)據(jù)庫。不僅如此,如果您的數(shù)據(jù)庫部署在本地IDC機房,甚至其他云廠商,都可以通過跨實例查詢服務(wù),實現(xiàn)這些混合云場景的跨實例關(guān)聯(lián)查詢。
insert into b select * from a;
眾所周知,這條SQL語句可以將表a的數(shù)據(jù)導(dǎo)出到表b中,但如果a表和b表不在同一個數(shù)據(jù)庫實例上,那這條sql就無能為力了。
跨實例查詢服務(wù)的出現(xiàn),打破了實例與實例之間數(shù)據(jù)導(dǎo)入導(dǎo)出的邊界。它可以將數(shù)據(jù)從一個MySQL實例的表導(dǎo)出到另外一個MySQL實例的表中;也可以將SQLServer表和PostgreSQL表關(guān)聯(lián)查詢的結(jié)果,導(dǎo)出到MySQL實例的表中,就是這么靈活。
通過標準的SQL語句,即可實現(xiàn)跨實例查詢。同時跨實例查詢服務(wù)高度兼容MySQL,支持MySQL協(xié)議,以及各種常用函數(shù)和語法。您可通過JDBC/ODBC驅(qū)動連接到跨實例查詢服務(wù);也可以使用各種MySQL GUI工具來管理各種數(shù)據(jù)源;當然,您也可以在DMS跨實例查詢控制臺上直接使用。
跨實例查詢是無服務(wù)器化的在線數(shù)據(jù)庫關(guān)聯(lián)查詢服務(wù)。用戶無需預(yù)購計算資源、無需維護資源、沒有運維和升級成本,隨時隨地使用。
跨實例查詢服務(wù)底層基于強大的MPP計算引擎,持續(xù)不斷地對SQL查詢進行優(yōu)化,包括pushdown、join算法、執(zhí)行計劃緩存、Meta緩存、本地調(diào)度、連接池等技術(shù)。目前單表查詢以及跨實例的多表關(guān)聯(lián)查詢,都能在毫秒級完成。
我們發(fā)現(xiàn)用戶遇到的其實就是典型的跨實例查詢問題。目前,阿里云DMS跨實例查詢服務(wù)已經(jīng)支持跨多個數(shù)據(jù)庫實例的SQL查詢的能力,用戶利用一條SQL即可解決上述難題。不僅能夠滿足“跨庫Join”這一核心訴求,還能極大地簡化用戶的技術(shù)方案。
某公司考慮成本和未來可擴展性,正在將業(yè)務(wù)數(shù)據(jù)從SQLServer遷移到MySQL上。在這期間,必然存在某些業(yè)務(wù)子系統(tǒng)仍然在SQLServer上,另外一些業(yè)務(wù)子系統(tǒng)已經(jīng)全部遷移到MySQL上,這時兩個子系統(tǒng)之間的聯(lián)合查詢,就可以借助阿里云的跨實例查詢服務(wù)實現(xiàn)。不僅如此,在遷移過程中,還可以通過跨實例查詢服務(wù),來校驗SQLServer和MySQL上的數(shù)據(jù)是否一致。
某游戲公司,由于各種原因,同時保有阿里云、騰訊、UCloud、AWS等環(huán)境的數(shù)據(jù)庫實例,同時在自己自建的IDC也部署了部分數(shù)據(jù)庫。業(yè)務(wù)的數(shù)據(jù)如此分散,單是統(tǒng)計一下當前游戲在線用戶數(shù),都要分別到各個環(huán)境去查詢一遍再做匯總。借助阿里云跨實例查詢服務(wù),一條SQL就能實現(xiàn)跨云廠商和IDC之間的關(guān)聯(lián)查詢。
關(guān)于如何操作跨庫Join問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。