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

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

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

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

禿頭也愛科技 ? 來源:禿頭也愛科技 ? 作者:禿頭也愛科技 ? 2022-12-02 09:18 ? 次閱讀

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

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

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

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

什么是GaussDB(for Cassandra)?

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

什么是二級索引?

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

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

當(dāng)前Cassandra二級索引的痛點有哪些?

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

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

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

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

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

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

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

Why Lucene?

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

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

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

3.具備豐富的查詢類型:支持短語查詢、通配符查詢、近似查詢、范圍查詢等;

4.有強大的開源社區(qū)支持,可維護性好;

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

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

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

更加靈活的查詢、過濾方式:

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

強大的文本檢索能力:

文本檢索能力正是Lucene最擅長的,使用起來十分方便,只需要通過關(guān)鍵詞like即可實現(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)定

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

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

多種刪除方式:

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

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范圍刪除

支持擴展json查詢接口,輕松應(yīng)對各種復(fù)雜查詢場景:

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

filter

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

term

查詢時判斷某個document是否包含某個具體的值,不會對被查詢的值進行分詞查詢

match

將被詢值進行分詞,進行全文檢索

range

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

bool

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

must

bool類型的子查詢,類型為list,封裝"term"、"match"、"range" 查詢

should

bool類型的子查詢,類型為list,封裝"term"、"match"、"range" 查詢

must not

bool類型的子查詢,類型為list,封裝"term"、"match"、"range" 查詢

舉個栗子:

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\\}\\}\\}\\]\\}\\}\\]\\}\\}\\}'\\)

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

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

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

    關(guān)注

    3

    文章

    3368

    瀏覽量

    42567
  • Lucene
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

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

    關(guān)注

    3

    文章

    2605

    瀏覽量

    17475
收藏 人收藏

    評論

    相關(guān)推薦

    二級浪涌保護器的區(qū)別與選型指南

    尤為重要。地凱科技將深入分析一二級浪涌保護器的主要區(qū)別、識別方法、選擇依據(jù)及不同行業(yè)中的細分應(yīng)用。 一浪涌保護器與二級浪涌保護器的定義與工作原理 一
    的頭像 發(fā)表于 11-08 11:04 ?289次閱讀
    一<b class='flag-5'>級</b>和<b class='flag-5'>二級</b>浪涌保護器的區(qū)別與選型指南

    二級配電箱的作用介紹

    配電箱作為電能分配和管理的關(guān)鍵設(shè)備,發(fā)揮著至關(guān)重要的作用。二級配電箱位于一配電箱和三配電箱之間,起到中間分配電力的作用。本文將深入探討二級配電箱的主要特點和功能,為電力系統(tǒng)的優(yōu)化提
    的頭像 發(fā)表于 10-04 11:46 ?529次閱讀

    INA128兩放大,第二級放大測不出來的原因?如何解決?

    放大 第一放大6倍第二級放大16倍 信號源輸入2v電壓示波器顯示第一放大只有5.2倍第二級放大測不出來當(dāng)兩
    發(fā)表于 09-12 06:51

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

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

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

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

    二級浪涌保護器型號如何選擇

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

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

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

    HarmonyOS開發(fā)案例:【卡片二級聯(lián)動】

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

    **十萬口語識別,離線自然說技術(shù),智能照明懂你**

    自然說技術(shù),用戶不用死記硬背,提供了自然、更靈活、智能的語音交互方式。 方案框圖 在方案設(shè)計上,啟英泰倫充分考慮了產(chǎn)品功能、復(fù)雜程度和制造成本等因素。通過將語音芯片作為主控,內(nèi)置在
    發(fā)表于 04-29 17:09

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

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

    GaussDB(for Redis) 特性揭秘:大 key 治理

    運行過程中悄悄產(chǎn)生的,人防不勝防。因此,一款可隨時在線診斷,且能主動預(yù)警,防患于未然的 Redis 服務(wù)產(chǎn)品顯得尤為重要。 ? 作為由華為云精心打造的企業(yè) Redis,GaussDB
    的頭像 發(fā)表于 03-28 22:06 ?675次閱讀
    <b class='flag-5'>GaussDB</b>(for Redis) <b class='flag-5'>特性</b>揭秘:大 key 治理

    Redis官方搜索引擎來了,性能炸裂!

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

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

    二級電源和II電源的區(qū)別 隨著電力需求的不斷增長,人們對電源的要求也越來越高。二級電源和II電源是兩種常見的電源等級,它們在一些關(guān)鍵的技術(shù)規(guī)范上存在一些區(qū)別。 首先,我們來了解一下
    的頭像 發(fā)表于 01-19 13:51 ?2166次閱讀

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

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

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

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