Настройка и использование Azure Synapse Link для Azure Cosmos DB

ПРИМЕНИМО К: Nosql Mongodb Гремлин

Azure Synapse Link для Azure Cosmos DB — это облачная гибридная транзакционно-аналитическая возможность обработки (HTAP), которая позволяет вам выполнять аналитику операционных данных в Azure Cosmos DB почти в реальном времени. Synapse Link обеспечивает тесную эффективную интеграцию между Azure Cosmos DB и Azure Synapse Analytics.

Возможность Azure Synapse Link доступна для API SQL Azure Cosmos DB, а также для API Azure Cosmos DB для учетных записей Mongo DB. Он находится в предварительной версии для API Gremlin с активацией с помощью команд CLI. Выполните следующие действия, чтобы создать аналитические запросы с помощью Azure Synapse Link для Azure Cosmos DB:

Вы также можете проверить обучающий модуль о настройке Azure Synapse Link для Azure Cosmos DB.

Первым шагом для использования Synapse Link является включение учетной записи базы данных Azure Cosmos DB.

Примечание

Если вы хотите использовать в Azure Synapse Link ключи, управляемые клиентом, то необходимо настроить управляемое удостоверение учетной записи в политике доступа Azure Key Vault, прежде чем включать для нее Azure Synapse Link. Дополнительные сведения см. в статье Настройка ключей, управляемых клиентом, с помощью управляемых удостоверений учетных записей Azure Cosmos DB.

Примечание

Если вы хотите использовать полную схему точности для учетных записей API для NoSQL, вы не можете использовать портал Azure для включения Synapse Link. Этот параметр невозможно изменить после включения Synapse Link в учетной записи. Чтобы настроить его, необходимо использовать Azure CLI или PowerShell. Дополнительные сведения см. в документации по представлению схемы аналитического хранилища.

Портал Azure

  1. Войдите на портал Azure.

  2. Создайте учетную запись Azure или выберите существующую учетную запись Azure Cosmos DB.

  3. Перейдите к учетной записи Azure Cosmos DB и откройте панель Функции.

  4. Выберите Synapse Link из списка функций.

    Поиск функции Synapse Link

  5. Далее вам будет предложено включить Synapse Link в вашей учетной записи. Нажмите кнопку Включить. Этот процесс может занять от 1 до 5 минут.

    Включение функции Synapse Link

  6. Теперь ваша учетная запись включена для использования Synapse Link. Далее ознакомьтесь со сведениями о создании контейнеров с поддержкой аналитического хранилища для автоматического запуска репликации операционных данных из хранилища транзакций в аналитическое хранилище.

Примечание

При включении Synapse Link аналитическое хранилище не включается автоматически. После включения Synapse Link в учетной записи Cosmos DB включите включайте аналитическое хранилище, чтобы приступить к использованию Synapse Link.

Примечание

Вы также можете включить Synapse Link для учетной записи с помощью Power BI и области Synapse Link в разделе "Интеграция" в меню навигации слева.

Программы командной строки

Включите Synapse Link в учетной записи API Azure Cosmos DB для NoSQL или MongoDB с помощью Azure CLI или PowerShell.

Azure CLI

Используйте --enable-analytical-storage true как для операции создания, так и для операции обновления. Вам также потребуется выбрать тип схемы представления. Для учетных записей API для NoSQL можно использовать --analytical-storage-schema-type со значениями FullFidelity или WellDefined. Для учетных записей API для MongoDB всегда используйте --analytical-storage-schema-type FullFidelity.

Synapse Link для API Gremlin теперь доступна в предварительной версии. Вы можете включить Synapse Link в новых или существующих графах с помощью Azure CLI. Используйте приведенную ниже команду CLI, чтобы включить Synapse Link для учетной записи API Gremlin:

az cosmosdb create --capabilities EnableGremlin --name MyCosmosDBGremlinDatabaseAccount --resource-group MyResourceGroup --enable-analytical-storage true

