> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Microsoft Power BI — это программный продукт для интерактивной визуализации данных, разработанный Microsoft и ориентированный прежде всего на бизнес-аналитику.

# Power BI

export const ClickHouseSupportedBadge = () => {
  return <div className="ClickHouseSupportedBadge">
            <div className="ClickHouseSupportedIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M1.30762 1.39073C1.30762 1.3103 1.37465 1.22986 1.46849 1.22986H2.64824C2.72868 1.22986 2.80912 1.29689 2.80912 1.39073V14.4886C2.80912 14.5691 2.74209 14.6495 2.64824 14.6495H1.46849C1.38805 14.6495 1.30762 14.5825 1.30762 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M4.2832 1.39073C4.2832 1.3103 4.35023 1.22986 4.44408 1.22986H5.62383C5.70427 1.22986 5.7847 1.29689 5.7847 1.39073V14.4886C5.7847 14.5691 5.71767 14.6495 5.62383 14.6495H4.44408C4.36364 14.6495 4.2832 14.5825 4.2832 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M7.25977 1.39073C7.25977 1.3103 7.3268 1.22986 7.42064 1.22986H8.60039C8.68083 1.22986 8.76127 1.29689 8.76127 1.39073V14.4886C8.76127 14.5691 8.69423 14.6495 8.60039 14.6495H7.42064C7.3402 14.6495 7.25977 14.5825 7.25977 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M10.2354 1.39073C10.2354 1.3103 10.3024 1.22986 10.3962 1.22986H11.576C11.6564 1.22986 11.7369 1.29689 11.7369 1.39073V14.4886C11.7369 14.5691 11.6698 14.6495 11.576 14.6495H10.3962C10.3158 14.6495 10.2354 14.5825 10.2354 14.4886V1.39073Z" fill="currentColor" />
                    <path d="M13.2256 6.6057C13.2256 6.52526 13.2926 6.44482 13.3865 6.44482H14.5662C14.6466 6.44482 14.7271 6.51186 14.7271 6.6057V9.27354C14.7271 9.35398 14.6601 9.43442 14.5662 9.43442H13.3865C13.306 9.43442 13.2256 9.36739 13.2256 9.27354V6.6057Z" fill="currentColor" />
                </svg>
            </div>
            Поддерживается в ClickHouse
        </div>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

Microsoft Power BI может выполнять запросы к данным из [ClickHouse Cloud](https://clickhouse.com/cloud) или загружать данные в память из самоуправляемого развертывания.

Существует несколько вариантов Power BI, которые можно использовать для визуализации данных:

* Power BI Desktop: настольное приложение для Windows для создания панелей мониторинга и визуализаций
* Power BI Service: доступный в Azure SaaS-сервис для размещения панелей мониторинга, созданных в Power BI Desktop

В Power BI панели мониторинга создаются в версии Desktop, а затем публикуются в Power BI Service.

В этом руководстве вы узнаете, как:

* [установить ODBC-драйвер ClickHouse](#install-the-odbc-driver)
* [установить коннектор ClickHouse Power BI в Power BI Desktop](#power-bi-installation)
* [выполнять запросы к данным из ClickHouse для визуализации в Power BI Desktop](#query-and-visualise-data)
* [настроить локальный шлюз данных для Power BI Service](#power-bi-service)

<div id="prerequisites">
  ## Предварительные требования
</div>

<div id="power-bi-installation">
  ### Установка Power BI
</div>

В этом руководстве предполагается, что на вашем компьютере с Windows уже установлен Microsoft Power BI Desktop. Скачать и установить Power BI Desktop можно [здесь](https://www.microsoft.com/en-us/download/details.aspx?id=58494)

Мы рекомендуем обновить Power BI до последней версии. Коннектор ClickHouse по умолчанию доступен начиная с версии `2.137.751.0`.

<div id="gather-your-clickhouse-connection-details">
  ### Подготовьте сведения о подключении к ClickHouse
</div>

Для подключения к вашему экземпляру ClickHouse потребуются следующие сведения:

* Имя хоста — ClickHouse
* Имя пользователя — имя пользователя из учетных данных
* Пароль — пароль пользователя
* База данных — имя базы данных в экземпляре, к которой вы хотите подключиться

<div id="power-bi-desktop">
  ## Power BI desktop
</div>

Чтобы начать работать с запросами к данным в Power BI Desktop, выполните следующие шаги:

1. Установите ODBC-драйвер ClickHouse
2. Найдите коннектор ClickHouse
3. Подключитесь к ClickHouse
4. Выполняйте запросы и визуализируйте данные

<div id="install-the-odbc-driver">
  ### Установите драйвер ODBC
</div>

Скачайте последний [релиз ClickHouse ODBC](https://github.com/ClickHouse/clickhouse-odbc/releases).

Запустите скачанный установщик `.msi` и следуйте указаниям мастера установки.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_odbc_install.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=bb5b217cc0f72cfb3efa0ab67bc091f9" alt="Мастер установки ODBC-драйвера ClickHouse с вариантами установки" border width="676" height="514" data-path="images/integrations/data-visualization/powerbi_odbc_install.webp" />

<br />

<Note>
  `Debug symbols` необязательны
</Note>

<div id="verify-odbc-driver">
  #### Проверьте ODBC Driver
</div>

После завершения установки драйвера вы можете убедиться, что он установлен успешно, следующим образом:

Найдите ODBC в меню «Пуск» и выберите "ODBC Data Sources **(64-bit)**".

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_odbc_search.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=f60cfc405ca82d22b0e4e72365d3f686" alt="Поиск Windows с параметром ODBC Data Sources (64-bit)" border width="826" height="676" data-path="images/integrations/data-visualization/powerbi_odbc_search.webp" />

<br />

Убедитесь, что ClickHouse Driver присутствует в списке.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_odbc_verify.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=667bdce7ea7d674b710ce36105388190" alt="Администратор источников данных ODBC с драйверами ClickHouse на вкладке Drivers" border width="1168" height="842" data-path="images/integrations/data-visualization/powerbi_odbc_verify.webp" />

<br />

<div id="find-the-clickhouse-connector">
  ### Найдите коннектор ClickHouse
</div>

<Note>
  Доступно в Power BI Desktop версии `2.137.751.0`
</Note>

На стартовом экране Power BI Desktop нажмите "Get Data".

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_get_data.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=b44629c65c82c46728c4d2a1d7d2b726" alt="Стартовый экран Power BI Desktop с кнопкой Get Data" border width="1916" height="968" data-path="images/integrations/data-visualization/powerbi_get_data.webp" />

<br />

Введите "ClickHouse" в строке поиска

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_search_clickhouse.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=9e1730ed423dfde3ce9844ed56174490" alt="Диалоговое окно Power BI Get Data с запросом ClickHouse в строке поиска" border width="680" height="661" data-path="images/integrations/data-visualization/powerbi_search_clickhouse.webp" />

<br />

<div id="connect-to-clickhouse">
  ### Подключение к ClickHouse
</div>

Выберите коннектор и введите учетные данные экземпляра ClickHouse:

* Host (обязательно) — Домен/адрес вашего экземпляра. Убедитесь, что он указан без префиксов и суффиксов.
* Port (обязательно) — Порт вашего экземпляра.
* Database — Имя вашей базы данных.
* Options — Любой параметр ODBC из списка
  на [странице ClickHouse ODBC в GitHub](https://github.com/ClickHouse/clickhouse-odbc#configuration)
* Data Connectivity mode — DirectQuery

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_connect_db.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=69f639996bf6e0657dda9ecef24e45cd" alt="Диалог подключения ClickHouse с полями Host, Port, Database и режимом подключения" border width="694" height="364" data-path="images/integrations/data-visualization/powerbi_connect_db.webp" />

<br />

<Note>
  Мы рекомендуем выбрать DirectQuery для выполнения запросов напрямую к ClickHouse.

  Если в вашем сценарии используется небольшой объем данных, можно выбрать режим импорта, и тогда все данные будут загружены в Power BI.
</Note>

* Укажите имя пользователя и пароль

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_connect_user.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=54dbf636166c904735a663e477812894" alt="Диалог учетных данных подключения ClickHouse для имени пользователя и пароля" border width="700" height="276" data-path="images/integrations/data-visualization/powerbi_connect_user.webp" />

<br />

<div id="query-and-visualise-data">
  ### Запрос и визуализация данных
</div>

Наконец, в представлении Navigator должны отображаться базы данных и таблицы. Выберите нужную таблицу и нажмите "Load", чтобы
импортировать данные из ClickHouse.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_table_navigation.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=20550f1a5539ba249e79c65ee49c0f55" alt="Окно Navigator в Power BI, в котором показаны таблицы базы данных ClickHouse и примеры данных" border width="873" height="691" data-path="images/integrations/data-visualization/powerbi_table_navigation.webp" />

<br />

После завершения импорта данные ClickHouse будут доступны в Power BI как обычно.

<br />

<div id="power-bi-service">
  ## Power BI Service
</div>

Чтобы использовать Microsoft Power BI Service, необходимо создать [локальный шлюз данных](https://learn.microsoft.com/en-us/power-bi/connect-data/service-gateway-onprem).

Подробнее о настройке Custom Connectors см. в документации Microsoft: [использование пользовательских коннекторов данных с локальным шлюзом данных](https://learn.microsoft.com/en-us/power-bi/connect-data/service-gateway-custom-connectors).

<div id="odbc-driver-import-only">
  ## Драйвер ODBC (только импорт)
</div>

Мы рекомендуем использовать коннектор ClickHouse с DirectQuery.

Установите [драйвер ODBC](#install-the-odbc-driver) на экземпляр локального шлюза данных и [проверьте](#verify-odbc-driver) его, как описано выше.

<div id="create-a-new-user-dsn">
  ### Создайте новый User DSN
</div>

После завершения установки драйвера можно создать источник данных ODBC. Найдите ODBC в меню «Пуск» и выберите "ODBC Data Sources (64-bit)".

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_odbc_search.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=f60cfc405ca82d22b0e4e72365d3f686" alt="Поиск Windows с вариантом ODBC Data Sources (64-bit)" border width="826" height="676" data-path="images/integrations/data-visualization/powerbi_odbc_search.webp" />

<br />

Здесь нужно добавить новый User DSN. Нажмите кнопку "Add" слева.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_add_dsn.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=05a20f28cc3d7377eea80de3ef9477cc" alt="Администратор источников данных ODBC с выделенной кнопкой Add для создания нового DSN" border width="585" height="420" data-path="images/integrations/data-visualization/powerbi_add_dsn.webp" />

<br />

Выберите версию ODBC-драйвера с поддержкой Unicode.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_select_unicode.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=15161c77369c7331426209d92f01d41f" alt="Диалог Create New Data Source с выбранным ClickHouse Unicode Driver" border width="458" height="353" data-path="images/integrations/data-visualization/powerbi_select_unicode.webp" />

<br />

Заполните сведения о подключении.

<Image size="sm" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_connection_details.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=2f84a4dc9dd1bfbd12eeeb5a37c26318" alt="Диалог настройки ODBC-драйвера ClickHouse с параметрами подключения" border width="288" height="441" data-path="images/integrations/data-visualization/powerbi_connection_details.webp" />

<br />

<Note>
  Если вы используете развертывание с включенным SSL (например, ClickHouse Cloud или самоуправляемый экземпляр), в поле `SSLMode` следует указать `require`.

  * В `Host` протокол указывать не нужно (то есть без `http://` или `https://`).
  * `Timeout` — целое число в секундах. Значение по умолчанию: `30 секунд`.
</Note>

<div id="get-data-into-power-bi">
  ### Загрузка данных в Power BI
</div>

Если у вас еще не установлен Power BI,
[скачайте и установите Power BI Desktop](https://www.microsoft.com/en-us/download/details.aspx?id=58494).

На стартовом экране Power BI Desktop нажмите "Get Data".

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_get_data.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=b44629c65c82c46728c4d2a1d7d2b726" alt="Главный экран Power BI Desktop с кнопкой Get Data" border width="1916" height="968" data-path="images/integrations/data-visualization/powerbi_get_data.webp" />

<br />

Выберите "Other" -> "ODBC".

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_select_odbc.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=feea92ddf39006c1f4e3462753d6d20c" alt="Диалог Get Data в Power BI с выбранным пунктом ODBC в категории Other" border width="590" height="648" data-path="images/integrations/data-visualization/powerbi_select_odbc.webp" />

<br />

Выберите из списка ранее созданный источник данных.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_select_dsn.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=c1afeb52503023dec44ed975eb178aa1" alt="Диалог выбора драйвера ODBC с настроенным ClickHouse DSN" border width="697" height="216" data-path="images/integrations/data-visualization/powerbi_select_dsn.webp" />

<br />

<Note>
  Если при создании источника данных вы не указали учетные данные, вам будет предложено ввести имя пользователя и пароль.
</Note>

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_dsn_credentials.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=7c2ebdc5e8441109be722803bdd7d98d" alt="Диалог учетных данных для подключения к ODBC DSN" border width="697" height="342" data-path="images/integrations/data-visualization/powerbi_dsn_credentials.webp" />

<br />

В результате вы должны увидеть базы данных и таблицы в представлении Navigator. Выберите нужную таблицу и нажмите "Load", чтобы импортировать данные из ClickHouse.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_table_navigation.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=20550f1a5539ba249e79c65ee49c0f55" alt="Представление Navigator в Power BI с таблицами базы данных ClickHouse и примером данных" border width="873" height="691" data-path="images/integrations/data-visualization/powerbi_table_navigation.webp" />

<br />

После завершения импорта данные ClickHouse будут доступны в Power BI как обычно.

<div id="optimizing-work-with-large-datasets">
  ## Оптимизация работы с большими наборами данных
</div>

PowerBI рассчитан на традиционные построчные базы данных с умеренными объёмами данных. При работе с ClickHouse в большом масштабе (миллиарды строк) для достижения оптимальной производительности требуются определённые архитектурные подходы.

PowerBI автоматически генерирует SQL-запросы с вложенными подзапросами, сложными JOIN и преобразованиями на лету. Такие конструкции хорошо работают в традиционных SQL-базах данных, но могут быть неэффективны при запросах к крупным колоночным базам данных, таким как ClickHouse.

**Рекомендуемый подход для больших наборов данных:** вместо прямых запросов к исходным таблицам создавайте в ClickHouse отдельные `materialized view` для каждой визуализации на панели мониторинга. Это даёт:

* Стабильно высокую производительность независимо от объёма данных
* Меньшую нагрузку на ваш кластер ClickHouse
* Более предсказуемые затраты

<Warning>
  Если ваши панели мониторинга работают медленно, проверьте ClickHouse [`query_log`](/ru/reference/system-tables/query_log), чтобы понять, какие SQL-запросы Power BI фактически выполняет. Среди типичных проблем — вложенные подзапросы, сканирование таблиц целиком и неэффективные JOIN. Определив причину, создайте [materialized view](/ru/concepts/features/materialized-views/index), которые устраняют именно эти проблемы.
</Warning>

<div id="implementation-best-practices">
  ### Рекомендации по реализации
</div>

<div id="pre-aggregation-strategy">
  #### Стратегия предварительной агрегации
</div>

Создайте materialized view для нескольких уровней агрегации:

* Почасовые агрегации для детализированных панелей мониторинга за недавний период
* Ежедневные агрегации для исторических тенденций
* Ежемесячные rollup-агрегации для долгосрочной отчетности
* Храните сырые данные с подходящим TTL для разового анализа по запросу

<div id="data-modelling-optimization">
  #### Оптимизация моделирования данных
</div>

* Определяйте ключи `ORDER BY` в соответствии с шаблонами запросов
* Используйте партиционирование для временных рядов
* Преобразуйте небольшие таблицы-измерения в словари для эффективного поиска по ключу
* Используйте проекции для дополнительной оптимизации запросов

<div id="known-limitations">
  ## Известные ограничения
</div>

<div id="uint64">
  ### UInt64
</div>

Беззнаковые целочисленные типы, такие как UInt64 и выше, не загружаются в набор данных автоматически, поскольку Int64 — это максимальный целочисленный тип, поддерживаемый Power BI.

<Note>
  Чтобы корректно импортировать данные, перед нажатием кнопки "Load" в Navigator сначала нажмите "Transform Data".
</Note>

В этом примере в таблице `pageviews` есть столбец UInt64, который по умолчанию распознаётся как "Binary".
"Transform Data" открывает Power Query Editor, где можно переназначить тип столбца, задав, например,
Text.

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-detect-table-modification/svLCKm9RWi4jibqG/images/integrations/data-visualization/powerbi_16.webp?fit=max&auto=format&n=svLCKm9RWi4jibqG&q=85&s=ffc495fc71bc4ac22ad1a3ede913d172" alt="Power Query Editor с преобразованием типа данных для столбца UInt64" border width="1203" height="863" data-path="images/integrations/data-visualization/powerbi_16.webp" />

<br />

После этого нажмите "Close & Apply" в левом верхнем углу и продолжите загрузку данных.
