跨例項查詢服務支援通過標準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語句批量插入資料
最近有個功能是需要重置不同身份的密碼根據不同的規則,其中乙個規則就是手機號碼後六位,有多個身份,並且底層資料封裝的比較死,只能通過公用方法去更新密碼,但是這好幾個身份都有共同的資料特性,使用者編碼,使用者名稱,手機號碼,將這些字段存入一張臨時表,在開始時根據需要選中某個單位的某個身份進行密碼重置,這...