Azure Cosmos DB версии 2 (бета-версия)

Итоги

Элемент Description
Состояние выпуска Бета-версия
Товары Power BI (семантические модели)
Power BI (потоки данных)
Fabric (Dataflow 2-го поколения)
Поддерживаемые типы проверки подлинности Ключ веб-канала

Необходимые компоненты

Поддерживаемые возможности

  • Import
  • DirectQuery (семантические модели Power BI)
  • Дополнительные параметры
    • Число повторных попыток
    • Включение passdown функции AVERAGE
    • Включение passdown "SORT" для нескольких столбцов

Подключение к Azure Cosmos DB

Чтобы подключиться к данным Azure Cosmos DB, выполните приведенные действия.

  1. Запустите Power BI Desktop.

  2. На вкладке "Главная" выберите " Получить данные".

  3. В поле поиска введите Cosmos DB версии 2.

  4. Выберите Azure Cosmos DB версии 2 (бета-версия) и выберите Подключение.

    Screenshot showing Select Azure Cosmos DB v2 selection.

  5. На странице подключения Azure Cosmos DB версии 2 введите универсальный код ресурса (URI) учетной записи Azure Cosmos DB, которую вы хотите использовать. Для режима Подключение тивности данных выберите режим, подходящий для вашего варианта использования, следуя этим общим рекомендациям:

    • Для небольших наборов данных выберите "Импорт". При использовании режима импорта Power BI работает с Cosmos DB для импорта содержимого всего набора данных для использования в визуализациях.

    • Режим DirectQuery позволяет отправлять запросы в контейнер Cosmos DB для выполнения и повышает производительность соединителя. Для секционированных контейнеров Cosmos DB sql-запрос с статистической функцией передается в Cosmos DB, если запрос также содержит фильтр (предложение WHERE) для ключа секции. Например, если ключ секции определен как Product, то можно передать SQL-запрос, который можно передать и выполнить на сервере Cosmos DB:

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    Примечание.

    Используйте Azure Synapse Link для Azure Cosmos DB , если вы хотите выполнить межсекционные агрегатные функции для контейнера Cosmos DB.

    Подробнее:

    Screenshot of the connection dialog box showing the Cosmos Endpoint entry and Data connectivity mode set to DirectQuery.

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

  7. В области параметров отображения выберите поле проверка для набора данных, который требуется использовать.

    Screenshot of the Navigator emphasizing the data you've selected.

  8. Наиболее оптимальным способом указать фильтр ключа секции (чтобы агрегатные функции могли быть отправлены в Cosmos DB) — использовать динамические параметры M. Чтобы использовать динамические параметры M, необходимо создать набор данных с уникальными значениями ключа секции, создать параметр, добавить его в качестве фильтра в основном наборе данных, привязать его к уникальному набору данных ключа секции и использовать его в качестве среза для основного набора данных. Чтобы включить динамические параметры M для фильтрации ключей секций, выполните следующие действия.

    a. Создание набора данных с уникальными значениями ключа секции:

    В навигаторе выберите "Преобразовать данные ", а не "Загрузить ", чтобы открыть редактор Power Query. Щелкните правой кнопкой мыши набор данных запросов и выберите "Дублировать ", чтобы создать новый набор данных.

    Screenshot showing how to select duplicate from your existing query in the Power Query editor.

    Переименуйте новую модель ключа секции, а затем щелкните правой кнопкой мыши столбец ключа раздела Cosmos DB. В этом примере Product — это столбец ключа раздела Cosmos DB. Выберите "Удалить другие столбцы" и нажмите кнопку "Удалить дубликаты".

    Screenshot showing the unique Partition Keys in Power Query editor.

    b. Создание параметра для динамической фильтрации:

    В редакторе Power Query выберите "Управление параметрами>", "Создать параметр". Переименуйте новый параметр, чтобы отразить параметр фильтра и введите допустимое значение в качестве текущего значения.

    Screenshot showing how to create a parameter in the Power Query editor.

    c. Применение параметризованного фильтра к основному набору данных:

    Щелкните раскрывающийся список столбца "Ключ секции>", а затем выберите "Фильтры текста" равными. Измените тип фильтра с "Текст" на параметр. Затем выберите параметр, созданный на шаге b. Нажмите кнопку "Закрыть" и "Применить" в левом верхнем углу редактора Power Query.

    Screenshot showing the steps to apply the parameterized filter.

    d. Создание среза значений ключа секции с привязкой параметров:

    В Power BI выберите вкладку "Модель ". Затем выберите поле ключа секции. В области "Свойства" выберите "Дополнительно>привязать к параметру". Выберите параметр, созданный на шаге b.

    Screenshot showing the steps to bind the parameter.

    Выберите вкладку "Отчет " и добавьте срез с уникальным ключом секции.

    Screenshot of the slicer.

    д) Добавление визуализаций и применение фильтра ключа секции из среза:

    Так как выбранное значение ключа секции на срезе привязано к параметру (как показано на шаге d), а параметризованный фильтр применяется к основному набору данных (как показано на шаге c), выбранное значение ключа секции применяется в качестве фильтра для основного набора данных, а запрос с фильтром ключа секции передается в Cosmos DB во всех визуализациях.

    Screenshot of the visualization after the partition key filter is applied.

