Функции для битовых карт
Битовые карты можно создавать двумя способами. Первый способ — с помощью агрегирующей функции groupBitmap с суффиксом -State, второй — создание битовой карты на основе объекта Array.
bitmapAnd
Введена в версии: v20.1
Вычисляет логическую конъюнкцию (AND) двух битмапов.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T).bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает bitmap, содержащий биты, присутствующие в обоих входных объектах bitmap AggregateFunction(groupBitmap, T).
Примеры
Пример использования
bitmapAndCardinality
Добавлена в версии: v20.1
Возвращает кардинальность логической конъюнкции (AND) двух битмапов.
Синтаксис
Аргументы
bitmap1— первый объект битмапа.AggregateFunction(groupBitmap, T).bitmap2— второй объект битмапа.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает количество установленных битов в пересечении двух битмапов UInt64
Примеры
Пример использования
bitmapAndnot
Добавлена в версии: v20.1
Вычисляет разность множеств A AND-NOT B между двумя битмапами.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T).bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает bitmap, содержащий биты, установленные в первом bitmap, но отсутствующие во втором. AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapAndnotCardinality
Введена в версии v20.1
Возвращает мощность результата операции AND-NOT над двумя битовыми картами.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T).bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает количество установленных битов в результате bitmap1 AND-NOT bitmap2 UInt64
Примеры
Пример использования
bitmapBuild
Добавлена в версии v20.1.
Создает битмап из массива беззнаковых целых чисел. Является противоположностью функции bitmapToArray.
Синтаксис
Аргументы
array— массив беззнаковых целых чисел.Array(UInt*)
Возвращаемое значение
Возвращает битмап, построенный на основе переданного массива AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapCardinality
Появилась в версии: v20.1
Возвращает количество установленных битов (кардинальность) в битовой карте.
Синтаксис
Аргументы
bitmap— объект типа Bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает количество установленных битов в bitmap, тип результата — UInt64.
Примеры
Пример использования
bitmapContains
Впервые появилась в: v20.1
Проверяет, содержит ли битмап заданный элемент.
Синтаксис
Аргументы
bitmap— объект типа Bitmap.AggregateFunction(groupBitmap, T). -value— элемент, для которого выполняется проверка. (U)Int8/16/32/64
Возвращаемое значение
Возвращает 1, если bitmap содержит указанное значение, иначе 0 UInt8
Примеры
Пример использования
bitmapHasAll
Добавлена в версии: v20.1
Проверяет, содержит ли первый битмап все установленные биты второго битмапа.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T). -bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает 1, если все установленные биты второго bitmap присутствуют в первом bitmap, в противном случае — 0 UInt8.
Примеры
Пример использования
bitmapHasAny
Впервые появилось в: v20.1
Проверяет, содержит ли первый битмап какие-либо биты, установленные во втором битмапе.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T).bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает 1, если какие-либо биты второго bitmap присутствуют в первом bitmap, иначе 0 UInt8
Примеры
Пример использования
bitmapMax
Появилась в версии: v20.1
Возвращает позицию старшего установленного бита в битмапе или 0, если битмап пуст.
Синтаксис
Аргументы
bitmap— объект Bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает позицию старшего установленного бита в bitmap, иначе 0 типа UInt64.
Примеры
Пример использования
bitmapMin
Впервые представлена в версии v20.1
Возвращает позицию наименьшего установленного бита в битовой карте. Если все биты сброшены — UINT32_MAX (UINT64_MAX, если битовая карта содержит более чем 2^64 бит).
Синтаксис
Аргументы
bitmap— объект Bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает позицию младшего установленного бита в объекте bitmap или UINT32_MAX/UINT64_MAX UInt64.
Примеры
Пример использования
bitmapOr
Впервые появилась в: v20.1
Вычисляет логическую дизъюнкцию (OR) двух битовых карт.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T). -bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает bitmap, содержащий установленные биты, присутствующие хотя бы в одном из входных bitmap-объектов AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapOrCardinality
Введена в версии: v20.1
Возвращает мощность логической дизъюнкции (OR) двух битовых карт.
Синтаксис
Аргументы
bitmap1— первый bitmap-объект.AggregateFunction(groupBitmap, T). -bitmap2— второй bitmap-объект.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает количество установленных битов в объединении двух bitmap-объектов UInt64.
Примеры
Пример использования
bitmapSubsetInRange
Впервые появился в версии v20.1
Возвращает подмножество битовой карты, содержащее только установленные биты в указанном диапазоне [start, end). Используется индексация с единицы.
Синтаксис
Аргументы
bitmap— битовая карта, из которой извлекается поднабор.AggregateFunction(groupBitmap, T). -start— начало диапазона (включительно).UInt*-end— конец диапазона (не включая).UInt*
Возвращаемое значение
Возвращает битовую карту, содержащую только биты, установленные в указанном диапазоне. AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapSubsetLimit
Добавлена в версии v20.1
Возвращает подмножество битовой карты, начиная с позиции range_start, содержащее не более cardinality_limit установленных битов. Использует индексацию, начинающуюся с 1.
Синтаксис
Аргументы
bitmap— объект bitmap.AggregateFunction(groupBitmap, T). -range_start— начало диапазона (включительно).UInt32-cardinality_limit— максимальное количество установленных битов в подмножестве.UInt32
Возвращаемое значение
Возвращает bitmap, содержащий не более cardinality_limit установленных битов, начиная с range_start, типа AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapToArray
Впервые появилась в версии: v20.1
Преобразует битовую карту в массив беззнаковых целых чисел. Является противоположностью функции bitmapBuild.
Синтаксис
Аргументы
bitmap— битовая карта для преобразования.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает массив беззнаковых целых чисел, содержащихся в битовой карте Array(UInt*)
Примеры
Пример использования
bitmapTransform
Впервые появилась в: v20.1
Изменяет до N бит в битовой карте, заменяя определённые значения битов из from_array на соответствующие значения из to_array.
Синтаксис
Аргументы
bitmap— объект Bitmap.AggregateFunction(groupBitmap, T). -from_array— массив исходных установленных бит, которые необходимо заменить.Array(T). -to_array— массив новых установленных бит, на которые производится замена.Array(T).
Возвращаемое значение
Возвращает bitmap с элементами, преобразованными в соответствии с указанным отображением. AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapXor
Введена в версии v20.1
Вычисляет симметрическую разность (XOR) двух битмапов.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T).bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает bitmap, содержащий биты, установленные в одном из входных bitmap-объектов, но не в обоих. AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapXorCardinality
Добавлена в версии: v20.1
Возвращает мощность результата XOR (симметрической разности) двух битмапов.
Синтаксис
Аргументы
bitmap1— первый объект bitmap.AggregateFunction(groupBitmap, T). -bitmap2— второй объект bitmap.AggregateFunction(groupBitmap, T).
Возвращаемое значение
Возвращает количество установленных битов в симметрической разности двух объектов bitmap UInt64
Примеры
Пример использования
subBitmap
Введена в версии: v21.9
Возвращает подмножество битовой карты, начиная с позиции offset. Максимальная кардинальность возвращаемой битовой карты — cardinality_limit.
Синтаксис
Аргументы
bitmap— объект Bitmap.AggregateFunction(groupBitmap, T). -offset— количество установленных (единичных) битов, которые нужно пропустить от начала (нумерация с нуля).UInt32-cardinality_limit— максимальное количество установленных (единичных) битов, включаемых в подмножество.UInt32
Возвращаемое значение
Возвращает bitmap, содержащий не более limit установленных битов, начиная после пропуска offset установленных битов в порядке возрастания. AggregateFunction(groupBitmap, T)
Примеры
Пример использования