Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
NoSQL
Mongodb
Кассандра
Гремлин
Лента изменений в Azure Cosmos DB — это постоянная запись всех изменений в контейнере в том порядке, в котором они происходят. Поддержка канала изменений в Azure Cosmos DB работает путем отслеживания изменений в контейнере Azure Cosmos DB. Затем он выводит отсортированный список документов в порядке, в котором они были изменены. Сохраненные изменения обрабатываются асинхронно и пошагово, а выходные данные могут распределяться в один или несколько объектов-получателей для параллельной обработки.
Узнайте больше о проектных шаблонах канала изменений.
Поддерживаемые API и клиентские пакеты SDK
Функция канала изменений в настоящее время поддерживается в следующих пакетах SDK для Azure Cosmos DB.
Клиентские драйверы; | NoSQL | Apache Cassandra | MongoDB | Apache Gremlin | Таблица | PostgreSQL |
---|---|---|---|---|---|---|
.СЕТЬ |
|
|
|
|
|
|
Ява |
|
|
|
|
|
|
Питон |
|
|
|
|
|
|
Node/JavaScript |
|
|
|
|
|
|
Работа с каналом изменений
Вы можете работать с лентой изменений, используя следующие варианты:
- Использование источника изменений с функциями Azure
- Использование канала изменений с обработчиком канала изменений
- Использование канала изменений с моделью извлечения
Канал изменений доступен для диапазонов ключей раздела контейнера Azure Cosmos DB. Это позволяет распределять его между одним или несколькими потребителями для параллельной обработки, как показано на рисунке ниже.
Примечание.
Диапазоны ключей секций сопоставляются с физическими секциями при использовании обработчика канала изменений и при использовании FeedRanges
.
Функции канала изменений
Канал изменений включен по умолчанию для всех учетных записей Azure Cosmos DB.
Существует несколько режимов канала изменений, некоторые из которых требуют дополнительной настройки для активации.
Вы можете использовать подготовленную пропускную способность для чтения из канала изменений так же, как для любой другой операции Azure Cosmos DB, в любом регионе, связанном с вашей учетной записью Azure Cosmos DB.
Канал изменений включает операции вставки и обновления, выполняемые с элементами контейнера. Если вы используете все версии и удаляете режим (предварительная версия), вы также получите изменения из операций удаления и срока действия TTL.
Каждое изменение отображается ровно один раз в канале изменений, и клиенты должны управлять логикой контрольных точек. Если вы предпочитаете обойтись без сложности управления контрольными точками, обработчик канала изменений обеспечивает автоматический механизм установки контрольных точек и семантику "хотя бы однажды". Дополнительные сведения см. в статье об использовании канала изменений с обработчиком канала изменений.
Изменения доступны одновременно для диапазонов ключей раздела в контейнере Azure Cosmos DB. Эта возможность позволяет нескольким потребителям параллельно обрабатывать изменения из больших контейнеров.
Приложения могут обращаться сразу к нескольким каналам изменений в одном контейнере.
Начальная точка канала изменений может быть настроена, и для каждого режима доступны различные параметры.
Порядок сортировки элементов в канале изменений
Элементы в канале изменений упорядочены по времени их модификации. Этот порядок сортировки гарантируется по ключу секции, и нет гарантированного порядка между значениями ключа секции.
Примечание.
Для учетных записей с несколькими регионами существует две метки времени:
- Эпоха сервера, в которой запись была написана в локальном регионе. Это записано как
_ts
. - Время эпохи, когда было подтверждено отсутствие конфликта, или конфликт был разрешен в регионе концентратора для этой записи. Это записано как
crts
.
Элементы ленты изменений приходят в порядке, который записан по crts
.
Канал изменений в многорегиональных учетных записях Azure Cosmos DB
В учетной записи Azure Cosmos DB с несколькими регионами изменения в одном регионе доступны во всех регионах. Если переход на резервный узел в регионе записи завершается сбоем, канал изменений работает на протяжении всей операции ручного переключения и функционирует без перерывов. Для учетных записей с несколькими регионами записи нет никаких гарантий, когда изменения будут доступны. Входящие изменения в один и тот же документ могут быть удалены в режиме последней версии, если в другом регионе произошло более последнее изменение, и все изменения будут записаны во всех версиях и режиме удаления.
Режимы канала уведомлений об изменениях
Доступны два режима канала изменений: последняя версия и все версии и режим удаления. Режим, считывающий канал изменений, определяет, какие изменения операций записываются из и метаданные, доступные для каждого изменения. Можно потреблять поток изменений в разных режимах в нескольких приложениях для одного контейнера Azure Cosmos DB.
Режим последней версии
В режиме ленты изменений последней версии вы увидите последние изменения из вставок или обновлений для всех элементов в ленте, а доступ к ней будет в течение жизненного цикла контейнера. Нет никаких сведений о том, является ли данное изменение из операции вставки или обновления, а удаление не фиксируется. Изменения можно считывать в любой момент времени, начиная с момента создания контейнера. Однако, если элемент удаляется, его удаляют из канала изменений. Дополнительные сведения см. в статье о режиме ленты изменений для последней версии.
Все версии и режим удаления (предварительная версия)
Режим "Все версии и удаления" позволяет просматривать все изменения элементов, включая создание, обновление и удаление. Вы получаете запись каждого изменения элементов в порядке, в котором они произошли, включая промежуточные изменения элементов между прочтениями из канала изменений. Чтобы читать данные из канала изменений в режиме всех версий и удаления, необходимо иметь непрерывные резервные копии, настроенные для учетной записи Azure Cosmos DB, которые создают канал изменений всех версий и удаления в Azure Cosmos DB. В этом режиме можно считывать только изменения, произошедшие в течение периода непрерывного резервного копирования, настроенного для учетной записи. См. статью о всех версиях и удалении режима канала изменений, чтобы узнать больше, в том числе о регистрации в предварительной версии.
Поток изменений в API для Cassandra и MongoDB
Функции канала изменений отображаются как поток изменений в API для MongoDB и запрос с предикатом в API для Cassandra. Дополнительные сведения о реализации API для MongoDB см. в потоках изменений в API Azure Cosmos DB для MongoDB.
Встроенный Apache Cassandra предоставляет механизм сбор данных об изменениях (CDC), позволяющий помечать определенные таблицы для архивации и останавливать записи в эти таблицы после достижения заданного размера журнала CDC на диске. Функция канала изменений в Azure Cosmos DB для Apache Cassandra улучшает возможность запроса изменений с предикатом с помощью CQL. Дополнительные сведения о подробностях реализации см. в разделе Канал изменений в Azure Cosmos DB для Apache Cassandra.
Измерение потребления единицы запроса канала изменений
Канал изменений доступен в каждом контейнере независимо от того, используется ли он. Единственной стоимостью ленты изменений является выделенная пропускная способность контейнера аренды и единицы запроса (RUs) для каждого запроса. Используйте Azure Monitor для оценки объема единиц запросов (ЕЗ) канала данных об изменениях. Дополнительные сведения см. в статье о мониторинге использования пропускной способности или единиц запросов в Azure Cosmos DB.
Следующие шаги
Теперь вы можете узнать больше о канале изменений в следующих статьях:
- Варианты чтения канала изменений (Варианты чтения канала изменений)
- Использование источника изменений с функциями Azure
- Использование обработчика потока изменений