當雲HBase2.0被賦能了search

概述

雲HBase2.0也就是我們即將要上線的ApsaraDB for HBase2.0。它不僅兼容開源HBase2.0,也承載著阿里多年大規模HBase使用的技術積澱,還有廣大公有云用戶喜歡的商業化功能。在大數據量場景中已經具有如此優勢的雲HBase2.0,如果還能search呢?

技術簡介

雲HBase2.0上的search是基於最新版本的solr7.3.x研發。數據通過replication準實時的同步到solrcloud中,利用solr實現數據的檢索。具體過程如下:

通過配置文件或者SQL中指定要同步的索引列以及分詞器等信息,建立HBase與solr表之間的映射關係。

當有HBase中發生數據操作(插入/更新/刪除)時,對應的操作數據將會被捕獲,轉化為doc寫入solrcloud中。

索引列作為全文索引進行檢索。先檢索solr中對應的索引數據,拿到所有符合條件索引數據的value, 也就是對應HBase表中rowkey時,再對HBase主表中的數據做過濾,最後獲取到查詢結果。

以上過程可參考下圖:

当云HBase2.0被赋能了search

架構優勢

當HBase有了search能力,不僅能解決非rowkey的索引問題,也補齊了HBase後綴模糊匹配,分詞檢索的能力。

索引數據的同步方案目前有兩種, 分別是使用HBase Coprocessor的同步方案和利用replication的異步方案。目前我們使用異步方案的原因是,對HBase集群影響最小,而且此方案經過多次優化,數據同步速度也能接近準實時。

除了兼容目前最高版本的HBase和solr的優勢以外,相對現在社區已有的同類方案,還有以下優點:

雲端的自動化運維和專家診斷,讓系統更加穩定。

支持存儲計算分離,solr索引數據存儲在oss,降低成本。

我們目的是為HBase提供內嵌的search能力,能通過易用的SQL對HBase的非rowkey列進行檢索。我們不僅僅支持search,以後也會擴展地理空間索引。

應用場景

某交通數據中心,每天會從各個路口攝像頭實時採集大量的車牌號數據,並存儲到HBase中。上層業務有以車牌號為條件,模糊查詢出相關車主信息的需求。而由於每天實時寫入的數據多達幾億條之多,同時涉及大量包含和後綴查詢。此時,HBase現有的功能特性,已經不能滿足此類查詢需求了,大數據量的全表掃描不僅非常慢,也很容易造成RS因為大scan頻繁掛掉的問題。對於有search功能的HBase來說,通過二級索引藉助luence的能力很容易就能解決這個問題。

總結

文中對雲HBase2.0的search功能做了簡單介紹。筆者更想通過本文能和有此類業務需求的同學進行交流,歡迎加釘釘群:11734635。另外,此功能預計7月份公測,也歡迎申請試用,感興趣的同學留言哦!


分享到:


相關文章: