> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-home-button.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 Supported
        </div>;
};

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_odbc_install.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=822d081fd75d4cf38e9e8df15901c95a" alt="Мастер установки ODBC-драйвера ClickHouse с вариантами установки" border width="676" height="514" data-path="images/integrations/data-visualization/powerbi_odbc_install.png" />

<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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_odbc_search.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=8eee3fe62a9adb2d0a25e39c4998002a" alt="Поиск Windows с параметром ODBC Data Sources (64-bit)" border width="826" height="676" data-path="images/integrations/data-visualization/powerbi_odbc_search.png" />

<br />

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

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

<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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_get_data.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=32ab2e860f98387baf345b814b6d8d56" alt="Стартовый экран Power BI Desktop с кнопкой Get Data" border width="1916" height="968" data-path="images/integrations/data-visualization/powerbi_get_data.png" />

<br />

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

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

<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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_connect_db.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=435646efab795786e9f921ccc5f61f7b" alt="Диалог подключения ClickHouse с полями Host, Port, Database и режимом подключения" border width="694" height="364" data-path="images/integrations/data-visualization/powerbi_connect_db.png" />

<br />

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

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

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

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

<br />

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

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

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

<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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_odbc_search.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=8eee3fe62a9adb2d0a25e39c4998002a" alt="Поиск Windows с вариантом ODBC Data Sources (64-bit)" border width="826" height="676" data-path="images/integrations/data-visualization/powerbi_odbc_search.png" />

<br />

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

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

<br />

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

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

<br />

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

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

<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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_get_data.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=32ab2e860f98387baf345b814b6d8d56" alt="Главный экран Power BI Desktop с кнопкой Get Data" border width="1916" height="968" data-path="images/integrations/data-visualization/powerbi_get_data.png" />

<br />

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

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

<br />

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

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

<br />

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

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

<br />

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

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

<br />

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

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

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

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

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

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

<Warning>
  Если ваши панели мониторинга работают медленно, проверьте ClickHouse [`query_log`](/ru/reference/system-tables/query_log), чтобы понять, какие SQL-запросы Power BI фактически выполняет. Среди типичных проблем — вложенные подзапросы, сканирование таблиц целиком и неэффективные JOIN. Определив причину, создайте [materialized views](/ru/concepts/features/materialized-views), которые устраняют именно эти проблемы.
</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-home-button/8vRlAzTPu3QtBgl8/images/integrations/data-visualization/powerbi_16.png?fit=max&auto=format&n=8vRlAzTPu3QtBgl8&q=85&s=bf258481523e9b9938a7de299eb7ca08" alt="Power Query Editor с преобразованием типа данных для столбца UInt64" border width="1203" height="863" data-path="images/integrations/data-visualization/powerbi_16.png" />

<br />

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