天天看點

5分鐘入門Lindorm SearchIndex

一、引言

雲原生多模資料庫Lindorm,支援海量資料的低成本存儲和彈性按需付費,提供寬表、時序、檔案等多種資料模型,相容HBase、Cassandra、OpenTSDB等多種開源标準接口,是網際網路、IoT、車聯網、廣告、社交、監控、遊戲、風控等場景的首選資料庫,也是為阿裡巴巴核心業務提供關鍵支撐的資料庫之一。關于Lindorm的更多介紹,可以參考

雲原生多模資料庫Lindorm

Lindorm對外提供統一的标準SQL入口,可以讓開發人員快速上手,輕松運維海量資料。SearchIndex是Lindorm寬表的二級索引,主要用來幫助業務實作快速的檢索分析。本篇文章介紹如何通過簡單的SQL接口操作SearchIndex。

二、SQL操作SearchIndex

開通全文索引

當您購買Lindorm寬表引擎後,可以在資料庫執行個體控制台開通“全文索引”功能,如下圖:

5分鐘入門Lindorm SearchIndex

下載下傳SQL工具

進入資料庫執行個體控制台,在“資料庫連接配接”中下載下傳SQL工具:Lindorm-cli。同時,為了能夠讓本機可以通路叢集,需要“開通外網位址”,并将本機ip加入到白名單中。

5分鐘入門Lindorm SearchIndex
5分鐘入門Lindorm SearchIndex

連接配接叢集

将上一步下載下傳的Lindorm-cli在本機解壓後,直接執行如下指令:

./lindorm-cli -url jdbc:lindorm:table:url=http://ld-xxxx-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060 -username xxx -password xxx           

其中的公網連接配接位址、使用者名和密碼可以在資料庫控制台“資料庫連接配接”中擷取,參見上個章節中的截圖。

備注:需要提前

配置好白名單

執行SQL語句

  • 建立資料庫
create schema testSchema;           
  • 建立表
use testSchema;
// 建立一個表,主鍵為id,非主鍵為name,age,address
create table if not exists testTable(id varchar, name varchar, age bigint, address varchar, constraint primary key (id));           
  • 建立SearchIndex
// 對表的非主鍵列建索引,其中address是一個分詞字段,使用IK分詞器
create search index if not exists testIdx on testTable(name,age,address(type=text,analyzer=ik)) with  (indexState=ACTIVE);           
  • 寫入測試資料
upsert into  testTable(id,name,age,address) values ('1', '張三', 25, '北京市朝陽區綠地中心c座');
upsert into  testTable(id,name,age,address) values ('2', '李四', 30, '上科路張江人工智能島2号樓');
upsert into  testTable(id,name,age,address) values ('3', '王五', 28, '深圳市南山區科苑南路3331号');
upsert into  testTable(id,name,age,address) values ('4', '趙六', 36, '杭州市餘杭區文一西路969号');           
  • 查詢
select name  from  testtable where address = '朝陽區' limit 10;

select *  from  testtable where age > 30 and address = '杭州' limit 10;

select name  from  testtable where name = '王五' limit 10;           

對于非主鍵的查詢,一般會消耗非常多的系統資源,為了系統穩定,這樣的查詢預設會被拒絕掉。如果基于這些非主鍵建立了二級索引,則可以高效的執行。

更多SQL文法,可參考

文法手冊

三、總結

SearchIndex是Lindorm寬表的二級索引,當您想加速檢索分析的速度時,隻需要對表建立索引即可,寫入的資料會自動建構索引,查詢時服務端會自動路由到索引,整個使用過程對業務代碼0侵入。

SearchIndex在阿裡内部以及公有雲上有着豐富的應用場景,如果您在面對訂單查詢、物流軌迹、大資料畫像、車聯網等場景的業務架構設計,可以嘗試将Lindorm SearchIndex應用到架構中,将會帶來開發和存儲成本的極大收益。

Lindorm的案例彙總,可進一步參考

解決方案

歡迎掃碼加入釘釘群,相關的技術專家将為您解答所有疑惑。

5分鐘入門Lindorm SearchIndex