0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GaussDB(for Cassandra)新特性發(fā)布:支持Lucene二級(jí)索引,讓復(fù)雜查詢更智能

禿頭也愛(ài)科技 ? 來(lái)源:禿頭也愛(ài)科技 ? 作者:禿頭也愛(ài)科技 ? 2022-12-02 09:18 ? 次閱讀

今天,華為云GaussDB(for Cassandra)攜__Lucene引擎全新解決方案__來(lái)啦!

當(dāng)前,互聯(lián)網(wǎng)、大數(shù)據(jù)飛速發(fā)展,數(shù)據(jù)量呈爆發(fā)式增長(zhǎng),在高并發(fā)、高可用、高擴(kuò)展性的業(yè)務(wù)需求推動(dòng)下,NoSQL數(shù)據(jù)庫(kù)成為了越來(lái)越多場(chǎng)景的剛需。但在查詢方面,傳統(tǒng)的NoSQL卻有一定的局限性,嚴(yán)格來(lái)說(shuō),像開(kāi)源MongoDB、Cassandra、Hbase等都不具備海量數(shù)據(jù)的多維查詢、文本檢索、統(tǒng)計(jì)分析等能力。多數(shù)企業(yè)仍然在尋求一套更完美的NoSQL解決方案。

華為云原生多模數(shù)據(jù)庫(kù)GaussDB NoSQL擁有強(qiáng)大的生態(tài)體系,支持鍵值、寬表、文檔、時(shí)序四種引擎接口。其中,寬表引擎接口GaussDB(for Cassandra)現(xiàn)已發(fā)布Lucene二級(jí)索引功能,既具備N(xiāo)oSQL的優(yōu)勢(shì),又能支持多種復(fù)雜查詢場(chǎng)景,全面提升用戶在海量數(shù)據(jù)場(chǎng)景下的查詢體驗(yàn),憑實(shí)力寵粉!相信大家一定有很多疑問(wèn),GaussDB(for Cassandra)是什么?二級(jí)索引如何使用?Lucene二級(jí)索引又有哪些區(qū)別?別著急,接下來(lái)讓我們一一解讀。

C:\\Users\\z30027292\\AppData\\Roaming\\eSpace_Desktop\\UserData\\z30027292\\imagefiles\\originalImgfiles\\BD1D2FCB-2198-4973-A900-9DE6FFF33368.png

什么是GaussDB(for Cassandra)?

GaussDB(for Cassandra)是一款基于華為自研、采用計(jì)算存儲(chǔ)分離架構(gòu)的分布式云數(shù)據(jù)庫(kù),在高性能、高可用、高可靠、高安全、可彈性伸縮的基礎(chǔ)上,提供了一鍵部署、備份恢復(fù)、監(jiān)控報(bào)警等服務(wù)能力;并高度兼容開(kāi)源Cassandra接口,提供高讀寫(xiě)性能。當(dāng)前已經(jīng)廣泛應(yīng)用于IoT、氣象、互聯(lián)網(wǎng)、游戲等諸多領(lǐng)域。

什么是二級(jí)索引?

我們先來(lái)了解下索引的概念。索引是為了加快數(shù)據(jù)檢索速度而創(chuàng)建的一種存儲(chǔ)結(jié)構(gòu),是一種以空間換時(shí)間的設(shè)計(jì)思想。作用可以理解為書(shū)的目錄,通過(guò)目錄可快速定位到所需要的內(nèi)容。

在Cassandra中,Primary Key就是索引(也被稱為一級(jí)索引),在查詢的時(shí)候,根據(jù)Primary Key可以直接檢索到對(duì)應(yīng)的記錄。而二級(jí)索引又稱輔助索引,是為了幫助定位到一級(jí)索引,然后再根據(jù)一級(jí)索引找到對(duì)應(yīng)記錄。我們平時(shí)使用CREATE INDEX語(yǔ)句建立的就是二級(jí)索引。

當(dāng)前Cassandra二級(jí)索引的痛點(diǎn)有哪些?

原生Cassandra中二級(jí)索引的實(shí)現(xiàn)其實(shí)是創(chuàng)建了一張隱式的表,該表的Primary Key是創(chuàng)建索引的列,值為對(duì)應(yīng)的Primary Key,實(shí)現(xiàn)相對(duì)簡(jiǎn)單,因此不可避免地帶來(lái)了一些約束條件:

1.第一主鍵只能用“=”查詢;

2.第二主鍵可以使用“=、>、<、>=、<=”;

3.索引列只支持“=”查詢;

4.刪除、更新太過(guò)頻繁的列不適合建立索引;

5.High-cardinality列不適合做索引;

基于以上約束,Cassandra二級(jí)索引能提供的查詢功能非常有限。

