Советы по анализу
Функции MEDIAN() и PERCENTILE()
- В режиме Live функции MEDIAN() и PERCENTILE() (начиная с релиза коннектора v0.1.3) используют функцию ClickHouse quantile()(), что значительно ускоряет вычисление, но использует выборку. Если вы хотите получить точные результаты вычислений, используйте функции
MEDIAN_EXACT()
иPERCENTILE_EXACT()
(основывается на quantileExact()()). - В режиме Extract вы не можете использовать MEDIAN_EXACT() и PERCENTILE_EXACT(), потому что MEDIAN() и PERCENTILE() всегда точные (и медленные).
Дополнительные функции для вычисляемых полей в режиме Live
ClickHouse имеет огромное количество функций, которые можно использовать для анализа данных — значительно больше, чем поддерживает Tableau. Для удобства пользователей мы добавили новые функции, которые доступны для использования в режиме Live при создании вычисляемых полей. К сожалению, нет возможности добавить описания к этим функциям в интерфейсе Tableau, поэтому мы добавим их описания прямо здесь.
-If
Комбинатор агрегации (добавлено в v0.2.3) - позволяет иметь фильтры на уровне строк прямо в агрегационном вычислении. Добавлены функцииSUM_IF(), AVG_IF(), COUNT_IF(), MIN_IF() & MAX_IF()
.BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int])
(добавлено в v0.2.1) — Забывайте о скучных гистограммах! Используйте функциюBAR()
вместо этого (эквивалентbar()
в ClickHouse). Например, это вычисляемое поле возвращает красивые бары в виде строки:COUNTD_UNIQ([my_field])
(добавлено в v0.2.0) — Вычисляет приблизительное количество различных значений аргумента. Эквивалент uniq(). Намного быстрее, чемCOUNTD()
.DATE_BIN('day', 10, [my_datetime_or_date])
(добавлено в v0.2.1) — эквивалентtoStartOfInterval()
в ClickHouse. Округляет дату или дату и время до заданного интервала, например:FORMAT_READABLE_QUANTITY([my_integer])
(добавлено в v0.2.1) — Возвращает округленное число с суффиксом (тысяча, миллион, миллиард и т.д.) как строку. Это полезно для удобного чтения больших чисел. ЭквивалентformatReadableQuantity()
.FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit])
(добавлено в v0.2.1) — Принимает временной интервал в секундах. Возвращает временной интервал с (год, месяц, день, час, минута, секунда) как строку.optional_max_unit
— максимальная единица для отображения. Допустимые значения:seconds
,minutes
,hours
,days
,months
,years
. ЭквивалентformatReadableTimeDelta()
.GET_SETTING([my_setting_name])
(добавлено в v0.2.1) — Возвращает текущее значение настраиваемой настройки. ЭквивалентgetSetting()
.HEX([my_string])
(добавлено в v0.2.1) — Возвращает строку, содержащую шестнадцатеричное представление аргумента. Эквивалентhex()
.KURTOSIS([my_number])
— Вычисляет выборочную куртозу последовательности. ЭквивалентkurtSamp()
.KURTOSISP([my_number])
— Вычисляет куртозу последовательности. ЭквивалентkurtPop()
.MEDIAN_EXACT([my_number])
(добавлено в v0.1.3) — Точно вычисляет медиану числовой последовательности данных. ЭквивалентquantileExact(0.5)(...)
.MOD([my_number_1], [my_number_2])
— Вычисляет остаток после деления. Если аргументы — дробные числа, они предварительно конвертируются в целые, отбрасывая дробную часть. Эквивалентmodulo()
.PERCENTILE_EXACT([my_number], [level_float])
(добавлено в v0.1.3) — Точно вычисляет процентиль числовой последовательности данных. Рекомендуемый диапазон уровня — [0.01, 0.99]. ЭквивалентquantileExact()()
.PROPER([my_string])
(добавлено в v0.2.5) - Преобразует текстовую строку так, чтобы первая буква каждого слова была заглавной, а остальные буквы — строчными. Пробелы и не алфавитные символы, такие как знаки препинания, также действуют как разделители. Например:RAND()
(добавлено в v0.2.1) — возвращает целое число (UInt32), например3446222955
. Эквивалентrand()
.RANDOM()
(добавлено в v0.2.1) — неофициальная функцияRANDOM()
Tableau, которая возвращает число с плавающей точкой от 0 до 1.RAND_CONSTANT([optional_field])
(добавлено в v0.2.1) — Генерирует постоянный столбец со случайным значением. Что-то вроде{RAND()}
Fixed LOD, но быстрее. ЭквивалентrandConstant()
.REAL([my_number])
— Преобразует поле в число с плавающей точкой (Float64). Подробностиздесь
.SHA256([my_string])
(добавлено в v0.2.1) — Вычисляет SHA-256 хэш из строки и возвращает полученный набор байтов в виде строки (FixedString). Удобно использовать с функциейHEX()
, например,HEX(SHA256([my_string]))
. ЭквивалентSHA256()
.SKEWNESS([my_number])
— Вычисляет выборочную асимметрию последовательности. ЭквивалентskewSamp()
.SKEWNESSP([my_number])
— Вычисляет асимметрию последовательности. ЭквивалентskewPop()
.TO_TYPE_NAME([field])
(добавлено в v0.2.1) — Возвращает строку, содержащую имя типа ClickHouse переданного аргумента. ЭквивалентtoTypeName()
.TRUNC([my_float])
— Это то же самое, что и функцияFLOOR([my_float])
. Эквивалентtrunc()
.UNHEX([my_string])
(добавлено в v0.2.1) — Выполняет обратную операцию кHEX()
. Эквивалентunhex()
.