Для существующих учетных записей API Gremlin замените create на update.

PowerShell

Используйте EnableAnalyticalStorage true как для операции создания, так и для операции обновления. Вам также потребуется выбрать тип схемы представления. Для учетных записей API для NoSQL можно использовать --analytical-storage-schema-type со значениями FullFidelity или WellDefined. Для учетных записей API для MongoDB всегда используйте -AnalyticalStorageSchemaType FullFidelity.

Шаблон Azure Resource Manager

Этот шаблон Azure Resource Manager создает учетную запись Azure Cosmos DB с поддержкой Synapse Link для API SQL. Этот шаблон позволяет создать учетную запись API (SQL) Core в одном регионе с настроенным контейнером, для которого включена поддержка аналитического срока жизни и возможность выбрать для пропускной способности настройку вручную или с помощью автомасштабирования. Чтобы развернуть этот шаблон, щелкните Развертывание в Azure на странице файла сведений.

Включение Azure Synapse Link для контейнеров

Второй шаг — включить Synapse Link для контейнеров или коллекций. Для этого необходимо задать analytical TTL для свойства -1 бесконечное хранение или положительное целое число, то есть количество секунд, которое требуется сохранить в аналитическом хранилище. Изменить этот параметр позднее будет невозможно. Дополнительные сведения см. в статье о поддерживаемых значениях срока жизни аналитического хранилища.

Обратите внимание на следующие сведения при включении Azure Synapse Link в существующих контейнерах API SQL:

  • Изоляция производительности процесса автоматической синхронизации аналитического хранилища применяется и для его начальной синхронизации, и эта процедура не влияет на рабочие нагрузки OLTP.
  • Время начальной синхронизации контейнера с аналитическим хранилищем зависит от объема данных и сложности документов. Этот процесс может занять от нескольких секунд до нескольких дней. Для отслеживания хода миграции используйте портал Azure.
  • На общее время начальной синхронизации также влияет пропускная способность контейнера или учетной записи базы данных. Хотя ЕЗ/с для этой миграции не используются, на производительность процесса влияет общий объем доступных ЕЗ/с. Чтобы ускорить процесс, вы можете временно увеличить количество доступных ЕЗ в своей среде.
  • Пока для существующего контейнера включена служба Synapse Link, отправлять запросы к его аналитическому хранилищу нельзя. Это не затрагивает рабочую нагрузку OLTP, и чтение данных можно продолжать в обычном режиме. Данные, полученные после запуска начальной синхронизации, будут объединены в аналитическое хранилище в рамках обычного процесса автоматической синхронизации аналитического хранилища.

Примечание

В настоящее время невозможно включить Synapse Link в существующих контейнерах API MongoDB. Synapse Link можно включить в только что созданных контейнерах Mongo DB.

Портал Azure

  1. Войдите на портал Azure или в обозреватель Azure Cosmos DB.

  2. Перейдите к своей учетной записи Azure Cosmos DB и откройте вкладку Data Explorer.

  3. Выберите Создать контейнер и введите имя базы данных, контейнера, ключ секции и сведения о пропускной способности. Активируйте параметр Analytical store (Аналитическое хранилище). После включения аналитического хранилища создается контейнер со свойством analytical TTL, для которого задано значение по умолчанию -1 (неограниченный срок хранения). В этом аналитическом хранилище содержатся все исторические версии записей, и его можно будет изменить позже.

    Включение аналитического хранилища для контейнера Azure Cosmos

  4. Если вы ранее не включили Synapse Link в этой учетной записи, вам будет предложено сделать это, так как создание контейнера с включенным аналитическим хранилищем является необходимым условием. При появлении запроса выберите Включить Synapse Link. Этот процесс может занять от 1 до 5 минут.

  5. Нажмите кнопку OK, чтобы создать контейнер Azure Cosmos DB с включенным аналитическим хранилищем.

  6. После создания контейнера убедитесь, что включено аналитическое хранилище. Для этого щелкните Параметры прямо под разделом "Документы" в обозревателе данных и проверьте, включен ли параметр Срок жизни аналитического хранилища.

