Гарантии поставки данных
Существует три стратегии поставки данных:
- At-most-once — источник отправляет сообщение один раз. Если приемник не смог получить сообщение, оно будет безвозвратно потеряно. Скорость передачи данных увеличивается, но гарантия поставки отсутствует.
- At-least-once — источник отправляет сообщение до тех пор, пока приемник не подтвердит получение. Такая стратегия обеспечивает полную гарантию поставки, но может приводить к появлению дублей на приемнике.
- Exactly-once — источник отправляет сообщение до тех пор, пока приемник не подтвердит получение. Приемник обрабатывает сообщение при получении так, чтобы исключить возникновение дублей. Стратегия обеспечивает полную гарантию поставки без дублей, но требует больше вычислительных затрат и сложнее в реализации.
В сервисе Data Transfer для всех пар источник-приемник реализована стратегия поставки данных At-least-once. Приемник записывает в базу все полученные от источника сообщения и отправляет на источник подтверждение записи. Если источник по какой-то причине не получит от приемника подтверждение записи, сообщение будет отправлено повторно. В результате данные в базе приемника могут дублироваться.
При этом стратегия Exactly-once реализуется с точки зрения данных на уровне СУБД, если выполнены оба требования:
-
Поставляемая таблица содержит первичный ключ.
-
База данных приемника выполняет дедупликацию по первичному ключу:
Приемник Дедупликация по первичному ключу Топик Apache Kafka® — собственный или в составе сервиса Managed Service for Apache Kafka® База данных ClickHouse® — собственная или в составе сервиса Managed Service for ClickHouse® Собственная база данных Elasticsearch База данных Greenplum® — собственная или в составе сервиса Managed Service for Greenplum® База данных MongoDB — собственная или в составе сервиса Managed Service for MongoDB База данных MySQL® — собственная или в составе сервиса Managed Service for MySQL® База данных PostgreSQL — собственная или в составе сервиса Managed Service for PostgreSQL База данных OpenSearch — собственная или в составе сервиса Managed Service for OpenSearch Бакет Yandex Object Storage Поток данных Yandex Data Streams
Совет
Для фоновой очистки дублей в базе данных приемника ClickHouse® можно использовать движок ReplacingMergeTree
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc