Перейти к основному содержимому
Перейти к основному содержимому

Настройка источника Postgres с TimescaleDB

Beta feature. Learn more.

Предпосылки

TimescaleDB — это расширение для Postgres с открытым исходным кодом, разработанное компанией Timescale Inc, которое направлено на повышение производительности аналитических запросов без необходимости уходить от Postgres. Это достигается за счет создания «гипертаблиц», которые управляются расширением и поддерживают автоматическое разбиение на «чанки». Гипертаблицы также поддерживают прозрачное сжатие и гибридное хранение строк и столбцов (известное как «гиперядро»), хотя эти функции требуют версии расширения с проприетарной лицензией.

Компания Timescale Inc также предлагает две управляемые услуги для TimescaleDB:

  • Managed Service for Timescale
  • Timescale Cloud.

Существуют сторонние поставщики, которые предлагают управляемые услуги, позволяющие использовать расширение TimescaleDB, но из-за лицензирования эти поставщики поддерживают только открытую версию расширения.

Гипертаблицы Timescale ведут себя иначе по сравнению с обычными таблицами Postgres во многих отношениях. Это создает некоторые сложности в процессе их репликации, поэтому возможность репликации гипертаблиц Timescale следует рассматривать как максимально возможную.

Поддерживаемые версии Postgres

ClickPipes поддерживает версии Postgres 12 и выше.

Включить логическую репликацию

Шаги, которые нужно выполнить, зависят от того, как развернута ваша инстанция Postgres с TimescaleDB.

  • Если вы используете управляемую услугу и ваш провайдер указан в боковом меню, пожалуйста, следуйте руководству для этого провайдера.
  • Если вы развертываете TimescaleDB сами, следуйте общему руководству.

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

к сведению

Timescale Cloud не поддерживает включение логической репликации, которая необходима для трубопроводов Postgres в режиме CDC. В результате пользователи Timescale Cloud могут выполнять только одноразовую загрузку своих данных (Initial Load Only) с помощью Postgres ClickPipe.

Конфигурация

Гипертаблицы Timescale не хранят никаких данных, вставленных в них. Вместо этого данные хранятся в нескольких соответствующих таблицах "чанков", которые находятся в схеме _timescaledb_internal. Для выполнения запросов к гипертаблицам это не является проблемой. Но во время логической репликации вместо обнаружения изменений в гипертаблице мы обнаруживаем их в таблице чанков. Postgres ClickPipe имеет логику для автоматической перенаправления изменений из таблиц чанков на родительскую гипертаблицу, но это требует дополнительных шагов.

к сведению

Если вы хотите выполнить только одноразовую загрузку ваших данных (Initial Load Only), пропустите шаги с 2 и далее.

  1. Создайте пользователя Postgres для трубопровода и предоставьте ему разрешения на SELECT для таблиц, которые вы хотите реплицировать.
примечание

Убедитесь, что заменили clickpipes_user и clickpipes_password на желаемое имя пользователя и пароль.

  1. В качестве суперпользователя/администратора Postgres создайте публикацию на исходном экземпляре, которая содержит таблицы и гипертаблицы, которые вы хотите реплицировать и также включает всю схему _timescaledb_internal. При создании ClickPipe вам нужно будет выбрать эту публикацию.
подсказка

Мы не рекомендуем создавать публикацию FOR ALL TABLES, так как это приведет к увеличению трафика от Postgres к ClickPipes (для отправки изменений для других таблиц, не входящих в трубопровод) и снизит общую эффективность.

к сведению

Некоторые управляемые услуги не предоставляют своим административным пользователям необходимые разрешения для создания публикации для всей схемы. Если это так, пожалуйста, создайте тикет в службу поддержки вашего провайдера. В качестве альтернативы, вы можете пропустить этот шаг и последующие шаги и выполнить одноразовую загрузку ваших данных.

  1. Предоставьте права на репликацию ранее созданному пользователю.

После выполнения этих шагов вы должны иметь возможность продолжить создание ClickPipe.

Устранение неполадок

Изначальная загрузка для таблиц может завершиться ошибкой:

Вам может потребоваться отключить сжатие или гиперядро колоночного хранилища для этих таблиц.

Настройка сетевого доступа

Если вы хотите ограничить трафик к вашему экземпляру Timescale, пожалуйста, добавьте в список разрешенных документированные статические NAT IP-адреса. Инструкции по этому поводу могут варьироваться в зависимости от провайдеров, пожалуйста, обратитесь к боковому меню, если ваш провайдер указан, или создайте тикет с ними.