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


Изучение и проверка связей в семантических моделях и кадрах данных

В этой статье вы узнаете, как использовать функции семантической связи SemPy для обнаружения и проверки связей в семантических моделях Power BI и пандах DataFrames.

В области обработки и анализа данных и машинного обучения важно понимать структуру и связи в данных. Power BI — это мощный инструмент, позволяющий моделировать и визуализировать эти структуры и связи. Чтобы получить дополнительные сведения или создать модели машинного обучения, вы можете более глубоко ознакомиться с помощью функций семантической связи в модулях библиотеки SemPy.

Специалисты по обработке и анализу данных и бизнес-аналитики могут использовать функции SemPy для перечисления, визуализации и проверки связей в семантических моделях Power BI или поиска и проверки связей в пандах DataFrames.

Необходимые компоненты

  • Получение подписки Microsoft Fabric. Или зарегистрируйте бесплатную пробную версию Microsoft Fabric.

  • Войдите в Microsoft Fabric.

  • Используйте переключатель интерфейса в левой части домашней страницы, чтобы перейти на интерфейс Synapse Обработка и анализ данных.

    Снимок экрана: меню переключателя интерфейса, в котором показано, где выбрать Обработка и анализ данных.

  • Создайте записную книжку для копирования и вставки кода в ячейки.

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

    %pip install -U semantic-link
    
  • Добавьте lakehouse в записную книжку.

Перечисление связей в семантических моделях

Функция 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_relationshipsplot_relationships_dflist_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_salesdf_productsи , а df_customersтакже связей DataFrame из find_relationships функции. Функция list_relationship_violations возвращает кадр данных pandas с одной строкой на каждую строку для нарушения связи, что позволяет легко выявлять и устранять любые проблемы в данных.

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

Используя list_relationship_violations функцию с кадрами данных pandas, вы можете обеспечить согласованность и точность данных, позволяя создавать более надежные модели машинного обучения и получать более подробные сведения о данных.