ClickHouse H3緩沖區(qū)查詢

背景

????緩沖區(qū)查詢是非常常見的空間查詢,用來(lái)查詢周邊的信息方庭。本文介紹了H3來(lái)進(jìn)行緩沖區(qū)查詢的方案翩瓜。

H3簡(jiǎn)介

????H3是由Uber開源的一個(gè)六邊形分層索引網(wǎng)格系統(tǒng),也是最近幾年實(shí)現(xiàn)數(shù)據(jù)聚合的主要趨勢(shì)序无,在H3出現(xiàn)之前大部分情況采用的是Geohash算法验毡,墨卡托投影,還有一些其他投影技術(shù)帝嗡,比如Google S2地理索引晶通。

????在不同緯度的地區(qū)使用等面積、等形狀的六邊形地理單元可以減少指標(biāo)和特征歸一化的成本哟玷。另一方面狮辽,在常用的地理范圍查詢中,基于矩形的查詢方法,存在 8 鄰域到中心網(wǎng)格的距離不相等的問題喉脖,四邊形存在兩類長(zhǎng)度不等的距離椰苟,而六邊形的周圍鄰居到中心網(wǎng)格的距離卻是有且僅有一個(gè),從形狀上來(lái)說(shuō)更加接近于圓形树叽。

具體思路步驟

????創(chuàng)建表按H3來(lái)分區(qū)尊剔,分區(qū)不超過(guò)一千個(gè)最好

CREATE TABLE pntsh3 ENGINE = MergeTree()  PARTITION BY (geoh3) order by (geoh3,Lon,Lat) AS select id,geoToH3( toFloat64(Lon), toFloat64(Lat),3) geoh3,toFloat64(Lon) Lon, toFloat64(Lat) Lat from pnts 
image

????計(jì)算需要緩沖區(qū)范圍內(nèi)幾個(gè)該級(jí)別下幾個(gè)格子可以覆蓋ceil(200000/h3EdgeLengthM(3)/2+1, 0)),得到H3集合菱皆。計(jì)算公式大概就是用距離處理六邊形兩邊和再加上一個(gè)一邊長(zhǎng)须误,結(jié)果向上取整

select   Lon, Lat,id from pntsh3 where geoh3 in (select arrayJoin(h3kRing(geoToH3(-120.419219,34.889755999999998, 3), toInt64(ceil(200000/h3EdgeLengthM(3)/2+1, 0))))) and greatCircleDistance(Lon,Lat,-120.419219,34.889755999999998) <=200000
image
select   Lon, Lat,id from pntsh3 where geoh3 in (select arrayJoin(h3kRing(geoToH3(-120.419219,34.889755999999998, 3), toInt64(ceil(200/h3EdgeLengthM(3)/2+1, 0))))) and greatCircleDistance(Lon,Lat,-120.419219,34.889755999999998) <=200
image

????相對(duì)于暴力計(jì)算,無(wú)論緩沖區(qū)大小均有一定提升

select   Lon, Lat,id from pntsh3 where  greatCircleDistance(Lon,Lat,-120.419219,34.889755999999998) <=200000
image
select   Lon, Lat,id from pntsh3 where  greatCircleDistance(Lon,Lat,-120.419219,34.889755999999998) <=200

image


????通過(guò)H3索引的合理使用仇轻,有效減少了全表掃描京痢,提升查詢速度

參考資料:

https://www.biaodianfu.com/uber-h3.html

https://github.com/uber/h3-js#module_h3.h3Distance

https://zhuanlan.zhihu.com/p/60861179

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市篷店,隨后出現(xiàn)的幾起案子祭椰,更是在濱河造成了極大的恐慌,老刑警劉巖疲陕,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件方淤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹄殃,警方通過(guò)查閱死者的電腦和手機(jī)携茂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)诅岩,“玉大人讳苦,你說(shuō)我怎么就攤上這事》郧” “怎么了鸳谜?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)式廷。 經(jīng)常有香客問我咐扭,道長(zhǎng),這世上最難降的妖魔是什么滑废? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任蝗肪,我火速辦了婚禮,結(jié)果婚禮上策严,老公的妹妹穿的比我還像新娘穗慕。我一直安慰自己饿敲,他們只是感情好妻导,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般倔韭。 火紅的嫁衣襯著肌膚如雪术浪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天寿酌,我揣著相機(jī)與錄音胰苏,去河邊找鬼。 笑死醇疼,一個(gè)胖子當(dāng)著我的面吹牛硕并,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秧荆,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼倔毙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了乙濒?” 一聲冷哼從身側(cè)響起陕赃,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颁股,沒想到半個(gè)月后么库,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甘有,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年诉儒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亏掀。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡允睹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幌氮,到底是詐尸還是另有隱情缭受,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布该互,位于F島的核電站米者,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宇智。R本人自食惡果不足惜蔓搞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望随橘。 院中可真熱鬧喂分,春花似錦、人聲如沸机蔗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至梆掸,卻和暖如春扬卷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酸钦。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工怪得, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卑硫。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓徒恋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親欢伏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子因谎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 何為地理索引: 在工程領(lǐng)域,尤其是電商平臺(tái)颜懊,外賣平臺(tái)财岔,打車平臺(tái)頻繁使用的比如某一范圍內(nèi)的商品,商家功能等河爹。會(huì)使...
    khan_w閱讀 6,993評(píng)論 0 5
  • 動(dòng)態(tài)空間劃分(R-tree) 靜態(tài)空間劃分(GeoHash匠璧、S2、H3) 空間劃分知識(shí):http://www.co...
    麥三刀閱讀 11,646評(píng)論 0 5
  • Uber H3地理索引 正六邊形優(yōu)點(diǎn) 首先正六邊形相鄰單元距離相等咸这,且近似圓夷恍,不僅自身近似圓形,貼合密度概念媳维,很適...
    Tcpieg閱讀 3,764評(píng)論 0 1
  • H3出現(xiàn)背景 ????在不同緯度的地區(qū)使用等面積酿雪、等形狀的六邊形地理單元可以減少指標(biāo)和特征 normalizati...
    polong閱讀 1,717評(píng)論 2 1
  • 夜鶯2517閱讀 127,720評(píng)論 1 9