Примечание

Вы также можете включить Synapse Link для учетной записи с помощью Power BI и области Synapse Link в разделе "Интеграция" в меню навигации слева.

Программы командной строки

Azure CLI

Следующие параметры позволяют включить Synapse Link в контейнере с помощью Azure CLI, задав --analytical-storage-ttl свойство.

Synapse Link для API Gremlin теперь доступна в предварительной версии. Вы можете включить Synapse Link в новых или существующих графах с помощью Azure CLI. Используйте приведенную ниже команду CLI, чтобы включить Synapse Link для графов API Gremlin:

az cosmosdb gremlin graph create --g MyResourceGroup --a MyCosmosDBGremlinDatabaseAccount --d MyGremlinDB --n MyGraph --analytical-storage-ttl –1

Для существующих графов замените create на update.

PowerShell

Следующие параметры позволяют включить Synapse Link в контейнере с помощью Azure CLI, задав -AnalyticalStorageTtl свойство.

Пакеты SDK для Azure Cosmos DB — только API SQL

Пакет SDK для .NET

Следующий код .NET создает контейнер с поддержкой Synapse Link, задав AnalyticalStoreTimeToLiveInSeconds свойство. Чтобы обновить существующий контейнер, используйте Container.ReplaceContainerAsync метод.

// Create a container with a partition key, and analytical TTL configured to -1 (infinite retention)
ContainerProperties properties = new ContainerProperties()
{
    Id = "myContainerId",
    PartitionKeyPath = "/id",
    AnalyticalStoreTimeToLiveInSeconds = -1,
};
CosmosClient cosmosClient = new CosmosClient("myConnectionString");
await cosmosClient.GetDatabase("myDatabase").CreateContainerAsync(properties);

Пакет SDK для Java версии 4

Следующий код Java создает контейнер с поддержкой Synapse Link, задав setAnalyticalStoreTimeToLiveInSeconds свойство. Чтобы обновить существующий контейнер, используйте container.replace класс.

// Create a container with a partition key and  analytical TTL configured to  -1 (infinite retention) 
CosmosContainerProperties containerProperties = new CosmosContainerProperties("myContainer", "/myPartitionKey");

containerProperties.setAnalyticalStoreTimeToLiveInSeconds(-1);

container = database.createContainerIfNotExists(containerProperties, 400).block().getContainer();

Пакет SDK для Python версии 4

Следующий код Java создает контейнер с поддержкой Synapse Link, задав analytical_storage_ttl свойство. Чтобы обновить существующий контейнер, используйте replace_container метод.

# Client
client = cosmos_client.CosmosClient(HOST,  KEY )

# Database client
try:
    db = client.create_database(DATABASE)

except exceptions.CosmosResourceExistsError:
    db = client.get_database_client(DATABASE)

# Creating the container with analytical store enabled
try:
    container = db.create_container(
        id=CONTAINER,
        partition_key=PartitionKey(path='/id', kind='Hash'),analytical_storage_ttl=-1
    )
    properties = container.read()
    print('Container with id \'{0}\' created'.format(container.id))
    print('Partition Key - \'{0}\''.format(properties['partitionKey']))

except exceptions.CosmosResourceExistsError:
    print('A container with already exists')

(Необязательно) Отключение аналитического хранилища в контейнере API SQL

Аналитическое хранилище можно отключить в контейнерах API SQL с помощью Azure CLI или PowerShell, задав значение analytical TTL0.

Примечание

Обратите внимание, что в настоящее время это действие нельзя отменить. Если аналитическое хранилище отключено в контейнере, его нельзя включить повторно.

Примечание

