как определяется начальный диапазон чанка - PullRequest
1 голос
/ 16 января 2020

Я создал таблицу со значением времени, определенным как целое число (unix время эпохи). Я установил chunk_time_interval на 604800, чтобы блок создавался еженедельно. Я хочу, чтобы второй чанк создавался через неделю после вставки первой записи. В моем случае второй чанк создавался только через 2 дня. Как стартовый диапазон первого патрона решил. В моем случае, если я укажу продолжительность недели, она будет другой, а если я укажу 10 дней, она будет другой, хотя время первого входа в обоих случаях одинаковое. Я использую Postgres версию 11.6 для тестирования.

1 Ответ

0 голосов
/ 21 января 2020

Как определяется начальный диапазон первого патрона?

Диапазоны порций в столбце времени рассчитываются на основе интервала порции, поэтому начало диапазона выровнено по абсолютному нулю , Таким образом, время начала фрагмента является ближайшим временем, которое меньше вставленного значения и делится на интервал фрагмента. Вот как это вычисляется:

range_start = (value / dim->fd.interval_length) * dim->fd.interval_length;

Таким образом, начало чанка с теми же данными, но с разными временными интервалами, например, 7 или 10 дней, отличается.

Это также означает, что первый кусок может быть меньше, чем другие.

Обратите внимание, что порядок вставляемых данных часто строго не гарантируется. Таким образом, вторая вставка может иметь немного времени до первой вставки (подумайте о задержке в сети для разных датчиков), если приложение не имеет слоя между источником данных и базой данных, что гарантирует запись данных по порядку.

Я хочу, чтобы второй чанк создавался через неделю после вставки первой записи.

TimescaleDB не предоставляет возможность указать время начала чанка, так как оно рассчитывает его. Ваш запрос - это спецификация вашего приложения c, которую вы можете выполнить, применив временное смещение к каждой строке при вставке, а затем обратно при чтении, но это может не стоить сложности. Можете ли вы обновить исходную проблему и объяснить, почему это важно? Также возможно предложить новую функциональность TimescaleDB на его системе отслеживания проблем .

...