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

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

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

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

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

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

  • Для 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_relationships, plot_relationships_df и list_relationship_violations в модуле Fabric — это мощные средства для изучения связей в семантических моделях. Иногда необходимо найти связи в других источниках данных, таких как pandas DataFrames.

Используйте функцию find_relationships в модуле sempy.relationship для поиска отношений в DataFrames библиотеки pandas.

Функция find_relationships в модуле sempy.relationships позволяет специалистам по обработке и анализу данных найти потенциальные отношения в списке панд dataFrames. Эта функция помогает обнаружить соединения между таблицами и столбцами, поэтому вы узнаете больше о данных и о том, как связаны его элементы.

Вот как найти связи в pandas DataFrame:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Предыдущий код вызывает функцию find_relationships со списком из трех pandas DataFrames: df_sales, df_products, и df_customers. Функция возвращает таблицу данных pandas с одной строкой для каждого потенциального отношения, чтобы вы могли изучать и анализировать отношения в ваших данных.

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

Проверка связей в пандах DataFrames

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

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

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