Обратите внимание, что отключение аналитического хранилища недоступно для коллекций API MongoDB.

Подключение к рабочей области Synapse

Выполните инструкции из статьи о подключении к Azure Synapse Link, чтобы получить доступ к базе данных Azure Cosmos DB из Azure Synapse Analytics Studio с помощью Azure Synapse Link.

Аналитическое хранилище запросов с помощью аналитики Azure Synapse

Выполнение запросов к аналитическому хранилищу с помощью Apache Spark для Azure Synapse Analytics

Инструкции по выполнению запросов с помощью Synapse Spark 3 см. в статье Запросы в аналитическое хранилище Azure Cosmos DB с помощью Spark 3. В этой статье приводятся некоторые примеры того, как можно взаимодействовать с аналитическим хранилищем с помощью жестов Synapse. Чтобы просмотреть эти жесты, щелкните правой кнопкой мыши контейнер. С помощью жестов можно быстро создать код и скорректировать его в соответствии с потребностями. Они также идеально подходят для обнаружения данных одним щелчком мыши.

Для интеграции Spark 2 используйте инструкцию в статье Запросы в аналитическое хранилище Azure Cosmos DB с помощью Spark 2.

Выполнение запросов к аналитическому хранилищу с помощью бессерверного пула SQL в Azure Synapse Analytics

Бессерверный пул SQL позволяет выполнять запросы к данным в контейнерах Azure Cosmos DB, активируемых с помощью Azure Synapse Link, и анализировать их. Данные можно анализировать почти в реальном времени, не затрагивая при этом производительность транзакционных рабочих нагрузок. Он предлагает знакомый синтаксис T-SQL для запроса данных из аналитического хранилища, а также интегрированное подключение к широкому спектру средств бизнес-аналитики и средств для специализированных запросов через интерфейс T-SQL. Дополнительные сведения см. в статье Выполнение запросов к аналитическому хранилищу с помощью бессерверного пула SQL.

Использование бессерверного пула SQL для анализа и визуализации данных в Power BI

Благодаря интегрированным возможностям бизнес-аналитики на портале Azure Cosmos DB можно быстро создавать панели мониторинга бизнес-аналитики с помощью Synapse Link. Дополнительные сведения см. в статье о создании панелей мониторинга бизнес-аналитики с помощью Synapse Link. Этот интегрированный интерфейс создаст простые представления T-SQL в бессерверных пулах SQL Synapse для контейнеров Azure Cosmos DB. Вы можете создавать панели мониторинга бизнес-аналитики для этих представлений, которые будут запрашивать контейнеры Azure Cosmos DB в режиме реального времени, используя прямой запрос, отражающий последние изменения в данных. На транзакционные рабочие нагрузки не влияют производительность или затраты, а управлять конвейерами ETL просто.

Чтобы использовать расширенные представления T-SQL с объединениями в контейнерах или создавать панели мониторинга бизнес-аналитики в режиме импорта (/power-bi/connect-data/service-dataset-modes-understand#import-mode), см. статью об использовании бессерверного пула SQL для анализа данных Azure Cosmos DB с помощью Synapse Link.

Повышение производительности с помощью рекомендаций

Настраиваемое секционирование

Настраиваемые разделы позволяют хранить данные аналитических разделов по полям, которые часто используются в качестве фильтров в аналитических запросах, что позволяет повысить производительность запросов. Дополнительные сведения см. в статьях о настраиваемом секционировании и настройке настраиваемого секционирования.

Используйте эти обязательные рекомендации для бессерверных запросов SQL.

Примеры для начала работы с Azure Synapse Link можно найти на сайте GitHub. Они представляют собой комплексные демонстрационные решения, посвященные сценариям Интернета вещей и розничной торговли. Примеры, соответствующие Azure Cosmso DB для MongoDB, также можно найти в том же репозитории в папке MongoDB .

Дальнейшие действия

Дополнительные сведения см. в следующих документах: