Советы по анализу
Функции 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()}фиксированного 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().