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


Подключение Power BI с семантической ссылкой

Подключение Power BI находится в основе семантической связи в Microsoft Fabric. В этой статье описываются способы подключения семантики к семантической модели для пользователей экосистем Python Pandas и Apache Spark.

Семантическая модель обычно представляет собой высокий стандарт данных, который является результатом вышестоящей обработки и уточнения данных. Бизнес-аналитики могут:

  • Кодирование знаний домена и бизнес-логики в меры Power BI.
  • Создание отчетов Power BI с помощью семантических моделей.
  • Используйте эти отчеты для решения бизнес-решений.

Когда специалисты по обработке и анализу данных, работающие с теми же семантичными моделями, пытаются дублировать бизнес-логику в разных средах кода или языках, критически важные ошибки могут привести к возникновению критических ошибок. Семантическая связь мостит разрыв между семантических моделей и Обработка и анализ данных Synapse в Microsoft Fabric, чтобы обеспечить возможность для бизнес-аналитиков и специалистов по обработке и анализу данных для эффективной совместной работы и снижения несоответствия данных.

Семантическая ссылка обеспечивает подключение к следующим возможностям:

  • Экосистема Python pandas через библиотеку Python SemPy.
  • Семантические модели через собственный соединитель Spark, который поддерживает PySpark, Spark SQL, R и Scala.

Подключение к данным через библиотеку Python SemPy для пользователей pandas

Библиотека Python SemPy является частью функции семантической связи и обслуживает пользователей pandas. Функции SemPy включают получение данных из таблиц, вычисление мер и выполнение запросов и метаданных выражений анализа данных (DAX).

  • Для Spark 3.4 и более поздних версий семантическая ссылка доступна в среде выполнения по умолчанию при использовании Fabric и не требуется устанавливать ее.

  • Для Spark 3.3 или ниже или для обновления до последней версии семантической ссылки выполните следующую команду:

    %pip install -U semantic-link
    

SemPy также расширяет кадры данных pandas с добавленными метаданными, распространяемых из источника данных Power BI. Эти метаданные включают:

  • Категории данных Power BI:
    • Географические: адрес, место, город
    • URL-адрес: веб-URL-адрес, URL-адрес изображения
    • Штрих-код
  • Связи между таблицами
  • Иерархии

Собственный соединитель Spark семантической связи позволяет пользователям Spark получать доступ к таблицам и мерам Power BI. Соединитель не зависит от языка и поддерживает PySpark, Spark SQL, R и Scala.

Чтобы использовать собственный соединитель Spark, вы представляете семантические модели в виде пространств имен Spark и прозрачно предоставляет таблицы Power BI в виде таблиц Spark.

Следующая команда настраивает Spark для использования собственного соединителя Power BI Spark для Spark SQL:

spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")

# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")

Следующая команда содержит список всех таблиц в семантической Sales Datasetмодели:

%%sql
SHOW TABLES FROM pbi.`Sales Dataset`

Следующая команда отображает данные из Customer таблицы в семантической модели Sales Dataset:

%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer

Меры Power BI доступны через виртуальную _Metrics таблицу для мостовых реляционных SQL Spark с многомерными возможностями Power BI. В следующем примере и Revenue Budget являются мерами, Total Revenue определенными в Sales Dataset семантической модели, а другие столбцы — измерениями. Функции агрегирования, такие как AVG игнорируются для мер и присутствуют только для обеспечения согласованности с SQL.

Соединитель поддерживает передачу предиката, например Customer[State] in ('CA', 'WA') из выражений Spark в подсистему Power BI, чтобы включить использование оптимизированного обработчика Power BI.

SELECT
    `Customer[Country/Region]`,
    `Industry[Industry]`,
    AVG(`Total Revenue`),
    AVG(`Revenue Budget`)
FROM
    pbi.`Sales Dataset`.`_Metrics`
WHERE
    `Customer[State]` in ('CA', 'WA')
GROUP BY
    `Customer[Country/Region]`,
    `Industry[Industry]`

Расширение данных с помощью мер Power BI

Операция add_measure представляет собой мощную функцию семантической связи, которая позволяет расширять данные с помощью мер из семантических моделей. Эта операция доступна только в библиотеке Python SemPy и не поддерживается в собственном соединителе Spark. Дополнительные сведения о методе add_measure см . в add_measure документации по классам FabricDataFrame .

Чтобы использовать библиотеку Python SemPy, установите ее в ядро записной книжки, выполнив следующий код в ячейке записной книжки:

# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame

В следующем примере кода предполагается, что у вас есть существующий FabricDataFrame с данными, которые необходимо расширить с помощью мер из семантической модели.

df = FabricDataFrame({
        "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
        "Customer[Country/Region]": ["US", "GB", "US"],
        "Industry[Industry]": ["Services", "CPG", "Manufacturing"],
    }
)

joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")

Метод add_measure выполняет следующие действия.

  1. Разрешает имена столбцов в структурах FabricDataFrame в измерения Power BI. Операция игнорирует имена столбцов, которые не могут быть разрешены в данной семантической модели. Дополнительные сведения см. в поддерживаемом синтаксисе DAX.
  2. Определяет group by столбцы, используя разрешенные имена столбцов.
  3. Вычисляет один или несколько мер на group by уровне.
  4. Фильтрует результат по существующим строкам в FabricDataFrame.