一條SQL完成跨資料庫例項Join查詢

2021-09-19 19:31:54 字數 2155 閱讀 3770

跨例項查詢服務支援通過標準sql進行跨同異構資料庫的實時查詢。除了關係型資料庫mysql、sqlserver、postgresql,還支援redis。同時,跨例項查詢服務還支援跨地域、跨雲及線下idc自建資料庫及跨雲廠商資料庫例項間的資料實時查詢,被廣泛應用於多地域部署業務的全域性資料查詢場景。

本文以mysql及redis為例,介紹如何通過一條sql輕鬆完成跨資料庫例項的查詢。

跨例項查詢服務支援通過sql查詢redis中的任意key,同時支援跨key之間的join查詢。在進行sql查詢前,您需要先在跨例項查詢服務中,建立redis例項的dblink。接下來簡單介紹建立dblink及進行sql查詢的流程。

在跨例項查詢服務的控制台,建立dblink,配置redis例項的連線資訊。

當完成dblink建立後,需要使用這個dblink編寫查詢sql。

跨例項查詢服務提供web sql命令視窗,可以直接在命令視窗中,通過標準的sql進行key查詢。具體支援的sql命令可以參考使用文件。

對於每乙個redis的database, dms會自動建立6張表,分別如下:

all: 儲存所有的key

string: 儲存資料型別為string的可以

hash:儲存資料型別為hash的key

list: 儲存資料型別為list的key

set:儲存資料型別為set的key

zset:儲存資料型別為score set的key

每張表的表結構如下:

列名型別

說明key

varchar

redis中的key名

index

varchar

當資料型別為list/zset時,為各個元素的index;當資料型別為hash時,改字段為hash中的key名稱

value

varchar

key的value值

score

double

表示sortedset的分值,其他資料型別為null

expire_time

bigint

跟redis的ttl命令一致,表示資料離過期的剩餘秒數

data_type

varchar

這個key的資料型別

此處,我們通過通過如下的select語句查詢all表中的前5個key。

通過redis score set儲存使用者積分情況,儲存使用者id及score, key的名稱為user_scrore, value為使用者id, score為使用者積分。樣例資料如下表:

keyvalue

score

user_score

10010

user_score

20035

user_score

30045

user_id

user_name

province

city

gmt_create

100張三

浙江杭州

2018-11-11 11:11:11

200李四

廣東省深圳

2018-10-11 12:11:01

通過如下sql,可方便得查詢使用者的積分排行榜。

select user.user_name,zset.score from redis_test.db0.zset as zset join mysql.db0.user as user where

user.user_id=zset.value and zset.key='user_score' order by zset.score desc;

這個sql將redis中的使用者id跟mysql中的user_id進行關聯,且只查詢儲存使用者積分的key。

由於篇幅有限,本文只是簡單介紹了dms 跨資料庫查詢的功能及其在redis上的使用案例。您可以立即體驗跨資料庫例項查詢》

跨資料庫查詢的詳細功能及使用場景可以參考:使用文件

教你用一條sql搞定跨資料庫查詢:如何玩轉跨庫join

一條SQL完成跨資料庫例項Join查詢

跨例項查詢服務支援通過標準sql進行跨同異構資料庫的實時查詢。除了關係型資料庫mysql sqlserver postgresql,還支援redis。同時,跨例項查詢服務還支援跨地域 跨雲及線下idc自建資料庫及跨雲廠商資料庫例項間的資料實時查詢,被廣泛應用於多地域部署業務的全域性資料查詢場景。本文...

一條sql 語句搞定資料庫分頁

一條語句搞定資料庫分頁 select top 10 b.from select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc a,表名 b where b.主鍵字段 a.主鍵字段 order by a.排序字段 10 每頁記錄數 20 當前頁 1 每頁記錄數...

oracle資料庫一條sql語句批量插入資料

最近有個功能是需要重置不同身份的密碼根據不同的規則,其中乙個規則就是手機號碼後六位,有多個身份,並且底層資料封裝的比較死,只能通過公用方法去更新密碼,但是這好幾個身份都有共同的資料特性,使用者編碼,使用者名稱,手機號碼,將這些字段存入一張臨時表,在開始時根據需要選中某個單位的某個身份進行密碼重置,這...