Why Lucene?

Lucene是當(dāng)下最火的開(kāi)源全文檢索引擎工具,具有以下特點(diǎn):

1.穩(wěn)定、索引性能高;

2.是高效、準(zhǔn)確、高性能的搜索算法

3.具備豐富的查詢類(lèi)型:支持短語(yǔ)查詢、通配符查詢、近似查詢、范圍查詢等;

4.有強(qiáng)大的開(kāi)源社區(qū)支持,可維護(hù)性好;

因此,用集成Lucene引擎來(lái)補(bǔ)充Cassandra查詢能力的弱點(diǎn)是最佳選擇,畢竟誰(shuí)又會(huì)拒絕一款性能穩(wěn)定、持續(xù)成長(zhǎng)、又更新迭代的搜索引擎呢?

Lucene引擎強(qiáng)大的倒排索引和列式存儲(chǔ)能力,賦予了GaussDB(for Cassandra)高效的多維查詢、文本檢索、統(tǒng)計(jì)分析等能力,在使用體驗(yàn)上和原生二級(jí)索引相似,但同時(shí)擁有了更為豐富的語(yǔ)法支持。

使用Lucene二級(jí)索引后,我的查詢發(fā)生了哪些變化?

更加靈活的查詢、過(guò)濾方式:

所有查詢均可不帶PK或者帶部分PK,并且索引列支持 “>、<、in”等操作符,用戶不需要再局限于只使用“=”。

強(qiáng)大的文本檢索能力:

文本檢索能力正是Lucene最擅長(zhǎng)的,使用起來(lái)十分方便,只需要通過(guò)關(guān)鍵詞like即可實(shí)現(xiàn)。

你可以這樣:

SELECT \\* FROM example WHERE field LIKE 'test%';   // 前綴查詢

也可以這樣:

SELECT \\* FROM example WHERE field LIKE 'start\\*end';   // 正則匹配

還可以這樣:

SELECT \\* FROM example WHERE field LIKE '%\\+lucene \\+index%';   // 全文搜索功能,性能高效,穩(wěn)定

支持超萬(wàn)億規(guī)格的大數(shù)據(jù)量統(tǒng)計(jì):

SELECT count\\(\\*\\) FROM example WHERE field1>\\-1 AND EXPR\\(field2, 'count'\\);

多種刪除方式:

支持single單行刪除、partition分區(qū)刪除、range范圍刪除,全方位覆蓋各種刪除場(chǎng)景。

DELETE FROM example WHERE pk1='a' AND field=1;   // single單行刪除

DELETE FROM example WHERE pk1='a' AND pk2=5000;   // partition分區(qū)刪除

DELETE FROM example WHERE pk1='a' AND pk2=3000 AND ck1=2 AND ck2>'a' AND ck2<'c';   // range范圍刪除

支持?jǐn)U展json查詢接口,輕松應(yīng)對(duì)各種復(fù)雜查詢場(chǎng)景:

擴(kuò)展的json查詢接口提供了豐富的查詢語(yǔ)法,用法更多樣化。以下是關(guān)鍵字列表:

filter

在查詢語(yǔ)句中json查詢的關(guān)鍵字

term

查詢時(shí)判斷某個(gè)document是否包含某個(gè)具體的值,不會(huì)對(duì)被查詢的值進(jìn)行分詞查詢

match

將被詢值進(jìn)行分詞,進(jìn)行全文檢索

range

查詢指定某個(gè)字段在某個(gè)特定的范圍(范圍查詢子關(guān)鍵字:"eq"/"gte"/"gt"/"lte"/"lt")

bool

必須和 "must"、"should"、"must not" 一起組合出復(fù)雜的查詢

must

bool類(lèi)型的子查詢,類(lèi)型為list,封裝"term"、"match"、"range" 查詢

should

bool類(lèi)型的子查詢,類(lèi)型為list,封裝"term"、"match"、"range" 查詢

must not

bool類(lèi)型的子查詢,類(lèi)型為list,封裝"term"、"match"、"range" 查詢

舉個(gè)栗子:

SELECT \\* FROM example WHERE EXPR\\(index\\_field, '\\{"filter": \\{"bool": \\{"should": \\[\\{"bool": \\{"should": \\[\\{"bool": \\{"must": \\[\\{"bool": \\{"should": \\[\\{"range": \\{"ck1": \\{"lt": 2\\}, "ck1": \\{"gte": 4\\}\\}\\}\\]\\}\\}, \\{"bool": \\{"should": \\[\\{"range": \\{"field1": \\{"lt": 2\\}, "field1": \\{"gt": 3\\}\\}\\}\\]\\}\\}\\]\\}\\}, \\{"bool": \\{"should": \\[\\{"term": \\{"pk1": "a", "pk1": "b", "pk1": "c"\\}\\}\\]\\}\\}\\]\\}\\}, \\{"bool": \\{"must": \\[\\{"range": \\{"field2": \\{"gte":5, "lte": 15\\}, "pk2": \\{"gt": 2000\\}\\}\\}\\]\\}\\}\\]\\}\\}\\}'\\)