Дополнительные параметры

Power Query предоставляет набор дополнительных параметров, которые можно добавить в запрос при необходимости.

В следующей таблице перечислены все дополнительные параметры, которые можно задать в Power Query.

Дополнительный параметр Description
Число повторных попыток Сколько раз повторить, если есть коды 408 - Request Timeoutвозврата HTTP , 412 - Precondition Failedили 429 - Too Many Requests. Число повторных попыток по умолчанию равно 5.
Включение passdown функции AVERAGE Указывает, разрешает ли соединитель передавать агрегатную функцию AVG в Cosmos DB. Значение по умолчанию равно 1, а соединитель пытается передать агрегатную функцию AVG в Cosmos DB по умолчанию. Если аргумент содержит строковые, логические или null-значения для статистической функции AVG, то неопределенный результирующий набор возвращается сервером Cosmos DB. Если задано значение 0, агрегатная функция AVG не передается серверу Cosmos DB, а соединитель обрабатывает операцию агрегирования AVG.
Включение passdown SORT для нескольких столбцов Указывает, позволяет ли соединитель передавать несколько столбцов в Cosmos DB при указании в предложении ORDER BY запроса SQL. Значение по умолчанию равно 0, а если в предложении ORDER BY указано несколько столбцов, соединитель по умолчанию не передает столбцы и обрабатывает сам порядок. Если задано значение 1, соединитель пытается передать несколько столбцов в Cosmos DB при указании в предложении ORDER BY запроса SQL. Чтобы разрешить передаче нескольких столбцов в Cosmos DB, обязательно установите составные индексы для столбцов в соответствующих коллекциях. Для секционированных коллекций SQL-запрос с ORDER BY передается в Cosmos DB только в том случае, если запрос содержит фильтр секционированного ключа. Кроме того, если в предложении ORDER BY указано более восьми столбцов, соединитель не передает предложение ORDER BY и вместо этого обрабатывает сам порядок выполнения.

Известные проблемы и ограничения

  • Для секционированных контейнеров Cosmos DB sql-запрос с статистической функцией передается в Cosmos DB, если запрос также содержит фильтр (предложение WHERE) для ключа секции. Если агрегатный запрос не содержит фильтр для ключа секции, агрегирование выполняется соединителем.

  • Соединитель не передает агрегатную функцию, если она вызывается после применения TOP или LIMIT. Cosmos DB обрабатывает операцию TOP в конце при обработке запроса. Например, в следующем запросе TOP применяется в вложенный запрос, а агрегатная функция применяется поверх этого результирующий набор:

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • Если функция 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.

  • Парольная передача агрегирования отключена для следующего синтаксиса из-за ограничений сервера:

    • Если запрос не фильтруется по ключу секции или когда фильтр ключа секции использует оператор OR с другим предикатом на верхнем уровне в предложении WHERE.

    • Если запрос содержит один или несколько ключей секций, появится в предложении IS NOT NULL в предложении WHERE.

  • Парольная передача фильтра отключена для следующего синтаксиса из-за ограничений сервера:

    • Когда запрос, содержащий один или несколько агрегатных столбцов, ссылается в предложении WHERE.