Изучение и проверка связей в семантических моделях и кадрах данных
В этой статье вы узнаете, как использовать функции семантической связи SemPy для обнаружения и проверки связей в семантических моделях Power BI и пандах DataFrames.
В области обработки и анализа данных и машинного обучения важно понимать структуру и связи в данных. Power BI — это мощный инструмент, позволяющий моделировать и визуализировать эти структуры и связи. Чтобы получить дополнительные сведения или создать модели машинного обучения, вы можете более глубоко ознакомиться с помощью функций семантической связи в модулях библиотеки SemPy.
Специалисты по обработке и анализу данных и бизнес-аналитики могут использовать функции SemPy для перечисления, визуализации и проверки связей в семантических моделях Power BI или поиска и проверки связей в пандах DataFrames.
Необходимые компоненты
Получение подписки Microsoft Fabric. Или зарегистрируйте бесплатную пробную версию Microsoft Fabric.
Войдите в Microsoft Fabric.
Используйте переключатель интерфейса в левой нижней части домашней страницы, чтобы перейти на Fabric.
Создайте записную книжку для копирования и вставки кода в ячейки.
Для Spark 3.4 и более поздних версий семантическая ссылка доступна в среде выполнения по умолчанию при использовании Fabric и не требуется устанавливать ее. Для Spark 3.3 или ниже или для обновления до последней версии семантической ссылки выполните следующую команду:
%pip install -U semantic-link
Перечисление связей в семантических моделях
Функция list_relationships
в модуле sempy.fabric
возвращает список всех связей, найденных в семантической модели Power BI. Список помогает понять структуру данных и способ подключения различных таблиц и столбцов.
Эта функция работает с помощью семантической ссылки для предоставления аннотированных кадров данных. Кадры данных включают необходимые метаданные для понимания связей в семантической модели. Аннотированные кадры данных позволяют легко анализировать структуру семантической модели и использовать ее в моделях машинного обучения или других задачах анализа данных.
Чтобы использовать функцию list_relationships
, сначала импортируйте sempy.fabric
модуль. Затем вы вызываете функцию с помощью имени или UUID модели семантики Power BI, как показано в следующем примере:
import sempy.fabric as fabric
fabric.list_relationships("my_dataset")
Предыдущий код вызывает функцию list_relationships
с семантической моделью Power BI с именем my_dataset. Функция возвращает кадр данных Pandas с одной строкой для каждой связи, что позволяет легко изучить и проанализировать связи в семантической модели.
Примечание.
Записная книжка, семантическая модель набора данных Power BI и Lakehouse могут находиться в одной рабочей области или в разных рабочих областях. По умолчанию SemPy пытается получить доступ к семантической модели из:
- Рабочая область lakehouse, если вы прикрепили lakehouse к записной книжке.
- Рабочая область записной книжки, если не подключена к Lakehouse.
Если семантическая модель не находится в любой из этих рабочих областей, необходимо указать рабочую область семантической модели при вызове метода SemPy.
Визуализация связей в семантических моделях
Функция plot_relationship_metadata
помогает визуализировать связи в семантической модели, чтобы лучше понять структуру модели. Эта функция создает граф, отображающий соединения между таблицами и столбцами. Граф упрощает понимание структуры семантической модели и способов связи различных элементов.
В следующем примере показано, как использовать функцию plot_relationship_metadata
:
import sempy.fabric as fabric
from sempy.relationships import plot_relationship_metadata
relationships = fabric.list_relationships("my_dataset")
plot_relationship_metadata(relationships)
В приведенном выше коде list_relationships
функция извлекает связи в my_dataset семантической модели, а plot_relationship_metadata
функция создает граф для визуализации связей.
Вы можете настроить граф, определив, какие столбцы следует включить, указав способ обработки отсутствующих ключей и предоставляя дополнительные атрибуты graphviz .
Проверка связей в семантических моделях
Теперь, когда у вас есть лучшее представление о связях в семантической модели, можно использовать list_relationship_violations
функцию для проверки этих связей и выявления возможных проблем или несоответствий. Функция list_relationship_violations
помогает проверить содержимое таблиц, чтобы убедиться, что они соответствуют связям, определенным в семантической модели.
Используя эту функцию, можно определить несоответствия с указанным кратностью связей и устранить любые проблемы, прежде чем они влияют на анализ данных или модели машинного обучения.
Чтобы использовать функцию list_relationship_violations
, сначала импортируйте sempy.fabric
модуль и считываете таблицы из семантической модели.
Затем вы вызываете функцию с словарем, который сопоставляет имена таблиц с кадрами данных с содержимым таблицы.
В следующем примере кода показано, как вывести список нарушений связей:
import sempy.fabric as fabric
tables = {
"Sales": fabric.read_table("my_dataset", "Sales"),
"Products": fabric.read_table("my_dataset", "Products"),
"Customers": fabric.read_table("my_dataset", "Customers"),
}
fabric.list_relationship_violations(tables)
Предыдущий код вызывает list_relationship_violations
функцию с словарем, который содержит таблицы Sales, Products и Customers из my_dataset семантической модели. Вы можете настроить функцию, задав порог покрытия, указав способ обработки отсутствующих ключей и определив количество отсутствующих ключей для отчета.
Функция возвращает кадр данных Pandas с одной строкой на каждую строку, что позволяет легко выявлять и устранять любые проблемы в семантической модели.
Используя list_relationship_violations
функцию, вы можете убедиться, что семантическая модель согласована и точную, что позволяет создавать более надежные модели машинного обучения и получать более подробные сведения о данных.
Поиск связей в пандах DataFrames
list_relationships
plot_relationships_df
list_relationship_violations
Хотя функции в модуле Fabric являются мощными средствами для изучения связей в семантических моделях, возможно, также потребуется обнаружить связи в других источниках данных, импортированных как pandas DataFrames.
find_relationships
В этом случае функция в модуле sempy.relationship
вступает в игру.
Функция find_relationships
в модуле sempy.relationships
помогает специалистам по обработке и анализу данных и бизнес-аналитикам обнаруживать потенциальные отношения в списке кадров данных pandas. С помощью этой функции можно определить возможные подключения между таблицами и столбцами, что позволяет лучше понять структуру данных и как связаны различные элементы.
В следующем примере кода показано, как найти связи в пандах DataFrames:
from sempy.relationships import find_relationships
tables = [df_sales, df_products, df_customers]
find_relationships(tables)
Предыдущий код вызывает функцию find_relationships
со списком трех кадров данных Pandas df_sales
: , df_products
и df_customers
.
Функция возвращает кадр данных pandas с одной строкой на каждую потенциальную связь, что позволяет легко изучить и проанализировать связи в данных.
Вы можете настроить функцию, указав порог покрытия, порог сходства имен, список связей, которые следует исключить, и независимо от того, следует ли включать связи "многие ко многим".
Проверка связей в пандах DataFrames
После обнаружения потенциальных связей в кадрах данных pandas с помощью find_relationships
функции можно использовать list_relationship_violations
функцию для проверки этих связей и выявления возможных проблем или несоответствий.
Функция list_relationship_violations
проверяет содержимое таблиц, чтобы убедиться, что они соответствуют обнаруженным связям. Используя эту функцию для выявления несоответствий с указанной кратностью связей, вы можете устранить любые проблемы, прежде чем они влияют на анализ данных или модели машинного обучения.
В следующем примере кода показано, как найти нарушения отношений в пандах DataFrames:
from sempy.relationships import find_relationships, list_relationship_violations
tables = [df_sales, df_products, df_customers]
relationships = find_relationships(tables)
list_relationship_violations(tables, relationships)
Предыдущий код вызывает функцию list_relationship_violations
со списком трех панд DataFrames, df_sales
df_products
и , а df_customers
также связей DataFrame из find_relationships
функции.
Функция list_relationship_violations
возвращает кадр данных pandas с одной строкой на каждую строку для нарушения связи, что позволяет легко выявлять и устранять любые проблемы в данных.
Вы можете настроить функцию, задав порог покрытия, указав способ обработки отсутствующих ключей и определив количество отсутствующих ключей для отчета.
Используя list_relationship_violations
функцию с кадрами данных pandas, вы можете обеспечить согласованность и точность данных, позволяя создавать более надежные модели машинного обучения и получать более подробные сведения о данных.
Связанный контент
- Сведения о семантических функциях
- Начало работы со справочной документацией по SemPy
- Руководство. Обнаружение связей в семантической модели с помощью семантической ссылки
- Руководство. Обнаружение связей в наборе данных Synthea с помощью семантической ссылки
- Обнаружение, изучение и проверка функциональных зависимостей в данных