Clickhouse的bitmap函式
bitmapBuild(array)
從無符號整型(UInt8、UInt32、UInt64等)array構造bitmap
SELECT bitmapBuild([1, 2, 3, 4, 5]) AS res, toTypeName(res)
bitmapToArray(bitmap)
將bitmap轉成整型array
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res
bitmapSubsetInRange(bitmap, range_start, range_end)
返回bitmap中,range_start到range_end區間內(不包含renge_end)的子集bitmap物件
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([10,11,28,30,31,32,33,100,200,500]), toUInt32(30), toUInt32(200))) AS res
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
返回bitmap中,從range_start開始的cardinality_limit個元素組成的子集bitmap物件
SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([9,10,11,26,27,30,31,32,33,100,200,500]), toUInt32(30), toUInt32(200))) AS res
bitmapContains(bitmap, e)
判斷指定bitmap中是否存在e元素
SELECT bitmapContains(bitmapBuild([1,5,7,9]), toUInt32(9)) AS res
bitmapHasAny(bitmap1, bitmap2)
bitmap1中是否包含bitmap2中的元素,只要有一個相同的元素,就返回1,否則返回0.
SELECT bitmapHasAny(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res
bitmapHasAll(bitmap,bitmap)
bitmap1中是否全部包含bitmap2中的元素,全部包含就返回1,否則返回0.
SELECT bitmapHasAll(bitmapBuild([1,2,3]),bitmapBuild([3,2])) AS res
bitmapCardinality(bitmap)
返回bitmap的基數
SELECT bitmapCardinality(bitmapBuild([1, 2, 3, 4, 5])) AS res
bitmapTransform(bitmap, from_array, to_array)
將bitmap中的元素進行轉換,將存在於from_array的元素,一次轉換成to_array的對應元素。
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), cast([5,999,2] as Array(UInt32)), cast([2,888,20] as Array(UInt32)))) AS res
上面的例子中,依次將bitmap中,5轉成2,999(不存在)轉成888,2轉成20。因為就bitmap中不存在999,所以新bitmap沒有888;因為將5轉成2,又將2轉成20,所以新bitmap中去掉了5和2元素,新加了20元素
bitmapAnd(bitmap,bitmap)
求兩個bitmap的交集
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
bitmapOr(bitmap,bitmap)
求兩個bitmap的並集
SELECT bitmapToArray(bitmapOr(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
bitmapXor(bitmap,bitmap)
求兩個bitmap的異或
SELECT bitmapToArray(bitmapXor(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
bitmapAndnot(bitmap1,bitmap2)
求bitmap1與bitmap2的與非
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
相關文章
- Clickhouse新增bitmap分頁函式(水了個PR)函式
- [clickhouse] Clickhouse之開窗函式篇函式
- Clickhouse 時間日期函式函式
- Clickhouse 使用者自定義外部函式函式
- ClickHouse原始碼筆記1:聚合函式的實現原始碼筆記函式
- Clickhouse SQL日期處理函式及案例分享SQL函式
- ClickHouse原始碼筆記5:聚合函式的原始碼再梳理原始碼筆記函式
- ClickHouse原始碼筆記3:函式呼叫的向量化實現原始碼筆記函式
- Android - 利用擴充套件函式為Bitmap新增文字水印Android套件函式
- Oracle中B-Tree、Bitmap和函式索引使用案例總結Oracle函式索引
- ClickHouse 分散式架構(qbit)分散式架構
- 基於Redis分散式BitMap的應用Redis分散式
- 分散式 | 淺談 dble 引入 ClickHouse 的配置操作分散式
- BITMAP索引的INLIST ITERATOR與BITMAP OR索引
- main函式的入口函式AI函式
- 美圖分散式Bitmap實踐:Naix分散式AI
- js函式 函式自呼叫 返回函式的函式 (閉包)JS函式
- 使用bind()函式的產生的函式用作建構函式this的指向函式
- 函式定義、函式的引數、函式的預設引數函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- 函式宣告和函式表示式的區別函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- 閉包函式(匿名函式)的理解函式
- 函式: 函式是怎麼使用的?函式
- Rust中的into函式和from函式Rust函式
- closest()函式parent()函式的區別函式
- ascii函式和substr函式的用法ASCII函式
- 函式式 Java 到函式式 Kotlin 的轉換函式JavaKotlin
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- clickhouse 的運維運維
- 【函式式 Swift】函式式思想函式Swift
- Flink同步Kafka資料到ClickHouse分散式表Kafka分散式
- ClickHouse(04)如何搭建ClickHouse叢集
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- 類的建構函式和解構函式函式
- gethostbyname函式和getservbyname函式的應用函式