Создание потока изменений таблицы
Поток изменений таблицы
Описание ресурса 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
. Consumername
(имя читателя). При инициализации ресурса yandex_ydb_table_changefeed
можно задать несколько читателей, а можно не создавать ни одного, но тогда невозможно будет читать данные из потока изменений.
Полный перечень полей блока consumer
:
Название поля | Тип | Описание |
---|---|---|
name | string required |
Имя читателя |
supported_codecs | array[string] optional |
Поддерживаемые кодировки данных |
starting_message_timestamp_ms | integer optional |
Временная метка в формате UNIX timestamp, с которой читатель начнет читать данные |
Имя читателя используется в SDK или CLI для чтения данных