Визуализация данных Azure Cosmos DB с помощью Power BI
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
В этой статье описываются шаги, необходимые для подключения данных Azure Cosmos DB к Power BI Desktop.
Подключиться к Azure Cosmos DB из Power BI Desktop можно с помощью одного из следующих вариантов.
Используйте зеркальное отображение в Microsoft Fabric для репликации данных Azure Cosmos DB в Fabric OneLake. Любые изменения в базе данных автоматически синхронизируются с Fabric OneLake практически в режиме реального времени, не влияя на производительность исходной базы данных или использование единиц ресурсов (ЕЗ).
Затем отчеты Power BI могут получать доступ к данным непосредственно из OneLake с помощью режима DirectLake. Благодаря расширенным функциям Copilot в Power BI в Fabric вы можете использовать генерированный ИИ для получения ключевых бизнес-аналитических сведений.
Используйте Azure Synapse Link, чтобы создавать отчеты Power BI без влияния на производительность и стоимость транзакционных рабочих нагрузок и без использования конвейеров извлечения, преобразования и загрузки.
Можно использовать режим DirectQuery или режим импорта. С помощью DirectQuery можно создавать панели мониторинга или отчеты, используя динамические данные из учетных записей Azure Cosmos DB, не импортируя и не копируя эти данные в Power BI.
Подключите Power BI Desktop к учетной записи Azure Cosmos DB с помощью соединителя Azure Cosmos DB для Power BI. Этот вариант доступен только в режиме импорта и будет использовать ЕЗ, выделенные для транзакционных рабочих нагрузок.
Примечание.
Отчеты, созданные в Power BI Desktop, можно опубликовать на сайте PowerBI.com. Напрямую извлекать данные Azure Cosmos DB с PowerBI.com невозможно.
Необходимые компоненты
Перед выполнением инструкций в этом руководстве по Power BI убедитесь в наличии доступа к следующим ресурсам:
Создайте учетную запись базы данных Azure Cosmos DB и добавьте данные в контейнеры Azure Cosmos DB.
Для совместного использования отчетов в службе PowerBI.com необходимо настроить учетную запись в PowerBI.com. Дополнительные сведения о Power BI и Power BI Pro см. по ссылке https://powerbi.microsoft.com/pricing.
Начнем?
Создание отчетов бизнес-аналитики с помощью зеркального отображения в Microsoft Fabric
Вы можете включить зеркальное отображение существующих контейнеров Azure Cosmos DB и создать отчеты и панели мониторинга бизнес-аналитики на этих данных практически в реальном времени. Инструкции по началу работы с Fabric и зеркальным отображением см . в руководстве по зеркальным отображениям в Azure Cosmos DB.
Создание отчетов бизнес-аналитики с помощью ссылки Azure Synapse Link
Вы можете включить Azure Synapse Link в существующих контейнерах Azure Cosmos DB и создать отчеты бизнес-аналитики на основе этих данных, используя портал Azure Cosmos DB. Power BI будет подключаться к Azure Cosmos DB с помощью режима Direct Query, что позволяет запрашивать динамические данные Azure Cosmos DB, не влияя на рабочие нагрузки транзакций.
Чтобы создать отчет или панель мониторинга Power BI, выполните приведенные ниже действия.
Войдите на портал Azure и перейдите в учетную запись Azure Cosmos DB.
В разделе Интеграции откройте панель Power BI и выберите Начало работы.
Примечание.
В настоящее время этот параметр доступен только для учетных записей API для NoSQL. Представления T-SQL можно создавать непосредственно в бессерверных пулах SQL Synapse и создавать панели мониторинга бизнес-аналитики для Azure Cosmos DB для MongoDB. Дополнительные сведения см. в статье Использование Power BI и бессерверного пула SQL Synapse для анализа данных Azure Cosmos DB с помощью Synapse.
Включите функцию Synapse Link для учетной записи на вкладке Включение Azure Synapse Link в разделе Включение Azure Synapse Link для этой учетной записи. Если Synapse Link уже включена для вашей учетной записи, вы не увидите эту вкладку. Этот шаг является обязательным условием для запуска включения Synapse Link в контейнерах.
Примечание.
Включение Azure Synapse Link повлияет на выставление счетов. Дополнительные сведения см. в разделе Цены на Azure Synapse Link.
В разделе Включение Azure Synapse Link для контейнеров выберите контейнеры, для которых необходимо включить Synapse Link.
Если функция Synapse Link уже была включена для некоторых контейнеров, то флажок рядом с именем контейнера будет выбран. При желании можно снять необходимые флажки в зависимости от данных, которые вы хотите визуализировать в Power BI.
Если функция Synapse Link не включена, ее можно включить в существующих контейнерах.
Если включение Synapse Link выполняется для любого из контейнеров, данные из этих контейнеров не будут включены. Вы должны вернуться на эту вкладку позже и импортировать данные, когда контейнеры будут доступны.
В зависимости от объема данных в контейнерах на включение функции Synapse Link может потребоваться некоторое время. Дополнительные сведения см. в статье Включение Synapse Link в существующих контейнерах.
Ход включения Synapse Link можно просмотреть на портале, как показано на следующем экране. Контейнеры включены с Synapse Link, когда ход выполнения достигает 100 %.
На вкладке Выбор рабочей области выберите рабочую область Azure Synapse Analytics и нажмите кнопку Далее. При этом в Synapse Analytics будут автоматически созданы представления T-SQL для контейнеров, выбранных ранее. Дополнительные сведения о представлениях T-SQL, необходимых для подключения Azure Cosmos DB к Power BI, см. в статье "Подготовка представлений ".
Примечание.
Ваши свойства контейнера Azure Cosmos DB будут представлены в виде столбцов в представлениях T-SQL, включая глубокие вложенные данные JSON. Это краткое руководство по созданию панелей мониторинга бизнес-аналитики. Эти представления будут доступны в рабочей области или базе данных Synapse. Вы также можете использовать эти же представления в рабочей области Synapse для изучения данных, обработки и анализа данных, инжиниринга данных и так далее. Обратите внимание, что в расширенных сценариях могут требоваться более сложные представления или тонкая настройка этих представлений для повышения производительности. Дополнительные сведения. См. рекомендации по Synapse Link при использовании бессерверных пулов Synapse SQL.
Можно выбрать существующую рабочую область или создать новую. Чтобы выбрать существующую рабочую область, укажите сведения о Подписке, Рабочей области и Базе данных. портал Azure будет использовать учетные данные Microsoft Entra для автоматического подключения к рабочей области Synapse и создания представлений T-SQL. Убедитесь, что у вас есть разрешения администратора Synapse для этой рабочей области.
Затем выберите Скачать файл .pbids, чтобы скачать файл источника данных Power BI. Откройте загруженный файл. Он содержит необходимые сведения о подключении и открывает Power BI Desktop.
Теперь вы можете подключаться к данным Azure Cosmos DB из Power BI Desktop. Отображается список представлений T-SQL, соответствующих данным в каждом контейнере.
Например, на следующем экране показаны данные о парке автомобилей. Эти данные можно загрузить для дальнейшего анализа или преобразовать перед загрузкой.
Теперь вы можете приступить к созданию отчета с использованием аналитических данных Azure Cosmos DB. Все изменения, внесенные в данные, будут отражены в отчете, как только данные будут реплицированы в аналитическое хранилище (обычно это занимает несколько минут).
Создание отчетов бизнес-аналитики с помощью соединителя Power BI
Примечание.
Подключение к Azure Cosmos DB с помощью соединителя Power BI в настоящее время поддерживается только для учетных записей Gremlin для Azure Cosmos DB для NoSQL и API для учетных записей Gremlin.
Запустите Power BI Desktop.
Непосредственно на экране приветствия можно получить данные, просмотреть последние источники или открыть другие отчеты. Щелкните значок X в правом верхнем углу, чтобы закрыть этот экран. Откроется представление Отчет средства Power BI Desktop.
Откройте ленту Главная и щелкните Получить данные. Откроется окно Получение данных .
Выберите Azure, затем — Azure Cosmos DB (бета-версия) и щелкните Подключить.
На странице Предварительная версия соединителя нажмите кнопку Продолжить. Откроется окно Azure Cosmos DB.
Укажите URL-адрес конечной точки учетной записи Azure Cosmos DB, из которой необходимо получить данные, как показано ниже, и нажмите кнопку ОК. Чтобы использовать собственную учетную запись, можно найти URL-адрес в поле универсального кода ресурса (URI) в колонке Ключи на портале Azure. При необходимости можно задать имя базы данных, имя коллекции или использовать навигатор для выбора базы данных и коллекции, чтобы определить источник данных.
Если вы подключаетесь к этой конечной точке впервые, вам будет предложено ввести ключ учетной записи. Для собственной учетной записи найдите ключ в поле Первичный ключ в колонке Ключи только для чтения на портале Azure. Введите соответствующий ключ и нажмите кнопку Подключить.
При создании отчетов мы рекомендуем использовать ключ только для чтения. Это защитит первичный ключ от ненужных потенциальных угроз безопасности. Ключ только для чтения доступен в колонке Ключи на портале Azure.
После успешного подключения учетной записи откроется панель Навигатор. На панели Навигатор отображается список баз данных в учетной записи.
Выберите и разверните узел базы данных, из которого поступают данные для отчета. Теперь выберите коллекцию с данными, которые вы намерены извлечь.
В области «Предварительный просмотр» отображается список элементов Запись . Документ представлен как тип Запись в Power BI. Точно так же вложенный блок JSON в документе является Записью. Чтобы просмотреть документы свойств в виде столбцов, нажмите серую кнопку с двумя стрелками в противоположных направлениях, которые символизируют расширение записи. Она расположена справа от имени контейнера в той же области предварительного просмотра.
Для создания отчетов, в которых наглядно представлены данные, используется представление отчета в Power BI Desktop. Отчеты можно создавать путем перетаскивания полей на поле Отчет .
Существует два способа обновления данных — ситуативно и по расписанию. Чтобы обновить данные, просто щелкните Обновить. Дополнительные сведения о параметре запланированного обновления см. в документации по Power BI.
Известные проблемы и ограничения
Для секционированных контейнеров Cosmos DB sql-запрос с статистической функцией передается в Cosmos DB, если запрос также содержит фильтр (предложение WHERE) для ключа секции. Если агрегатный запрос не содержит фильтр для ключа секции, агрегирование выполняется соединителем.
Соединитель не передает агрегатную функцию, если она вызывается после применения TOP или LIMIT. Cosmos DB обрабатывает операцию TOP в конце при обработке запроса. Например, в следующем запросе TOP применяется в вложенный запрос, а агрегатная функция применяется поверх этого результирующий набор:
SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) EMP
Если функция DISTINCT предоставляется в агрегатной функции, соединитель не передает агрегатную функцию в Cosmos DB, если предложение DISTINCT предоставляется в агрегатной функции. При наличии в агрегатной функции ФУНКЦИЯ DISTINCT не поддерживается API SQL Cosmos DB.
Для статистической функции СУММ Cosmos DB возвращает неопределенный в результирующем наборе, если какой-либо из аргументов в СУММе является строкой, логическим значением или null. Однако при наличии значений NULL соединитель передает запрос в Cosmos DB таким образом, чтобы он попросил источник данных заменить значение NULL на ноль в рамках вычисления SUM.
Для статистической функции AVG Cosmos DB возвращает неопределенный набор результатов, если любой из аргументов в СУММе имеет строковое значение, логическое значение или null. Соединитель предоставляет свойство подключения, чтобы отключить передачу агрегатной функции AVG в Cosmos DB в случае, если это поведение Cosmos DB по умолчанию необходимо переопределить. Если парольная передача AVG отключена, она не передается в Cosmos DB, а соединитель обрабатывает операцию агрегирования AVG. Дополнительные сведения см. в разделе "Включить сквозную передачу функции AVERAGE" в дополнительных параметрах.
Контейнеры Azure Cosmos DB с большим ключом секции в настоящее время не поддерживаются в соединителе.
Парольная передача агрегирования отключена для следующего синтаксиса из-за ограничений сервера:
Если запрос не фильтруется по ключу секции или когда фильтр ключа секции использует оператор OR с другим предикатом на верхнем уровне в предложении WHERE.
Если запрос содержит один или несколько ключей секций, появится в предложении IS NOT NULL в предложении WHERE.
Соединитель версии 2 не поддерживает сложные типы данных, такие как массивы, объекты и иерархические структуры. Для этих сценариев рекомендуется использовать функцию [Зеркальное отображение структуры для Azure Cosmos DB](/articles/cosmos-db/analytics-and-business-intelligence-overview.md .
Соединитель версии 2 использует выборку первых 1000 документов для определения схемы. Не рекомендуется использовать сценарии эволюции схемы, когда обновляются только части документов. Например, недавно добавленное свойство в один документ в контейнере с тысячами документов может не быть включено в выводную схему. Для этих сценариев рекомендуется использовать функцию зеркального отображения Структуры для Azure Cosmos DB .
В настоящее время соединитель версии 2 не поддерживает нестроковые значения в свойствах объекта.
Парольная передача фильтра отключена для следующего синтаксиса из-за ограничений сервера:
Когда запрос, содержащий один или несколько агрегатных столбцов, ссылается в предложении WHERE.
Следующие шаги
- Дополнительные сведения о Power BI см. в статье Приступая к работе с Power BI.
- Дополнительные сведения об Azure Cosmos DB см. на целевой странице документации по Azure Cosmos DB.