You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ydb/docs/en/core/concepts/cdc.md
+19-30Lines changed: 19 additions & 30 deletions
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,7 @@ A [JSON](https://en.wikipedia.org/wiki/JSON) record has the following structure:
78
78
*`erase`: Erase flag. Present if a record matches the erase operation.
79
79
*`newImage`: Row snapshot that results from its being changed. Present in `NEW_IMAGE` and `NEW_AND_OLD_IMAGES` modes. Contains column names and values.
80
80
*`oldImage`: Row snapshot before the change. Present in `OLD_IMAGE` and `NEW_AND_OLD_IMAGES` modes. Contains column names and values.
81
-
*`ts`: Virtual timestamp. Present if the `VIRTUAL_TIMESTAMPS` setting is enabled. Contains the value of the global coordinator time (`step`) and the unique transaction ID (`txId`).
81
+
*`ts`: [Virtual timestamp](#virtual-timestamps). Present if the `VIRTUAL_TIMESTAMPS` setting is enabled. Contains the value of the global coordinator time (`step`) and the unique transaction ID (`txId`).
82
82
83
83
> Sample record of an update in `UPDATES` mode:
84
84
>
@@ -155,63 +155,52 @@ The record structure is the same as for [Amazon DynamoDB Streams](https://docs.a
155
155
156
156
{% endif %}
157
157
158
-
{% if audience == "tech" %}
159
-
160
158
### Debezium-compatible JSON format {#debezium-json-record-structure}
161
159
162
160
A [Debezium](https://debezium.io)-compatible JSON record structure has the following format:
163
161
164
-
Message body
165
162
```json
166
163
{
167
164
"payload": {
168
165
"op": <op>,
169
166
"before": {<columns>},
170
167
"after": {<columns>},
171
-
"ts": [<step>, <txId>],
172
168
"source": {
173
-
"version": <version>,
174
169
"connector": <connector>,
170
+
"version": <version>,
175
171
"ts_ms": <ts_ms>,
176
-
"txId": <txId>
172
+
"step": <step>,
173
+
"txId": <txId>,
174
+
"snapshot": <bool>
177
175
}
178
176
}
179
177
}
180
178
```
181
179
182
180
*`op`: Operation that was performed on a row:
183
-
*"u" means Update.
184
-
*"s" means reSet (to not confuse with Read).
185
-
*"d" means Delete.
186
-
*`before`: Row snapshot before the change. Present in `OLD_IMAGE` and `NEW_AND_OLD_IMAGES` modes. Contains column names and values. Present only if the row existed before the change.
187
-
*`after`: Row snapshot after the change. Present in `NEW_IMAGE` and `NEW_AND_OLD_IMAGES` modes. Contains column names and values. Present only if the row exists after the change.
188
-
*`ts`: Virtual timestamp. Present if the `VIRTUAL_TIMESTAMPS` setting is enabled. Contains the value of the global coordinator time (`step`) and the unique transaction ID (`txId`). Note that Debezium connectors usually use a single integer `ts_ms` instead.
181
+
*`c` — create. Applicable only in `NEW_AND_OLD_IMAGES` mode.
182
+
*`u` — update.
183
+
*`d` — delete.
184
+
*`r` — read from [snapshot](#initial-scan).
185
+
*`before`: Row snapshot before the change. Present in `OLD_IMAGE` and `NEW_AND_OLD_IMAGES` modes. Contains column names and values.
186
+
*`after`: Row snapshot after the change. Present in `NEW_IMAGE` and `NEW_AND_OLD_IMAGES` modes. Contains column names and values.
189
187
*`source`: Source metadata for the event.
190
-
*`version`: Connector version that was used to generate the record. Current version is `0.0.1`.
191
-
*`connector`: Connector name. Current name is `ydb_debezium_json`.
188
+
*`connector`: Connector name. Current name is `ydb`.
189
+
*`version`: Connector version that was used to generate the record. Current version is `1.0.0`.
192
190
*`ts_ms`: Approximate time when the change was applied, in milliseconds.
193
-
*`txId`: Unique transaction ID.
191
+
*`step`: Global coordinator time. Part of the [virtual timestamp](#virtual-timestamps).
192
+
*`txId`: Unique transaction ID. Part of the [virtual timestamp](#virtual-timestamps).
193
+
*`snapshot`: Whether the event is part of a snapshot.
194
194
195
-
{% note warning %}
196
-
197
-
Currently debezium json format doesn't have `schema` field. Other Debezium connectors have it.
195
+
When reading using Kafka API, the Debezium-compatible primary key of the modified row is specified as the message key:
198
196
199
-
{% endnote %}
200
-
201
-
If you use kafka API to read a topic, you will see debezium-compatible kafka key as well, in the following format:
202
197
```json
203
198
{
204
-
"payload": {
205
-
<columns>
206
-
}
199
+
"payload": {<columns>}
207
200
}
208
201
```
209
202
210
-
*`payload`: Key of a row that was changed. Always present.
211
-
212
-
You can read more in kafka integration documentation about details on how it is stored and how to access it directly.
213
-
214
-
{% endif %}
203
+
*`payload`: Key of a row that was changed. Contains names and values of the columns that are components of the primary key.
Copy file name to clipboardExpand all lines: ydb/docs/en/core/yql/reference/yql-core/syntax/_includes/alter_table.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -140,9 +140,9 @@ ALTER TABLE `series` RENAME INDEX `title_index` TO `title_index_new`;
140
140
*`NEW_AND_OLD_IMAGES`: A combination of `NEW_IMAGE` and `OLD_IMAGE` modes. Any column values _prior to_ and _resulting from_ updates are written.
141
141
*`FORMAT`: Data write format.
142
142
*`JSON`: Write data in [JSON](../../../../concepts/cdc.md#json-record-structure) format.
143
+
*`DEBEZIUM_JSON`: Write data in the [Debezium-like JSON format](../../../../concepts/cdc.md#debezium-json-record-structure).
143
144
{% if audience == "tech" %}
144
145
*`DYNAMODB_STREAMS_JSON`: Write data in the [JSON format compatible with Amazon DynamoDB Streams](../../../../concepts/cdc.md#dynamodb-streams-json-record-structure).
145
-
*`DEBEZIUM_JSON`: Write data in the [Debezium-like JSON format](../../../../concepts/cdc.md#debezium-json-record-structure).
146
146
{% endif %}
147
147
*`VIRTUAL_TIMESTAMPS`: Enabling/disabling [virtual timestamps](../../../../concepts/cdc.md#virtual-timestamps). Disabled by default.
148
148
*`RETENTION_PERIOD`: [Record retention period](../../../../concepts/cdc.md#retention-period). The value type is `Interval` and the default value is 24 hours (`Interval('PT24H')`).
Copy file name to clipboardExpand all lines: ydb/docs/ru/core/concepts/cdc.md
+23-34Lines changed: 23 additions & 34 deletions
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,7 @@ Change Data Capture (CDC) обеспечивает захват изменени
78
78
*`erase` — признак удаления. Присутствует, если запись соответствует операции удаления.
79
79
*`newImage` — снимок состояния строки, получившегося в результате изменения. Присутствует в режимах `NEW_IMAGE` и `NEW_AND_OLD_IMAGES`. Содержит названия и значения столбцов.
80
80
*`oldImage` — снимок состояния строки, предшествовавшего изменению. Присутствует в режимах `OLD_IMAGE` и `NEW_AND_OLD_IMAGES`. Содержит названия и значения столбцов.
81
-
*`ts` — виртуальная метка времени. Присутствует, если включена настройка `VIRTUAL_TIMESTAMPS`. Содержит значение глобального времени координатора (`step`) и уникальный идентификатор транзакции (`txId`).
81
+
*`ts` — [виртуальная метка времени](#virtual-timestamps). Присутствует, если включена настройка `VIRTUAL_TIMESTAMPS`. Содержит значение глобального времени координатора (`step`) и уникальный идентификатор транзакции (`txId`).
82
82
83
83
>Например, запись об обновлении в режиме `UPDATES`:
84
84
>
@@ -155,63 +155,52 @@ Change Data Capture (CDC) обеспечивает захват изменени
155
155
156
156
{% endif %}
157
157
158
-
{% if audience == "tech" %}
159
-
160
158
### JSON-формат, совместимый с Debezium {#debezium-json-record-structure}
161
159
162
160
Запись в формате [JSON](https://en.wikipedia.org/wiki/JSON), совместимого с [Debezium](https://debezium.io), имеет следующую структуру:
163
161
164
-
Тело сообщения:
165
162
```json
166
163
{
167
164
"payload": {
168
165
"op": <op>,
169
166
"before": {<columns>},
170
167
"after": {<columns>},
171
-
"ts": [<step>, <txId>],
172
168
"source": {
173
-
"version": <version>,
174
169
"connector": <connector>,
170
+
"version": <version>,
175
171
"ts_ms": <ts_ms>,
176
-
"txId": <txId>
172
+
"step": <step>,
173
+
"txId": <txId>,
174
+
"snapshot": <bool>
177
175
}
178
176
}
179
177
}
180
178
```
181
179
182
-
*`op`: операция, которая была произведена над строкой в таблице:
183
-
*"u" обозначает обновление.
184
-
*"s" обозначает сброс (reSet).
185
-
*"d" обозначает удаление.
186
-
*`before`: снимок состояния строки до изменения. Присутствует в режимах `OLD_IMAGE` и `NEW_AND_OLD_IMAGES`. Содержит названия и значения столбцов. Присутствует только если строка существовала до изменения.
187
-
*`after`: снимок состояния строки после изменения. Присутствует в режимах `NEW_IMAGE` и `NEW_AND_OLD_IMAGES`. Содержит названия и значения столбцов. Присутствует только если строка существует после изменения.
188
-
*`ts`: виртуальная метка времени. Присутствует, если включена настройка `VIRTUAL_TIMESTAMPS`. Содержит значение глобального времени координатора (`step`) и уникальный идентификатор транзакции (`txId`). Обратите внимание, что Debezium коннекторы обычно используют число `ts_ms`.
189
-
*`source`: метаданные записи.
190
-
*`version`: версия коннектора, используемая для генерации записи. Текущая версия: `0.0.1`.
191
-
*`connector`: название коннектора. Текущее название: `ydb_debezium_json`.
192
-
*`ts_ms`: примерное время применения изменения в YDB, в миллисекундах.
193
-
*`txId`: уникальный идентификатор транзакции.
194
-
195
-
{% note warning %}
196
-
197
-
Пока Debezium JSON формат не поддерживает `schema` в сообщении. Другие Debezium коннекторы это поддерживают.
180
+
*`op` — операция, которая была произведена над строкой в таблице:
181
+
*`c` — вставка. Допустимо только в режиме `NEW_AND_OLD_IMAGES`.
182
+
*`u` — обновление.
183
+
*`d` — удаление.
184
+
*`r` — чтение из [снапшота](#initial-scan).
185
+
*`before` — снимок состояния строки, предшествовавшего изменению. Присутствует в режимах `OLD_IMAGE` и `NEW_AND_OLD_IMAGES`. Содержит названия и значения столбцов.
186
+
*`after` — снимок состояния строки, получившегося в результате изменения. Присутствует в режимах `NEW_IMAGE` и `NEW_AND_OLD_IMAGES`. Содержит названия и значения столбцов.
187
+
*`source` — метаданные записи.
188
+
*`connector` — название коннектора. Текущее название: `ydb`.
189
+
*`version` — версия коннектора, используемая для генерации записи. Текущая версия: `1.0.0`.
190
+
*`ts_ms` — примерное время применения изменения в {{ ydb-short-name }}, в миллисекундах.
191
+
*`step` — глобальное время координатора. Компонент [виртуальных меток времени](#virtual-timestamps).
При чтении с использованием [Kafka API](../reference/kafka-api/index.md) в качестве ключа сообщения указывается Debezium-совместимый первичный ключ измененной строки:
198
196
199
-
{% endnote %}
200
-
201
-
При использовании kafka API для чтения топика, вы увидите Debezium-совместимый kafka ключ в следующем формате:
202
197
```json
203
198
{
204
-
"payload": {
205
-
<columns>
206
-
}
199
+
"payload": {<columns>}
207
200
}
208
201
```
209
202
210
-
*`payload`: Первичный ключ строки, которая была изменена
211
-
212
-
Информацию о том, как это сохранено в сообщении, и как можно получить информацию о ключе без использования kafka API, читайте в [документации об интеграции с kafka](../reference/kafka-api/index.md)
213
-
214
-
{% endif %}
203
+
*`payload` — первичный ключ строки, которая была изменена. Содержит названия и значения столбцов, являющихся компонентами первичного ключа.
Copy file name to clipboardExpand all lines: ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/alter_table.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -140,9 +140,9 @@ ALTER TABLE `series` RENAME INDEX `title_index` TO `title_index_new`;
140
140
*`NEW_AND_OLD_IMAGES` - комбинация режимов `NEW_IMAGE` и `OLD_IMAGE`. Будут записаны значения всех столбцов _до_ и _в результате_ изменения.
141
141
*`FORMAT` — формат данных, в котором будут записаны данные.
142
142
*`JSON` — записывать данные в формате {% if oss == "true" %}[JSON](../../../../concepts/cdc.md#json-record-structure){% else %}JSON{% endif %}.
143
+
*`DEBEZIUM_JSON` — записывать данные в {% if oss == "true" %}[JSON-формате, аналогичном Debezium формату](../../../../concepts/cdc.md#debezium-json-record-structure){% else %}JSON-формате, аналогичном Debezium формату{% endif %}.
143
144
{% if audience == "tech" %}
144
145
*`DYNAMODB_STREAMS_JSON` — записывать данные в {% if oss == "true" %}[JSON-формате, совместимом с Amazon DynamoDB Streams](../../../../concepts/cdc#dynamodb-streams-json-record-structure){% else %}JSON-формате, совместимом с Amazon DynamoDB Streams{% endif %}.
145
-
*`DEBEZIUM_JSON` — записывать данные в {% if oss == "true" %}[JSON-формате, аналогичном Debezium формату](../../../../concepts/cdc.md#debezium-json-record-structure){% else %}JSON-формате, аналогичном Debezium формату{% endif %}.
146
146
{% endif %}
147
147
*`VIRTUAL_TIMESTAMPS` — включение-выключение {% if oss == "true" %}[виртуальных меток времени](../../../../concepts/cdc.md#virtual-timestamps){% else %}виртуальных меток времени{% endif %}. По умолчанию выключено.
148
148
*`RETENTION_PERIOD` — {% if oss == "true" %}[время хранения записей](../../../../concepts/cdc.md#retention-period){% else %}время хранения записей{% endif %}. Тип значения — `Interval`, значение по умолчанию — 24 часа (`Interval('PT24H')`).
0 commit comments