Настройка и использование 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.

Примечание.

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

Примечание.

Вам нужна роль участника, чтобы включить Synapse Link на уровне учетной записи. И вам нужна по крайней мере роль оператора, чтобы включить Synapse Link в контейнерах или коллекциях.

Портал Azure

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

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

  3. Перейдите к учетной записи Azure Cosmos DB и откройте Azure Synapse Link в разделе "Интеграция" в области слева.

  4. Выберите Включить. Этот процесс может занять от 1 до 5 минут.

    Screenshot showing how to enable Synapse Link feature.

  5. Теперь ваша учетная запись включена для использования 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 с помощью Azure CLI или PowerShell.

Портал Azure

Создать контейнер

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

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

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

    Turn on analytical store for Azure Cosmos DB container

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

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

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

Существующий контейнер

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

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

  3. В разделе "Включить Azure Synapse Link" для контейнеров выберите контейнер.

    Screenshot showing how to turn on analytical store for an Azure Cosmos DB existing container.

  4. После включения контейнера убедитесь, что аналитическое хранилище включено, щелкнув Параметры, справа под документами в Обозреватель данных и проверка, если включен параметр "Время аналитического хранилища в реальном времени".

Примечание.

Вы также можете включить 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

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

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

Следующий код Python создает контейнер с поддержкой 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')

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

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

Запрос аналитического хранилища с помощью Azure Synapse Analytics

Выполнение запросов к аналитическому хранилищу с помощью 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 в режиме импорта, см . раздел "Использование бессерверного пула SQL для анализа данных Azure Cosmos DB с помощью Synapse Link".

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

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

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

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

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

Следующие шаги

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