Встроенные функции
Общие сведения
Мы стремимся обеспечить полную совместимость PipelineDB с PostgreSQL 10.1+ и 11.0+. Поэтому все встроенные функции PostgreSQL доступны пользователям PipelineDB.
Агрегатные функции
Поскольку одной из основных целей PipelineDB является обеспечение высокопроизводительной непрерывной агрегации данных, агрегатные функции PostgreSQL полностью поддерживаются в непрерывных представлениях (за исключением нескольких редких случаев). Помимо приведенного здесь набора стандартных агрегатов, в PipelineDB также добавлены некоторые собственные агрегаты, непрерывные агрегатные функции, специально разработанные для непрерывной обработки данных временных рядов.
См. раздел Непрерывные агрегатные функции для получения дополнительной информации о некоторых наиболее полезных функциях PipelineDB.
Внутренние типы PipelineDB
PipelineDB поддерживает ряд встроенных типов для эффективного использования вероятностных структур данных и алгоритмов на потоках. Скорее всего, вам не придется вручную создавать таблицы с этими типами, но часто их возвращают непрерывные агрегатные функции, поэтому они автоматически создаются непрерывными представлениями. Вот они:
Встроенные функции PipelineDB
PipelineDB поставляется с рядом функций, которые полезны для взаимодействия с этими типами. Они описаны ниже.
Функции фильтра Блума
bloom_add ( bloom, expression )
Добавляет данное выражение в Фильтр Блума.
bloom_cardinality ( bloom )
Возвращает мощность данного Фильтра Блума. Это количество уникальных элементов, которые были добавлены в фильтр Блума, с небольшой погрешностью или ошибкой.
bloom_contains ( bloom, expression )
Возвращает true, если фильтр Блума вероятно содержит заданное значение, с небольшой вероятностью ложного результата.
bloom_intersection ( bloom, bloom, … )
Возвращает фильтр Блума, представляющий пересечение заданных фильтров Блума.
bloom_union ( bloom, bloom, … )
Возвращает фильтр Блума, представляющий объединение заданных фильтров Блума.
См. Фильтры Блума для получения информации об агрегатах, которые можно использовать для создания фильтров Блума.
Функции topk
topk_increment ( topk, expression )
Увеличивает частоту данного выражения в пределах заданного topk и возвращает полученный результат topk.
topk_increment ( topk, expression, weight )
Увеличивает частоту данного выражения на указанный вес в пределах заданного topk и возвращает полученный topk.
topk ( topk )
Возвращает до k кортежей, представляющих заданные значения topk и соответствующие частоты.
topk_freqs ( topk )
Возвращает до k частот, связанных с заданными наиболее часто встречающимися значениями topk.
topk_values ( topk )
Возвращает до k значений, представляющих заданные наиболее часто встречающихся значений topk.
Функции частоты
freq_add ( cmsketch, expression, weight )
Увеличивает частоту данного выражения на указанный вес в пределах заданного Count-Min Sketch.
freq ( cmsketch, expression )
Возвращает количество раз, когда значение выражения было добавлено к данному Count-Min Sketch, с небольшой погрешностью.
freq_norm ( cmsketch, expression )
Возвращает нормализованную частоту выражения в данном Count-Min Sketch, с небольшой погрешностью.
freq_total ( cmsketch )
Возвращает общее количество элементов, добавленных в указанный Count-Min Sketch.
См. Агрегаты Count-Min Sketch для получения информации об агрегатах, которые можно использовать для создания cmsketches.
Функции HyperLogLog
hll_add ( hyperloglog, expression )
Добавляет данное выражение к HyperLogLog.
hll_cardinality ( hyperloglog )
Возвращает мощность данного HyperLogLog, с погрешностью примерно ~0.2%.
hll_union ( hyperloglog, hyperloglog, … )
Возвращает hyperloglog представляющий объединение данного hyperloglog.
См. Агрегаты HyperLogLog для получения информации об агрегатах, которые можно использовать для создания объектов hyperloglog.
Функции распределения
dist_add ( tdigest, expression, weight )
Увеличивает частоту данного выражения на заданный вес в T-Digest.
dist_cdf ( tdigest, expression )
При заданном T-Digest возвращает значение соответствующей кумулятивной функции распределения, вычисленное для значения выражения, с небольшой погрешностью.
dist_quantile ( tdigest, float )
При заданном tdigest возвращает значение для заданного квантиля, float. float должен быть в диапазоне
[0, 1]
.
См. Агрегаты T-Digest для получения информации об агрегатах, которые могут быть использованы для создания объектов tdigest.
Различные функции
bucket_cardinality ( bucket_agg, bucket_id )
Возвращает мощность заданного bucket_id в заданном bucket_agg.
bucket_ids ( bucket_agg )
Возвращает массив всех идентификаторов бакетов, содержащихся в заданном bucket_agg.
bucket_cardinalities ( bucket_agg )
Возвращает массив мощностей, содержащихся в заданном bucket_agg, по одной для каждого идентификатора bucket id.
См. Различные агрегаты для получения информации об агрегатах, которые могут быть использованы для создания объектов bucket_agg.
date_round ( timestamp, resolution )
«Округляет» дату в меньшую сторону до ближайшего разрешения (или бакета), выраженного в виде интервала. Часто применимо для суммирования. Например, для суммирования событий в интервалы по 10 минут:
CREATE VIEW v AS SELECT
date_round(arrival_timestamp, '10 minutes') AS bucket_10m, COUNT(*) FROM stream
GROUP BY bucket_10m;
year ( timestamp )
Усекает заданную метку времени до года.
month ( timestamp )
Усекает заданную метку времени до месяца.
day ( timestamp )
Усекает заданную метку времени до дня.
hour ( timestamp )
Усекает заданную метку времени до часа.
minute ( timestamp )
Усекает заданную метку времени до минуты.
second ( timestamp )
Усекает заданную метку времени до секунды.
set_cardinality ( array )
Возвращает мощность заданного множества массива. Множества могут быть построены с использованием set_agg.
Операционные функции
pipelinedb.activate ( name )
Активирует заданное непрерывное представление или преобразование.
pipelinedb.deactivate ( name )
Деактивирует заданное непрерывное представление или преобразование.
pipelinedb.combine_table( continuous view name, table )
Операция combine объединяет строки из данной таблицы в данное непрерывное представление. combine_table использует определение запроса непрерывных представлений для объединения агрегированных значений из обоих отношений без потери информации.
combine_table можно использовать для таких целей как заполнение непрерывного представления (возможно, работающего на автономной установке), объединяя заполненные строки в «живое» непрерывное представление только после того, как они были полностью заполнены.
pipelinedb.get_views ( )
Возвращает множество всех непрерывных представлений.
pipelinedb.get_transforms ( )
Возвращает множество всех непрерывных преобразований.
pipelinedb.truncate_continuous_view ( name )
Усекает все строки из указанного непрерывного представления.
pipelinedb.version ( )
Возвращает строку, содержащую всю информацию о версии вашей установки PipelineDB.
Системные представления
PipelineDB включает ряд системных представлений для просмотра нужной информации о непрерывных представлениях и преобразованиях:
pipelinedb.views
Описывает непрерывные представления.
View "pipelinedb.views"
Column | Type |
-------+---------+
id | oid |
schema | text |
name | text |
active | boolean |
query | text |
pipelinedb.transforms
Описывает непрерывные преобразования
View "pipelinedb.transforms"
Column | Type |
-------+---------+
id | oid |
schema | text |
name | text |
active | boolean |
tgfunc | text |
tgargs | text[] |
query | text |
pipelinedb.stream_readers
Для каждого потока показывает все непрерывные запросы, которые читают из него данные.
View "pipelinedb.transforms"
Column | Type | -------------------+-----------+ stream | text | continuous_queries | text\[] |
Доступны дополнительные системные представления для просмотра статистики процессов PipelineDB, непрерывных запросов и потоков.