Подключение Power BI к базе данных: импорт или ДиректЗапрос и что сломается позже
Получите данные, SQL Server, введите имя сервера, а затем диалоговое окно спросит, хотите ли вы импортировать или ДиректЗапрос. Это похоже на техническую деталь. Он решает, насколько быстр ваш отчет, насколько свежи данные, какой DAX вам разрешено писать и что произойдет при публикации.
Что вы делаете: выберите «Импорт», если это не запрещено конкретными требованиями, подключитесь к представлениям, а не к рукописному SQL, и настройте шлюз, прежде чем обещать кому-либо обновление.
Краткая версия. Импорт копирует данные. ДиректЗапрос заимствует его при каждом щелчке мыши.
Два режима
| Импорт | ДиректЗапрос | |
|---|---|---|
| Где живут данные | В файле модели | В источнике |
| Скорость | Быстрый, в памяти и со сжатием | Так же быстро, как источник, за взаимодействие |
| Свежесть | На момент последнего обновления | текущий |
| Ограничения по размеру | Ограничено ограничением размера модели | Фактически нет |
| DAX доступен | Все это | Ограниченный набор |
| Загрузить в базу данных | Один раз за обновление | Каждый визуальный элемент, каждый фильтр |
| Работает офлайн | Да | Нет |
Ограничение DAX — это то, с чем люди сталкиваются в последнюю очередь и о котором больше всего думают. Некоторые функции временной аналитики и табличные функции недоступны или работают медленно в ДиректЗапрос, поэтому мера, которая работает в демонстрационном файле, не работает в реальном отчете.
Выбирайте ДиректЗапрос, когда
- Данные действительно должны быть актуальными с точностью до минуты, и кто-то может назвать решение, которое этого требует.
- Таблица слишком велика для импорта, и предварительное агрегирование невозможно.
- Правило безопасности гласит, что данные нельзя копировать из исходной системы.
Это трое. «Это кажется более реальным» — это не так, и каждый клик стоит аудитории несколько секунд.
Составные модели позволяют сочетать их: импортировать измерения, а ДиректЗапрос — очень большую таблицу фактов. Это правильный ответ чаще, чем любой из этих режимов по отдельности, и об этом стоит знать, прежде чем отправлять весь отчет в ДиректЗапрос.
Хорошее соединение
- Подключайтесь к представлениям, а не к необработанным таблицам, где вы можете. Представление — это контракт: владелец базы данных может изменять базовые таблицы, не нарушая при этом ваш отчет.
- Не вставляйте SQL в коннектор если только вы не должны. Собственный SQL блокирует свертывание запроса, поэтому каждый последующий шаг Power Query выполняется локально, а не в базе данных. Видеть ошибки обновления сколько это стоит.
- Выберите только те столбцы, которые вам нужны. Размер модели определяется столбцами и их мощностью в гораздо большей степени, чем строками, а текстовый столбец с высокой кардинальности, такой как примечание с произвольным текстом, может доминировать в файле.
- Фильтровать заранее, в источнике или на первом этапе запроса, поэтому свертывание возвращает его в базу данных.
- Используйте параметр для имен сервера и базы данных, поэтому переход от тестирования к производству — это одно редактирование, а не двенадцать.
Учетные данные и шлюз
Именно здесь большинство опубликованных отчетов терпят неудачу. Рабочий стол использует ваши учетные данные Окна или базы данных на вашем компьютере; Служба имеет собственное отдельное хранилище учетных данных и не имеет маршрута к вашей сети.
- Опубликуйте отчет.
- В Сервисе откройте настройки набора данных и задайте учетные данные источника данных.
- Для любого источника внутри вашей сети установите локальный шлюз данных на машине, которая остается включенной.
- Сопоставьте источник данных в конфигурации шлюза, сопоставив имена сервера и базы данных точно так, как они указаны в файле. Несоответствие здесь является обычной причиной того, что шлюз установлен и до сих пор не используется.
- Установите расписание обновления и включите уведомления об ошибках.
Шлюз на личном ноутбуке работает и выходит из строя каждый раз, когда ноутбук переходит в режим сна. Если отчет имеет значение, шлюз принадлежит серверу.
Безопасность
- Для создания отчетов используйте учетную запись, доступную только для чтения. Отчет не имеет оснований писать.
- Предпочитайте сервисную учетную запись личной, иначе отчет прервется, когда кто-то уйдет.
- Помните, что импортированная модель содержит данные. Строки есть у любого, у кого есть доступ к файлу отчета, независимо от того, что разрешает исходная система.
- Безопасность на уровне строк применяется в модели, а не в источнике, если только вы намеренно не передаете идентификатор пользователя. Видеть безопасность на уровне строк.
Как применить это в своей работе
- Проверьте режим хранения текущего отчета. Он отображается в строке состояния справа внизу.
- Если это ДиректЗапрос, спросите, какая из трех причин применима. Если этого не происходит, протестируйте версию импорта и сравните реакцию на нажатие.
- Попросите владельца базы данных предоставить представления, а не доступ к таблицам, и объясните, что это позволяет им безопасно выполнять рефакторинг.
- Удалите столбцы, которые вы не используете, и наблюдайте, как размер файла уменьшается.
- Настройте шлюз и учетные данные до того, как обещать график обновления, а не после первого сообщения об ошибке.
Единственная привычка, которую нужно сохранить
Спросите, где будет выполняться запрос. Этот единственный вопрос объясняет скорость отчетов, сбои обновления, загрузку базы данных и половину ограничений DAX, и именно этот вопрос действительно задавался в диалоговом окне подключения.
Знаете ли вы, в каком режиме находится ваш наиболее часто используемый отчет?
Power BI для аналитиков — это 187 страниц, которые разделяют контекст фильтра по одному модификатору за раз, поэтому показатель перестает быть догадкой о том, что фильтровал Power BI при запуске.
Power BI для аналитиков, 19 долларов США →Звездная схема покрывает форму для построения, и ошибки обновления рассказывает о том, что пойдет не так позже. Курс Power BI есть дрели.
Читать Звездную схему →