Рекомендации по анализу
Функции 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 при создании вычисляемых полей (Calculated Fields). К сожалению, в интерфейсе Tableau невозможно добавить описания к этим функциям, поэтому мы приведём их описание прямо здесь.
-IfAggregation Combinator (добавлено в 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). Например, это вычисляемое поле возвращает наглядные столбики в виде строки типа String: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) — неофициальная функция TableauRANDOM(), которая возвращает вещественное число в диапазоне от 0 до 1.RAND_CONSTANT([optional_field])(добавлено в v0.2.1) — создает столбец с константным случайным значением. Похоже на{RAND()}с фиксированным уровнем детализации (Fixed LOD), но быстрее. ЭквивалентrandConstant().REAL([my_number])— Приводит поле к типу float (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().