- Начальный снимок через S3 ClickPipes
- Обновления в реальном времени через Kinesis ClickPipes
ReplacingMergeTree. Этот движок таблицы обычно используется в сценариях CDC (фиксация изменений данных), так как позволяет применять операции обновления. Подробнее об этом шаблоне можно прочитать в следующих статьях блога:
- CDC (фиксация изменений данных) с PostgreSQL и ClickHouse — Часть 1
- CDC (фиксация изменений данных) с PostgreSQL и ClickHouse — Часть 2
1. Настройте поток Kinesis
2. Создайте снимок
3. Загрузите снимок в ClickHouse
Создайте необходимые таблицы
JSONExtract в materialized view.
Нам нужно создать три таблицы:
- Таблицу для хранения исходных данных из DynamoDB
- Таблицу для хранения итоговых данных в плоской структуре (целевая таблица)
- materialized view для преобразования данных в плоскую структуру
- Эта таблица должна использовать движок
ReplacingMergeTree - В таблице должен быть столбец
version- На следующих шагах мы сопоставим поле
ApproximateCreationDateTimeиз потока Kinesis со столбцомversion.
- На следующих шагах мы сопоставим поле
- В качестве ключа сортировки таблица должна использовать ключ партиционирования (задаётся через
ORDER BY)- Для строк с одинаковым ключом сортировки будет выполняться дедупликация по столбцу
version.
- Для строк с одинаковым ключом сортировки будет выполняться дедупликация по столбцу
Создайте ClickPipe для загрузки снимка
- Путь приёма: Вам нужно найти путь к экспортированным JSON‑файлам в S3. Он будет выглядеть примерно так:
- Формат: JSONEachRow
- Таблица: Ваша таблица снимка (например,
default.snapshotв примере выше)
4. Создайте Kinesis ClickPipe
- Поток: поток Kinesis из шага 1
- Таблица: ваша целевая таблица (например,
default.destinationв примере выше) - Развернуть объект: true
- Сопоставления столбцов:
ApproximateCreationDateTime:version- Сопоставьте остальные поля с соответствующими столбцами целевой таблицы, как показано ниже