Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for YDB
  • Начало работы
  • Управление доступом
  • Метрики Monitoring
  • Аудитные логи Audit Trails
    • Введение в работу с YDB через Terraform
    • Получение данных для аутентификации
    • Установка и настройка Terraform и провайдера для подключения к YDB
    • Создание конфигурационных файлов и подключение к YDB
    • Создание и изменение параметров бессерверной базы данных
    • Создание и изменение параметров выделенной базы данных
    • Создание строковых таблиц в базе данных
    • Создание документных таблиц в базе данных
    • Создание потока изменений таблицы
    • Создание вторичных индексов строковых таблиц
    • Управление конфигурацией топиков YDB
  • Вопросы и ответы
  • Публичные материалы
  • Обучающие курсы
  1. Работа с YDB через Terraform
  2. Создание потока изменений таблицы

Создание потока изменений таблицы

Статья создана
Yandex Cloud
Улучшена
Max Z.
Обновлена 21 октября 2024 г.

Поток изменений таблицы или Change Data Capture (CDC) — это механизм оповещения об изменениях данных в конкретной таблице. Когда в таблице добавляется, обновляется или удаляется строка, CDC формирует запись о произошедшем изменении с указанием первичного ключа строки и пишет ее в соответствующую данному ключу партицию топика. Топик — это сущность для хранения неструктурированных сообщений, предназначенная для их доставки множеству подписчиков. Фактически, топик — это именованный набор сообщений.

Описание ресурса yandex_ydb_table_changefeedОписание ресурса yandex_ydb_table_changefeed

Создать поток изменений таблицы можно с помощью ресурса yandex_ydb_table_changefeed:

resource "yandex_ydb_table_changefeed" "ydb_changefeed" {
  table_id = yandex_ydb_table.test_table_2.id
  name = "changefeed"
  mode = "NEW_IMAGE"
  format = "JSON"

  consumer {
    name = "test_consumer"
  }
}

В создании потока изменений таблицы мы использовали следующий набор полей:

  • table_id — идентификатор таблицы, для которой создается поток изменений;
  • name — название потока изменений;
  • mode — режим работы потока изменений. Все доступные режимы работы потока изменений описаны в документации.
  • format — формат потока изменений. Доступен только JSON формат.

Полное описание всех полей ресурса yandex_ydb_table_changefeed:

Название поля Тип Описание
table_path string
required
Путь до таблицы
connection_string string
required
Строка соединения, конфликтует с table_id
database_id string
required
Идентификатор базы данных, конфликтует с table_path и connection_string
table_id string
required
Terraform-идентификатор таблицы
name string
required
Имя потока изменений
mode string
required
Режим работы потока изменений
format string
required
Формат потока изменений
virtual_timestamps bool
optional
Использование виртуальных таймстеймпов
retention_period string
optional
Время хранения данных в топике в формате ISO 8601
consumer array[consumer]
optional
Консьюмеры (читатели) для потока изменений

При инициализации ресурса yandex_ydb_table_changefeed можно указать только одно поле соединения: connection_string, table_path или table_id. При указании нескольких полей соединения между ними возникают конфликты. Например, поле table_id с указанием относительной ссылки в формате: <ресурс>.<идентификатор>.<параметр> — yandex_ydb_table.test_table_2.id.

Внутри ресурса потока изменений располагается блок consumer. Consumer (читатель) — это именованная сущность для чтения данных из топика. У читателя несколько полей настроек. Главное поле — name (имя читателя). При инициализации ресурса yandex_ydb_table_changefeed можно задать несколько читателей, а можно не создавать ни одного, но тогда невозможно будет читать данные из потока изменений.

Полный перечень полей блока consumer:

Название поля Тип Описание
name string
required
Имя читателя
supported_codecs array[string]
optional
Поддерживаемые кодировки данных
starting_message_timestamp_ms integer
optional
Временная метка в формате UNIX timestamp, с которой читатель начнет читать данные

Имя читателя используется в SDK или CLI для чтения данных из топика.

Была ли статья полезна?

Предыдущая
Создание документных таблиц в базе данных
Следующая
Создание вторичных индексов строковых таблиц
Проект Яндекса
© 2025 ООО «Яндекс.Облако»