Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подключение Power BI находится в основе семантической связи в Microsoft Fabric. В этой статье описываются способы, которыми семантические связи обеспечивают подключение к семантическим моделям для пользователей экосистемы Python pandas и Apache Spark.
Семантическая модель обычно представляет собой высокий стандарт данных, который является результатом вышестоящей обработки и уточнения данных. Бизнес-аналитики могут:
- Кодирование знаний домена и бизнес-логики в меры Power BI.
- Создание отчетов Power BI с помощью семантических моделей.
- Используйте эти отчеты для решения бизнес-решений.
Когда дата-сайентисты, работающие с теми же семантическими моделями, пытаются дублировать бизнес-логику в различных средах кодирования или языках, это может привести к возникновению критических ошибок. Семантическая связь мостит разрыв между семантическими моделями и Synapse Data Science в Microsoft Fabric, чтобы бизнес-аналитики и специалисты по данным могли эффективно сотрудничать и снижать несоответствия в данных.
Семантическая ссылка обеспечивает подключение к следующим возможностям:
- Экосистема Python pandas с помощью библиотеки SemPy для Python.
- Семантические модели через собственный соединитель 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 DataFrames с добавленными метаданными, распространяемыми из источника данных Power BI. Эти метаданные включают:
- Категории данных Power BI:
- Географические: адрес, место, город
- URL-адрес: веб-URL-адрес, URL-адрес изображения
- Штрих-код
- Связи между таблицами
- Иерархии
Подключение данных через семантическую ссылку родного соединителя Spark
Родной соединитель Spark Semantic Link позволяет пользователям 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
таблицу для объединения реляционных Spark SQL с многомерными возможностями Power BI. В следующем примере Total Revenue
и Revenue Budget
являются мерами, определенными в семантической модели 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
выполняет следующие действия.
- Сопоставляет имена столбцов в FabricDataFrame с измерениями Power BI. Операция игнорирует имена столбцов, которые не могут быть разрешены в данной семантической модели. Дополнительные сведения см. в поддерживаемом синтаксисе DAX.
- Определяет
group by
столбцы, используя разрешенные имена столбцов. - Вычисляет один или несколько показателей на уровне
group by
. - Фильтрует результат по существующим строкам в FabricDataFrame.