通過(guò)條件組合加嵌套,您可以DIY符合自身業(yè)務(wù)的sql語(yǔ)句,并且最高支持200層json嵌套,再?gòu)?fù)雜的場(chǎng)景也能處理!

華為云GaussDB(for Cassandra)搭載Lucene引擎,通過(guò)Lucene二級(jí)索引將搜索能力下沉至底層,從根本上解放了應(yīng)用層查詢,兼具多維查詢、文本檢索、統(tǒng)計(jì)分析等多種能力,可以完美地彌補(bǔ)NoSql弱查詢功能的短板,讓企業(yè)從容應(yīng)對(duì)海量數(shù)據(jù)的復(fù)雜查詢場(chǎng)景。還等什么,速來(lái)體驗(yàn)吧!
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3153

    瀏覽量

    42095
  • Lucene
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    7626
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2364

    瀏覽量

    17115
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    THS3001級(jí)聯(lián)組成放大電路,實(shí)際接通后第二級(jí)有明顯發(fā)熱,為什么?

    實(shí)際接通后第二級(jí)有明顯發(fā)熱。單獨(dú)測(cè)試第一級(jí)沒(méi)問(wèn)題,對(duì)第二級(jí)直接輸入第一級(jí)的輸出相關(guān)參數(shù)依然正常??墒莾蓧K一旦級(jí)聯(lián)第二級(jí)就發(fā)熱。
    發(fā)表于 09-06 06:08

    級(jí)浪涌保護(hù)器和二級(jí)浪涌保護(hù)器怎么區(qū)分

    級(jí)浪涌保護(hù)器和二級(jí)浪涌保護(hù)器是電力系統(tǒng)中非常重要的保護(hù)設(shè)備,它們的主要作用是保護(hù)電力系統(tǒng)免受雷電、操作過(guò)電壓等浪涌電壓的損害。在電力系統(tǒng)中,浪涌保護(hù)器的設(shè)置和選擇對(duì)于系統(tǒng)的安全穩(wěn)定運(yùn)行
    的頭像 發(fā)表于 07-13 14:44 ?2976次閱讀

    二級(jí)浪涌保護(hù)器型號(hào)如何選擇

    選擇二級(jí)浪涌保護(hù)器型號(hào)時(shí),需要綜合考慮多個(gè)因素,以確保所選型號(hào)能夠滿足電器系統(tǒng)的實(shí)際需求。以下是一些關(guān)鍵步驟和考慮因素: 一、了解系統(tǒng)需求 電壓等級(jí) :首先,明確您的電器系統(tǒng)的電壓等級(jí),這是選擇浪涌
    的頭像 發(fā)表于 07-13 14:25 ?512次閱讀

    ClickHouse內(nèi)幕(3)基于索引查詢優(yōu)化

    ClickHouse索引采用唯一聚簇索引的方式,即Part內(nèi)數(shù)據(jù)按照order by keys有序,在整個(gè)查詢計(jì)劃中,如果算子能夠有效利用輸入數(shù)據(jù)的有序性,對(duì)算子的執(zhí)行性能將有巨大的提升。本文討論
    的頭像 發(fā)表于 06-11 10:46 ?757次閱讀
    ClickHouse內(nèi)幕(3)基于<b class='flag-5'>索引</b>的<b class='flag-5'>查詢</b>優(yōu)化

    HarmonyOS開(kāi)發(fā)案例:【卡片二級(jí)聯(lián)動(dòng)】

    使用ArkTS語(yǔ)言,實(shí)現(xiàn)一個(gè)導(dǎo)航與內(nèi)容二級(jí)聯(lián)動(dòng)的效果。
    的頭像 發(fā)表于 05-06 17:08 ?444次閱讀
    HarmonyOS開(kāi)發(fā)案例:【卡片<b class='flag-5'>二級(jí)</b>聯(lián)動(dòng)】

    GaussDB(for Redis) 特性揭秘:多租戶管理

    華為云 GaussDB(for Redis)持續(xù)完善企業(yè)級(jí)增強(qiáng)特性,是名副其實(shí)的 "Redis Plus" ,其中很經(jīng)典的企業(yè)級(jí)特性是 多租
    的頭像 發(fā)表于 03-28 22:06 ?672次閱讀
    <b class='flag-5'>GaussDB</b>(for Redis) <b class='flag-5'>特性</b>揭秘:多租戶管理

    Redis官方搜索引擎來(lái)了,性能炸裂!

    RediSearch 是一個(gè) Redis 模塊,為 Redis 提供查詢、二級(jí)索引和全文搜索功能。
    的頭像 發(fā)表于 02-21 10:01 ?1853次閱讀
    Redis官方搜<b class='flag-5'>索引</b>擎來(lái)了,性能炸裂!

    二級(jí)電源和II級(jí)電源的區(qū)別

    二級(jí)電源和II級(jí)電源的區(qū)別 隨著電力需求的不斷增長(zhǎng),人們對(duì)電源的要求也越來(lái)越高。二級(jí)電源和II級(jí)電源是兩種常見(jiàn)的電源等級(jí),它們?cè)谝恍╆P(guān)鍵的技術(shù)規(guī)范上存在一些區(qū)別。 首先,我們來(lái)了解一下
    的頭像 發(fā)表于 01-19 13:51 ?1550次閱讀

    級(jí)浪涌保護(hù)器和二級(jí)浪涌保護(hù)器的區(qū)別是什么?

    級(jí)浪涌保護(hù)器和二級(jí)浪涌保護(hù)器的區(qū)別是什么? 一級(jí)浪涌保護(hù)器和二級(jí)浪涌保護(hù)器是電氣設(shè)備中常用的保護(hù)裝置,用于保護(hù)設(shè)備免受浪涌電壓的影響。浪涌保護(hù)器通常被安裝在電源線路上,以限制過(guò)電壓對(duì)
    的頭像 發(fā)表于 01-18 16:22 ?3586次閱讀

    常用二級(jí)管的特性及標(biāo)識(shí)

    極管的應(yīng)用非常廣泛,幾乎絕大部分電路板上都極管的身影。今天就來(lái)講講常用二級(jí)特性及標(biāo)識(shí)。
    的頭像 發(fā)表于 01-11 09:47 ?957次閱讀
    常用<b class='flag-5'>二級(jí)</b>管的<b class='flag-5'>特性</b>及標(biāo)識(shí)

    Mysql索引是什么東西?索引有哪些特性?索引是如何工作的?

    作為開(kāi)發(fā)人員,碰到了執(zhí)行時(shí)間較長(zhǎng)的 sql 時(shí),基本上大家都會(huì)說(shuō)” 加個(gè)索引吧”。但是索引是什么東西,索引有哪些特性,下面和大家簡(jiǎn)單討論一下。
    的頭像 發(fā)表于 12-24 16:20 ?996次閱讀
    Mysql<b class='flag-5'>索引</b>是什么東西?<b class='flag-5'>索引</b>有哪些<b class='flag-5'>特性</b>?<b class='flag-5'>索引</b>是如何工作的?

    mybatis一級(jí)緩存和二級(jí)緩存的原理

    MyBatis是一種輕量級(jí)的持久化框架,它提供了一級(jí)緩存和二級(jí)緩存的機(jī)制來(lái)優(yōu)化數(shù)據(jù)庫(kù)操作性能。一級(jí)緩存是默認(rèn)開(kāi)啟的,而二級(jí)緩存需要手動(dòng)配置啟用。 一、一
    的頭像 發(fā)表于 12-03 11:55 ?912次閱讀

    C波段二級(jí)放大電路設(shè)計(jì)方案

    電子發(fā)燒友網(wǎng)站提供《C波段二級(jí)放大電路設(shè)計(jì)方案.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 09:18 ?3次下載
    C波段<b class='flag-5'>二級(jí)</b>放大電路設(shè)計(jì)方案

    RX系列幫您實(shí)現(xiàn)二級(jí)MCU OTA升級(jí):FreeRTOS篇

    RX系列幫您實(shí)現(xiàn)二級(jí)MCU OTA升級(jí):FreeRTOS篇
    的頭像 發(fā)表于 10-26 18:04 ?777次閱讀
    RX系列幫您實(shí)現(xiàn)<b class='flag-5'>二級(jí)</b>MCU OTA升級(jí):FreeRTOS篇

    MOS管的基本結(jié)構(gòu) MOS管的二級(jí)效應(yīng)

    本章首先介紹了MOS管的基本結(jié)構(gòu)并推導(dǎo)了其I/V特性,并闡述MOS管的二級(jí)效應(yīng),如體效應(yīng)、溝道長(zhǎng)度調(diào)制效應(yīng)和亞閾值傳導(dǎo)等,之后介紹了MOS管的寄生電容,并推導(dǎo)其小信號(hào)模型。
    發(fā)表于 10-02 17:36 ?4006次閱讀
    MOS管的基本結(jié)構(gòu) MOS管的<b class='flag-5'>二級(jí)</b>效應(yīng)