[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for YDB](../index.md) > Работа с YDB через Terraform > Управление конфигурацией топиков YDB

# Управление конфигурацией топиков YDB

Для работы с [топиками](https://ydb.tech/docs/ru//concepts/topic) используется ресурс `yandex_ydb_topic`.

{% note info %}

Рекомендуем создавать топик в отдельном каталоге. Топик в корне БД затрудняет читаемость ее структуры.

{% endnote %}

## Описание ресурса yandex_ydb_topic {#yandex_ydb_topic_description}

Пример использования ресурса `yandex_ydb_topic`:

```tf
resource "yandex_ydb_topic" "ydb_topic" {
  database_endpoint = yandex_ydb_database_serverless.database1.ydb_full_endpoint  # пример подключения к БД
  name              = "test_dir/test_topic"
  supported_codecs  = ["zstd"]

  consumer {
    name             = "test-consumer1"
    starting_message_timestamp_ms = 0
    supported_codecs = ["zstd","raw"]
  }

  consumer {
    name             = "test-consumer2"
    starting_message_timestamp_ms = 2000
    supported_codecs = ["zstd"]
  }

  consumer {
    name             = "test-consumer3"
    starting_message_timestamp_ms = 0
    supported_codecs = ["zstd"]
  }
}
```

Поддерживаются следующие поля:
| **Название поля** | **Тип** | **Описание** |
| --- | --- | --- |
|`name`|`string`<br>`required`|Имя топика|
|`database_endpoint`|`string`<br>`required`|Полный путь до базы данных|
|`retention_period_ms`|`number`<br>`optional`|Длительность хранения данных в миллисекундах, значение по умолчанию — `86400000` (сутки)|
|`partitions_count`|`number`<br>`optional`|Количество партиций, значение по умолчанию — `2`|
|`supported_codecs`|`list(string)`<br>`optional`|Поддерживаемые кодеки сжатия данных, значение по умолчанию — `"gzip", "raw", "zstd"`,<br>можно использовать их комбинации|
|`consumer`|`consumer`|Читатели для топика|

{% note info %}

Читателя (consumer) можно создать, используя Terraform, но нельзя удалить. Читателя можно удалить в [консоли управления](https://console.yandex.cloud) или с помощью [YDB CLI](https://ydb.tech/docs/ru//reference/ydb-cli/install).

{% endnote %}

Описание читателя данных ([consumer](https://ydb.tech/docs/ru//concepts/topic#consumer)):
| **Название поля** | **Тип** | **Описание** |
| --- | --- | --- |
|`name`|`string`<br>`required`|Имя читателя|
|`supported_codecs`|`list(string)`<br>`optional`|Поддерживаемые кодировки сжатия данных, по умолчанию — `"gzip", "raw", "zstd"`, можно использовать их комбинации|
|`starting_message_timestamp_ms`|`number`<br>`optional`|Временная метка в формате [UNIX timestamp](https://ru.wikipedia.org/wiki/Unix-время) в миллисекундах, с которой читатель начнет читать данные, по умолчанию — 0, то есть с начала поставки|