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, выполните приведенные действия.
Запустите Power BI Desktop.
На вкладке "Главная" выберите " Получить данные".
В поле поиска введите Cosmos DB версии 2.
Выберите Azure Cosmos DB версии 2 (бета-версия) и нажмите кнопку "Подключиться".
На странице подключения 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 DB) — использовать динамические параметры M. Чтобы использовать динамические параметры M, необходимо создать набор данных с уникальными значениями ключа секции, создать параметр, добавить его в качестве фильтра в основном наборе данных, привязать его к уникальному набору данных ключа секции и использовать его в качестве среза для основного набора данных. Чтобы включить динамические параметры M для фильтрации ключей секций, выполните следующие действия.
a. Создание набора данных с уникальными значениями ключа секции:
В навигаторе выберите "Преобразовать данные ", а не "Загрузить ", чтобы открыть редактор Power Query. Щелкните правой кнопкой мыши набор данных запросов и выберите "Дублировать ", чтобы создать новый набор данных.
Переименуйте новую модель ключа секции, а затем щелкните правой кнопкой мыши столбец ключа раздела Cosmos DB. В этом примере Product — это столбец ключа раздела Cosmos DB. Выберите "Удалить другие столбцы" и нажмите кнопку "Удалить дубликаты".
b. Создание параметра для динамической фильтрации:
В редакторе 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.