Бөлісу құралы:


Применение параметра "Предполагаемая целостность" в Power BI Desktop

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

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

Снимок экрана: диалоговое окно

Требования к использованию референциальной целостности

Этот параметр является дополнительным параметром и включен только при подключении к данным с помощью DirectQuery. Следующие требования необходимы для правильной работы ссылочной целостности .

  • Данные в столбце From в связи никогда не являются пустыми или пустыми
  • Для каждого значения в столбце From в столбце Есть соответствующее значение в столбце "To"

В этом контексте столбец From — это "Многие " в связи "Один ко многим ", или это столбец в первой таблице в связи "Один к одному ".

Пример использования функции "Предположим, что целостность ссылок"

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

  • На следующем рисунке показана таблица "Заказы" и таблица "Продукты", целостность ссылок существует между Orders[ProductID] и Products[ProductID]. Столбец [ProductID] в таблице Orders никогда не имеет значения NULL, а каждое значение также отображается в таблице Products . Таким образом, предположим, что целостность ссылок должна быть задана, чтобы получить более эффективные запросы. Использование этого параметра не изменяет значения, отображаемые в визуальных элементах.

    Снимок экрана: таблица

  • На следующем изображении обратите внимание, что не существует ссылочной целостности между Orders[DepotID] и Depots[DepotID], так как depotID имеет значение NULL для некоторых заказов. Таким образом, предположим, что целостность ссылок не должна быть задана.

    Снимок экрана: таблица Orders и таблица Depots.

  • Наконец, не существует ссылочной целостности между Orders[CustomerID] и Customer[CustID] в следующих таблицах. CustomerID содержит значение CustX, которое не существует в таблице Customers. Таким образом, предположим, что целостность ссылок не должна быть задана.

    Снимок экрана: таблица

Настройка ссылочной целостности

Чтобы включить эту функцию, выберите "Предположить целостность ссылок", как показано на следующем рисунке.

Снимок экрана: диалоговое окно

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

Кроме того, проверка выполняется во время редактирования связи и не отражает последующие изменения данных.

Что произойдет, если вы неправильно задали ссылку на целостность?

Если при наличии проблем целостности ссылок в данных возникают проблемы с целостностью ссылок, этот параметр не приводит к ошибкам. Однако это приводит к явным несоответствиям в данных. Например, для связи с таблицей depots , описанной здесь, это приведет к следующему:

  • Визуальный элемент, показывающий общий показатель качества заказа, будет отображать значение 40.
  • Визуальный элемент, показывающий общий номер заказа от Depot City , будет отображать общее значение только 30, так как он не будет содержать идентификатор заказа 1, где DepotID имеет значение NULL.