Клиентская библиотека канала изменений BLOB-объектов службы хранилища Azure для .NET версии 12.0.0-preview.33
Версия сервера: 12.02.2021, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12 2020-04-08, 2020-02-10 и 2019-12-12
Канал изменений предназначен для предоставления журналов транзакций всех изменений, происходящих в больших двоичных объектах и метаданных больших двоичных объектов в вашей учетной записи хранения. Канал изменений предоставляет упорядоченный, гарантированный, устойчивый, неизменяемый журнал этих изменений, предназначенный только для чтения. Клиентские приложения могут считывать эти журналы в любое время. Канал изменений позволяет создавать эффективные и масштабируемые решения, которые обрабатывают события изменения, происходящие в учетной записи хранения BLOB-объектов, с низкой стоимостью.
Исходный код | Пакет (NuGet) | Документация по продукту
Начало работы
Установка пакета
Установите клиентую библиотеку BLOB-объектов службы хранилища Azure для .NET с помощью NuGet:
dotnet add package Azure.Storage.Blobs.ChangeFeed --prerelease
Предварительные требования
Для использования этого пакета вам потребуется подписка Azure и учетная запись хранения .
Чтобы создать учетную запись хранения, можно использовать портал Azure, Azure PowerShell или Azure CLI. Ниже приведен пример с использованием Azure CLI:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Проверка подлинности клиента
Проверка подлинности работает так же, как в Azure.Storage.Blobs.
Основные понятия
Канал изменений хранится в виде больших двоичных объектов в специальном контейнере в учетной записи хранения со стандартной ценой больших двоичных объектов. Вы можете контролировать срок хранения этих файлов в соответствии с вашими требованиями (см. условия текущего выпуска). События изменения добавляются в канал изменений в виде записей в спецификации формата Apache Avro: компактный, быстрый двоичный формат, обеспечивающий широкие возможности структуры данных со встроенной схемой. Этот формат широко используется в экосистеме Hadoop, Stream Analytics и фабрике данных Azure.
Эти журналы можно обрабатывать постепенно или полностью. Любое количество клиентских приложений может независимо считывать информацию канала изменений, параллельно и в собственном темпе. Такие приложения аналитики, как Apache Drill или Apache Spark, могут использовать журналы непосредственно в качестве файлов Avro, что позволяет обрабатывать их с низкой стоимостью, с высокой пропускной способностью и без необходимости писать пользовательское приложение.
Потокобезопасность
Мы гарантируем, что все методы экземпляра клиента являются потокобезопасны и независимы друг от друга (руководство). Это гарантирует, что рекомендация по повторному использованию экземпляров клиента всегда будет безопасной, даже в разных потоках.
Дополнительные понятия
Параметры | клиента Доступ к ответу | Длительные операции | Обработка сбоев | Диагностики | Насмешливый | Время существования клиента
Примеры
Получение всех событий в канале изменений
// Get all the events in the change feed.
List<BlobChangeFeedEvent> changeFeedEvents = new List<BlobChangeFeedEvent>();
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync())
{
changeFeedEvents.Add(changeFeedEvent);
}
Получение событий между временем начала и окончания
// Create the start and end time. The change feed client will round start time down to
// the nearest hour, and round endTime up to the next hour if you provide DateTimeOffsets
// with minutes and seconds.
DateTimeOffset startTime = new DateTimeOffset(2017, 3, 2, 15, 0, 0, TimeSpan.Zero);
DateTimeOffset endTime = new DateTimeOffset(2020, 10, 7, 2, 0, 0, TimeSpan.Zero);
// You can also provide just a start or end time.
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync(
start: startTime,
end: endTime))
{
changeFeedEvents.Add(changeFeedEvent);
}
Resume with continuationToken
string continuationToken = null;
await foreach (Page<BlobChangeFeedEvent> page in changeFeedClient.GetChangesAsync().AsPages(pageSizeHint: 10))
{
foreach (BlobChangeFeedEvent changeFeedEvent in page.Values)
{
changeFeedEvents.Add(changeFeedEvent);
}
// Get the change feed continuation token. The continuation token is not required to get each page of events,
// it is intended to be saved and used to resume iterating at a later date.
continuationToken = page.ContinuationToken;
break;
}
// Resume iterating from the pervious position with the continuation token.
await foreach (BlobChangeFeedEvent changeFeedEvent in changeFeedClient.GetChangesAsync(
continuationToken: continuationToken))
{
changeFeedEvents.Add(changeFeedEvent);
}
Устранение неполадок
Все операции службы BLOB-объектов будут вызывать исключение RequestFailedException при сбое с полезнымиErrorCode
s. Многие из этих ошибок можно исправить.
Дальнейшие действия
Начало работы с примерами канала изменений:
- Hello World: получение изменений, внесенных в учетную запись хранения (или асинхронно).
- Проверка подлинности. Проверка подлинности с помощью строк подключения, открытого доступа, общих ключей, подписанных URL-адресов и Azure Active Directory.
Участие
Дополнительные сведения о создании, тестировании и участии в этой библиотеке см. в CONTRIBUTING.md хранилища.
На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см. на странице cla.microsoft.com.
В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к [email protected] с любыми дополнительными вопросами или комментариями.