Published on

February 3, 2025

Запуск аналитических запросов в Azure Cosmos DB с помощью Azure Synapse Link

Проблема:

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

Решение:

Azure Cosmos DB – это глобально распределенная многомодельная база данных, предлагаемая Microsoft. Она предоставляет различные API, включая SQL API, который позволяет вам хранить и запрашивать JSON-документы с использованием операторов SQL. Однако, когда ключ разделения не помогает вам в ваших запросах, или когда вам нужно выполнять большие аналитические запросы поверх вашего документного хранилища, приходит на помощь Azure Synapse Link для Azure Cosmos DB.

Azure Synapse Link для Azure Cosmos DB состоит из двух частей:

  1. Включение аналитического хранилища в одном или нескольких контейнерах: это реплицирует данные из вашего контейнера Cosmos DB в столбцовое хранилище, оптимизированное для аналитических запросов.
  2. Связывание вашего рабочего пространства Azure Synapse Analytics с вашей учетной записью Azure Cosmos DB: это позволяет вам запрашивать аналитическое хранилище с использованием Spark или SQL с помощью Serverless SQL Pool.

В этой статье мы расскажем вам о настройке Azure Synapse Link для Azure Cosmos DB, с фокусом на запросе данных с помощью Synapse Serverless.

Предварительные требования:

Перед началом вам понадобятся:

  • Рабочее пространство Azure Synapse Analytics
  • Учетная запись Azure Cosmos DB с SQL API

Шаг 1: Включение аналитического хранилища

1.1. В вашей учетной записи Azure Cosmos DB перейдите на страницу Data Explorer.

1.2. Создайте новую базу данных и назовите ее “Beers”.

1.3. Создайте новый контейнер с именем “CheckinContainer” и “/checkin_id” в качестве ключа разделения.

1.4. Если аналитическое хранилище не было включено для вашей учетной записи, вы можете включить его, нажав на ссылку в заголовке Data Explorer или перейдя в меню Azure Synapse Link.

1.5. Выберите контейнеры, которые вы хотите включить для аналитического хранилища.

Шаг 2: Настройка Azure Synapse Link

2.1. В вашем рабочем пространстве Azure Synapse Analytics перейдите на вкладку Data и нажмите на значок “+”.

2.2. Выберите “Подключение к внешним данным” из меню.

2.3. Выберите “Azure Cosmos DB (SQL API)” и настройте связанную службу.

2.4. Если вы хотите использовать управляемую идентичность Azure Synapse для подключения к учетной записи Cosmos DB, вам нужно добавить ее в предопределенную роль. Это можно сделать через Azure CLI или Azure PowerShell.

Шаг 3: Запрос аналитического хранилища

3.1. В вашем рабочем пространстве Azure Synapse Analytics выполните следующий SQL-запрос, чтобы получить первые 100 строк из контейнера Cosmos DB:

SELECT TOP 100 *
FROM OPENROWSET(PROVIDER = 'CosmosDB',
                CONNECTION = 'Account=mssqltips-cosmoslink;Database=Beers',
                OBJECT = 'Checkins',
                SERVER_CREDENTIAL = 'mssqltips-cosmoslink'
) AS [Checkins]

Убедитесь, что в контейнере есть данные, иначе будет возвращена ошибка.

Если все настроено правильно, запрос вернет данные из контейнера Cosmos DB.

Вывод:

Azure Synapse Link для Azure Cosmos DB предоставляет решение для выполнения больших аналитических запросов в вашем контейнере Cosmos DB. Путем включения аналитического хранилища и связывания вашего рабочего пространства Azure Synapse Analytics вы можете эффективно запрашивать данные с помощью SQL или Spark. Эта интеграция позволяет использовать возможности Azure Synapse Analytics для расширенного анализа данных в вашей базе данных Cosmos DB.

Ссылки:

– Введение в базу данных Azure Cosmos DB и SQL API

– Лучшие практики по ключу разделения в Cosmos DB

– Исследование баз данных Azure Cosmos с помощью Azure Synapse Analytics

– Начало работы с Azure Synapse Link для Cosmos DB

– Azure Synapse Link для SQL

– Документация Azure Cosmos DB

Статья последний раз обновлена: 2023-01-02

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.