Применение параметра "Предполагаемая целостность" в 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[CustomerID] и Customer[CustID] в следующих таблицах. CustomerID содержит значение CustX, которое не существует в таблице Customers. Таким образом, предположим, что целостность ссылок не должна быть задана.
Настройка ссылочной целостности
Чтобы включить эту функцию, выберите "Предположить целостность ссылок", как показано на следующем рисунке.
При выборе параметр проверяется на соответствие данным, чтобы убедиться, что строки null или несоответствия отсутствуют. Однако в случаях с очень большим количеством значений проверка не гарантирует отсутствие проблем с целостностью ссылок.
Кроме того, проверка выполняется во время редактирования связи и не отражает последующие изменения данных.
Что произойдет, если вы неправильно задали ссылку на целостность?
Если при наличии проблем целостности ссылок в данных возникают проблемы с целостностью ссылок, этот параметр не приводит к ошибкам. Однако это приводит к явным несоответствиям в данных. Например, для связи с таблицей depots , описанной здесь, это приведет к следующему:
- Визуальный элемент, показывающий общий показатель качества заказа, будет отображать значение 40.
- Визуальный элемент, показывающий общий номер заказа от Depot City , будет отображать общее значение только 30, так как он не будет содержать идентификатор заказа 1, где DepotID имеет значение NULL.
Связанный контент
- Дополнительные сведения о DirectQuery.
- Дополнительные сведения о отношениях в Power BI.
- Дополнительные сведения о представлении модели в Power BI Desktop.