Базы данных и режимы Import / DirectQuery
Подключаемся к базам данных и выбираем между Import и DirectQuery.
Import — данные копируются в память Power BI; DirectQuery — данные остаются в базе, Power BI шлёт запросы при каждом действии.
Зачем подключаться к базе напрямую
Файлы хороши для старта, но настоящие данные живут в базах: PostgreSQL, MS SQL Server, MySQL, ClickHouse. Прямое подключение убирает ручную выгрузку: отчёт сам берёт актуальные данные из боевой системы. Это и быстрее, и надёжнее, чем пересылать Excel по почте.
Как подключиться
«Получить данные» → выбираете СУБД (например, «SQL Server») → вводите адрес сервера и имя базы. В навигаторе появляются таблицы и представления — отмечаете нужные. Можно не тащить таблицу целиком, а написать SQL-запрос, который сразу отфильтрует и соединит данные на стороне базы.
SELECT o.order_date,
o.amount,
c.region,
p.category
FROM orders o
JOIN customers c ON c.id = o.customer_id
JOIN products p ON p.id = o.product_id
WHERE o.order_date >= '2025-01-01';Такой запрос отдаст уже подготовленную «плоскую» выборку — но в Power BI чаще предпочитают тянуть таблицы по отдельности и связывать их в модели (об этом — целый раздел).
Import против DirectQuery
Это ключевой архитектурный выбор при работе с базами.
| Критерий | Import | DirectQuery |
| Где данные | в памяти Power BI (VertiPaq) | остаются в базе |
| Скорость отчёта | очень высокая | зависит от базы, медленнее |
| Свежесть | на момент обновления | всегда актуальная |
| Объём | ограничен памятью/лицензией | хоть миллиарды строк |
| DAX-функции | все | часть недоступна |
Что выбрать
В 90% случаев — Import. Он быстрее, поддерживает весь DAX и проще в обслуживании; данные обновляются по расписанию (раз в час/день — достаточно для большинства задач). DirectQuery берут только когда данных слишком много, чтобы поместить в память, или когда нужна секундная свежесть (например, мониторинг производства в реальном времени). Платой за это будут медленные отчёты и ограничения языка.
Как работает под капотом
В режиме Import движок VertiPaq сжимает таблицы и считает агрегаты локально — отсюда скорость. В DirectQuery каждый клик по срезу превращается в SQL-запрос к базе: Power BI генерирует SQL «на лету», отправляет его серверу и ждёт ответ. Если база нагружена или запрос тяжёлый, пользователь почувствует задержку. Поэтому в DirectQuery критична оптимизация базы (индексы, агрегаты).
Частые ошибки
- Выбирать DirectQuery «потому что так свежее». Для подавляющего большинства отчётов обновление раз в час через Import достаточно, а отчёт будет летать.
- Тащить из базы все таблицы целиком. Берите только нужные столбцы и строки — лишнее раздувает модель.
- Хранить пароль к базе в файле. Учётные данные настраиваются отдельно и не должны лежать в
.pbix.
Итог
- К базам подключаются через коннектор СУБД; можно отметить таблицы или написать SQL.
- Import — быстро и полнофункционально (выбор по умолчанию); DirectQuery — для огромных объёмов и реального времени.
- В DirectQuery каждое действие порождает SQL-запрос к базе.