extractKeyValuePairs
Добавлено в: v23.4.0 Извлекает пары «ключ‑значение» из любой строки. Строка не обязательно должна быть полностью структурирована в формате пары ключ-значение; Он может содержать шум (например, файлы журналов). Формат пар ключ-значение для интерпретации задаётся через аргументы функции. Пара ключ-значение состоит из ключа, за которым следуетkey_value_delimiter, и значения. Поддерживаются ключи и значения в кавычках. Пары ключ-значение должны разделяться разделителями пар.
Синтаксис
data— строка, из которой извлекаются пары «ключ-значение». String или FixedString.key_value_delimiter- Символ, используемый в качестве разделителя между ключом и значением. По умолчанию:. String или FixedString.pair_delimiters- Набор символов, используемых в качестве разделителей между парами. По умолчанию\space,,и;. String или FixedString.quoting_character- Символ, используемый в качестве символа кавычек. По умолчанию". String или FixedString.unexpected_quoting_character_strategy- Стратегия обработки символов кавычек в неожиданных местах на этапеread_keyиread_value. Возможные значения:invalid,acceptиpromote.invalidотбрасывает ключ/значение и возвращает в состояниеWAITING_KEY.acceptрассматривает его как обычный символ.promoteпереводит в состояниеREAD_QUOTED_{KEY/VALUE}и начинает со следующего символа. Значение по умолчанию —PROMOTE
- Извлечённые пары «ключ-значение» в
Map(String, String).
mapFromString, str_to_map
Аргументы
- Отсутствуют.
extractKeyValuePairsWithEscaping
Добавленный в: v23.4.0 То же, что иextractKeyValuePairs, но с поддержкой экранирования.
Поддерживаемые экранирующие последовательности: \x, \N, \a, \b, \e, \f, \n, \r, \t, \v и \0.
Нестандартные экранирующие последовательности возвращаются как есть (включая обратный слеш), если только это не одна из следующих:
\\, ', ", backtick, /, = или управляющие символы ASCII (c <= 31).
Эта функция подходит для случаев, когда ни предварительное, ни последующее экранирование не подходят. Например, рассмотрим следующую
входную строку: a: "aaaa\"bbb". Ожидаемый результат: a: aaaa\"bbbb.
- Предварительное экранирование: в этом случае результат будет таким:
a: "aaaa"bbb", а затемextractKeyValuePairsвернет:a: aaaa - Последующее экранирование:
extractKeyValuePairsвернетa: aaaa\, а последующее экранирование оставит это без изменений.
- Отсутствуют.
map
Добавленный в: v21.1.0 Создаёт значение типаMap(key, value) из пар в формате ключ-значение.
Синтаксис
Map(Any, Any)
Примеры
Пример использования
Query
Response
mapAdd
Добавленный в: v20.7.0 Собирает все ключи и суммирует соответствующие им значения. Синтаксисarg1[, arg2, ...]— объекты типа Map или Tuple из двух массивов, в которых элементы первого массива представляют ключи, а второй массив содержит значения для каждого ключа.Map(K, V)илиTuple(Array(T), Array(T))
Map(K, V) или Tuple(Array(T), Array(T))
Примеры
С типом Map
Query
Response
Query
Response
mapAll
Добавленный в: v23.4.0 Проверяет, выполняется ли условие для всех пар ключ-значение в типе данных Map.mapAll — функция высшего порядка.
В качестве первого аргумента ей можно передать лямбда-функцию.
Синтаксис
func— лямбда-функция.лямбда-функцияmap— проверяемый Map.Map(K, V)
1, если все пары ключ-значение удовлетворяют условию, иначе — 0. UInt8
Примеры
Пример использования
Query
Response
mapApply
Добавленный в: v22.3.0 Применяет функцию к каждому элементу map. Синтаксисfunc— Лямбда-функция.Лямбда-функцияmap— Map, к которому нужно применить функцию.Map(K, V)
func к каждому элементу. Map(K, V)
Примеры
Пример использования
Query
Response
mapConcat
Добавленный в: v23.4.0 Объединяет несколько значений типа Map на основе равенства их ключей. Если элементы с одинаковым ключом есть более чем в одном входном Map, все элементы добавляются в результирующий Map, но через оператор [] доступен только первый из них. Синтаксисmaps— Произвольное количество значений типа Map.Map
Map
Примеры
Пример использования
Query
Response
mapContainsKey
Добавленный в: v21.2.0 Определяет, содержится ли ключ в Map. СинтаксисmapContains
Аргументы
map— Объект Map, в котором выполняется поиск.Map(K, V)key— Ключ, который нужно найти. Тип должен совпадать с типом ключа в Map.Any
UInt8
Примеры
Пример использования
Query
Response
mapContainsKeyLike
Добавленный в: v23.4.0 Проверяет, содержит ли Map ключ, соответствующий указанному шаблонуLIKE.
Синтаксис
map— Map, в котором выполняется поиск.Map(K, V)pattern— Шаблон регулярного выражения, с которым сопоставляются ключи.const String
1, если map содержит ключ, соответствующий pattern, иначе — 0. UInt8
Примеры
Пример использования
Query
Response
mapContainsKeyValue
Добавлено в: v26.9.0 Проверяет, содержит ли map запись с заданными ключом и значением. Для аргументов, отличных отNULL, это эквивалентно
arrayExists((k, v) -> k = key AND v = value, mapKeys(map), mapValues(map)).
NULL совпадает только с другим NULL, как в mapContainsKey и mapContainsValue, а не
даёт неопределённый результат сравнения, как оператор =.
Учитываются все записи — в отличие от map[key] = value, где сравнивается только значение первого
вхождения key.
При наличии текстового индекса с токенизатором keyValuePairs
эта функция вычисляется по индексу.
Синтаксис
map— Map, в котором выполняется поиск.Map(K, V)key— Искомый ключ. Тип должен совпадать с типом ключей Map.Anyvalue— Искомое значение. Тип должен совпадать с типом значений Map.Any
1, если Map содержит запись с заданными ключом и значением, иначе 0. UInt8
Примеры
Базовое использование
Query
Response
Query
Response
Query
Response
mapContainsValue
Добавленный в: v25.6.0 Определяет, содержится ли значение в Map. Синтаксисmap— Map, в которой выполняется поиск.Map(K, V)value— Искомое значение. Тип должен совпадать с типом значений вmap.Any
1, если map содержит value, и 0 — в противном случае. UInt8
Примеры
Пример использования
Query
Response
mapContainsValueLike
Добавленный в: v25.5.0 Проверяет, содержит ли Map значение, соответствующее указанному шаблонуLIKE.
Синтаксис
map— Map, в которой выполняется поиск.Map(K, V)pattern— Шаблон регулярного выражения для сопоставления со значениями.const String
1, если map содержит значение, соответствующее pattern, в противном случае — 0. UInt8
Примеры
Пример использования
Query
Response
mapEntries
Добавлено в: v26.10.0 Возвращает пары ключ-значение из Map в виде массива именованных Tuple с полямиkey и value.
Дублирующиеся ключи сохраняются.
Синтаксис
map— Map, из которого извлекаются записи.Map(K, V)
Array(Tuple(key K, value V))
Примеры
Пример использования
Query
Response
mapExists
Добавленный в: v23.4.0 Проверяет, выполняется ли условие хотя бы для одной пары ключ-значение в Map.mapExists — функция высшего порядка.
В качестве первого аргумента в нее можно передать лямбда-функцию.
Синтаксис
func— Необязательный. Лямбда-функция.лямбда-функцияmap— Проверяемое значение типа Map.Map(K, V)
1, если хотя бы одна пара ключ-значение удовлетворяет условию, в противном случае — 0. UInt8
Примеры
Пример использования
Query
Response
mapExtractKeyLike
Добавленный в: v23.4.0 Принимает map со строковыми ключами и шаблонLIKE, а возвращает map с элементами, ключи которых соответствуют шаблону.
Синтаксис
map— Map, из которого извлекаются данные.Map(K, V)pattern— Шаблон регулярного выражения, с которым сопоставляются ключи.const String
Map(K, V)
Примеры
Пример использования
Query
Response
mapExtractValueLike
Добавленный в: v25.5.0 Дляmap со строковыми значениями и шаблоном LIKE эта функция возвращает map, содержащий элементы, значения которых соответствуют шаблону.
Синтаксис
map— Map, из которого извлекаются данные.Map(K, V)pattern— Шаблон регулярного выражения для сопоставления со значениями.const String
Map(K, V)
Примеры
Пример использования
Query
Response
mapFilter
Добавленный в: v22.3.0 Фильтрует map, применяя функцию к каждому её элементу. Синтаксисfunc— лямбда-функция.лямбда-функцияmap—Map, который нужно отфильтровать.Map(K, V)
Map, содержащий только те элементы, для которых func возвращает значение, отличное от 0. Map(K, V)
Примеры
Пример использования
Query
Response
mapFromArrays
Добавленный в: v23.3.0 Создает Map из массива или Map ключей и массива или Map значений. Функция служит удобной альтернативой синтаксисуCAST([...], 'Map(key_type, value_type)').
Синтаксис
MAP_FROM_ARRAYS
Аргументы
keys— Массив или Map ключей, из которых создаётся карта.ArrayилиMapvalues— Массив или Map значений, из которых создаётся карта.ArrayилиMap
Map
Примеры
Базовое использование
Query
Response
Query
Response
mapKeys
Добавленный в: v21.2.0 Возвращает ключи заданного Map. Эту функцию можно оптимизировать, включив настройкуoptimize_functions_to_subcolumns.
Когда настройка включена, функция считывает только подстолбец keys, а не весь Map.
Запрос SELECT mapKeys(m) FROM table преобразуется в SELECT m.keys FROM table.
Синтаксис
map— Map, из которого извлекаются ключи.Map(K, V)
Array(T)
Примеры
Пример использования
Query
Response
mapPartialReverseSort
Добавленный в: v23.4.0 Сортирует элементы типа Map в порядке убывания; дополнительный аргумент limit позволяет выполнять частичную сортировку. Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям типа Map. Синтаксисfunc— Необязательный параметр. Лямбда-функция.Лямбда-функцияlimit— Сортируются элементы в диапазоне[1..limit].(U)Int*map— Сортируемый Map.Map(K, V)
Map(K, V)
Примеры
Пример использования
Query
Response
mapPartialSort
Добавленный в: v23.4.0 Сортирует элементы map в порядке возрастания; дополнительный аргумент limit позволяет выполнять частичную сортировку. Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map. Синтаксисfunc— Необязательный. Лямбда-функция.лямбда-функцияlimit— Сортируются элементы в диапазоне[1..limit].(U)Int*map— Сортируемое значение типа Map.Map(K, V)
Map(K, V)
Примеры
Пример использования
Query
Response
mapPopulateSeries
Добавленный в: v20.10.0 Заполняет отсутствующие пары ключ-значение в map с целочисленными ключами. Чтобы расширить ключи за пределы наибольшего значения, можно указать максимальный ключ. Точнее, функция возвращает map, в котором ключи образуют серию от наименьшего до наибольшего ключа (или до аргумента max, если он указан) с шагом 1, и соответствующие им значения. Если для ключа не указано значение, используется значение по умолчанию. Если ключи повторяются, с ключом связывается только первое значение (в порядке появления). Синтаксисmap— Значение типа Map с целочисленными ключами.Map((U)Int*, V)keys— Массив ключей.Array(T)values— Массив значений.Array(T)max— Необязательный параметр. Максимальное значение ключа.Int8илиInt16илиInt32илиInt64илиInt128илиInt256
Map(K, V) или Tuple(Array(UInt*), Array(Any))
Примеры
С типом Map
Query
Response
Query
Response
mapRemove
Добавлено в: v26.10.0 Удаляет из Map все записи, ключ которых равен указанному. Если одинаковый ключ имеют несколько записей, удаляются все совпадающие записи. Значения NULL сравниваются как обычные значения: ключ удаления, равный NULL, не совпадает с ключом, отличным от NULL, а компоненты со значением NULL в составных ключах совпадают с другими NULL-компонентами. Для типов ключей, имеющих общий супертип, ключи NaN подчиняются семантике поиска в Map, поэтому ключ удаления NaN совпадает с ключом NaN в Map. Синтаксисmap— Map, из которого удаляются записи с совпадающим ключом.Map(K, V)key— ключ, записи с которым удаляются. Его тип должен быть сопоставим с типом ключей Map.Any
Map(K, V)
Примеры
Пример использования
Query
Response
mapReverseSort
Добавленный в: v23.4.0 Сортирует элементы Map в порядке убывания. Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям Map. Синтаксисfunc— Необязательный. Лямбда-функция.Лямбда-функцияmap— Map, который нужно отсортировать.Map(K, V)
Map(K, V)
Примеры
Пример использования
Query
Response
mapSort
Добавленный в: v23.4.0 Сортирует элементы Map по возрастанию. Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям Map. Синтаксисfunc— Необязательный. Лямбда-функция.Лямбда-функцияmap— Map, которую нужно отсортировать.Map(K, V)
Map(K, V)
Примеры
Пример использования
Query
Response
mapSubtract
Добавленный в: v20.7.0 Собирает все ключи и вычитает соответствующие им значения. Синтаксисarg1[, arg2, ...]— Map или Tuple из двух массивов, где элементы первого массива представляют собой ключи, а второй массив содержит значения для каждого ключа.Map(K, V)илиTuple(Array(T), Array(T))
Map(K, V) или Tuple(Array(T), Array(T))
Примеры
С типом Map
Query
Response
Query
Response
mapUpdate
Добавленный в: v22.3.0 Для двух Map возвращает первую Map, в которой значения обновлены значениями для соответствующих ключей из второй Map. Синтаксисmap1—Map, который нужно обновить.Map(K, V)map2—Map, значения из которого используются для обновления.Map(K, V)
map1, в котором значения обновлены на основе значений соответствующих ключей из map2. Map(K, V)
Примеры
Базовое использование
Query
Response
mapValues
Добавленный в: v21.2.0 Возвращает значения указанного Map. Эту функцию можно оптимизировать, включив настройкуoptimize_functions_to_subcolumns.
Если настройка включена, функция считывает только подстолбец values, а не весь Map.
Запрос SELECT mapValues(m) FROM table преобразуется в SELECT m.values FROM table.
Синтаксис
map— объект Map, из которого извлекаются значения.Map(K, V)
Array(T)
Примеры
Пример использования
Query
Response