Поделиться через


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 (бета-версия) и нажмите кнопку "Подключиться".

    Снимок экрана: выбор выбора Azure Cosmos DB версии 2.

  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.

    Подробнее:

    Снимок экрана: диалоговое окно подключения с записью конечной точки Cosmos и режимом подключения к данным, заданным в DirectQuery.

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

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

    Снимок экрана: навигатор, подчеркивающий выбранные данные.

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

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

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

    Снимок экрана: выбор дубликата из существующего запроса в редакторе Power Query.

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

    Снимок экрана: уникальные ключи секций в редакторе Power Query.

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

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

    Снимок экрана: создание параметра в редакторе Power Query.

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

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

    Снимок экрана: шаги по применению параметризованного фильтра.

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

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

    Снимок экрана: шаги по привязке параметра.

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

    Снимок экрана: срез.

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

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

    Снимок экрана: визуализация после применения фильтра ключа секции.

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

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 с другим предикатом на верхнем уровне в предложении WHERE.

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

  • Соединитель версии 2 не поддерживает сложные типы данных, такие как массивы, объекты и иерархические структуры. Для этих сценариев рекомендуется использовать функцию зеркального отображения Структуры для Azure Cosmos DB .

  • Соединитель версии 2 использует выборку первых 1000 документов для определения схемы. Не рекомендуется использовать сценарии эволюции схемы, когда обновляются только части документов. Например, только что добавленное свойство в один документ в контейнере с thousants документов может не быть добавлено в схеме вывода. Для этих сценариев рекомендуется использовать функцию зеркального отображения Структуры для Azure Cosmos DB .

  • В настоящее время соединитель версии 2 не поддерживает нестроковые значения в свойствах объекта.

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

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