> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Подключите ProbeDeck на iOS или iPadOS к ClickHouse Cloud или самоуправляемому серверу ClickHouse.

# Подключение ProbeDeck к ClickHouse

export const CommunityMaintainedBadge = () => {
  return <div className="CommunityMaintainedBadge">
            <div className="CommunityMaintainedIcon">
            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256">
                <path d="M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z"></path>
            </svg>
        </div>
            Поддерживается сообществом
        </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>;
};

<CommunityMaintainedBadge />

ProbeDeck — клиент для iOS и iPadOS, предназначенный для проверки работоспособности сервера ClickHouse, просмотра
таблиц `system` и выполнения SQL. Он подключается к HTTP-интерфейсу ClickHouse через сеть устройства
или SSH-бастион; промежуточный сервер не требуется.

<div id="before-you-begin">
  ## Перед началом работы
</div>

* Установите [ProbeDeck из App Store](https://apps.apple.com/app/id6791261174).
* Используйте iOS или iPadOS версии 17.0 или новее.
* Разрешите устройству подключаться к конечной точке ClickHouse по HTTP или HTTPS через сеть, VPN или
  SSH-бастион.
* Создайте пользователя ClickHouse с доступом к базам данных, к которым вы хотите выполнять запросы.
* Предоставьте пользователю доступ `SELECT` к соответствующим таблицам `system` для мониторинга.

| ProbeDeck              | ClickHouse Cloud | Самоуправляемый ClickHouse                   | Примечания                                                                                                                                                    |
| ---------------------- | ---------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Версия 1.1.7 или новее | Текущий сервис   | Нет фиксированной минимальной версии сервера | Использует интерфейс HTTP(S). Проверьте подключение и убедитесь, что каждый раздел мониторинга доступен в вашей версии сервера и с назначенными привилегиями. |

Некоторые разделы мониторинга зависят от необязательных таблиц логов или более новых системных таблиц. Например,
`system.server_settings`, которую ProbeDeck использует для определения настроенного ограничения памяти, требует ClickHouse
версии 23.3 или новее. ProbeDeck помечает затронутый раздел как ограниченный, если его источник недоступен.

<div id="how-it-works">
  ## Как это работает
</div>

1. ProbeDeck отправляет SQL-запросы к конечной точке ClickHouse по HTTP(S).
2. Он считывает данные мониторинга из таблиц `system`, используя настроенного пользователя ClickHouse.
3. Приложение отображает на устройстве результаты запросов и представления мониторинга. Если с устройства нет прямого маршрута к конечной точке, SSH-бастион может туннелировать то же HTTP(S)-соединение.

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

<Steps>
  <Step title="Получите сведения о подключении к сервису" id="gather-cloud-details">
    В консоли ClickHouse Cloud откройте сервис, выберите **Connect**, затем **HTTPS**.

    Чтобы подключиться к ClickHouse по HTTP(S), вам понадобится следующая информация:

    | Параметр(ы)               | Описание                                                                                                               |
    | ------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
    | `HOST` and `PORT`         | Обычно используется порт 8443 при использовании TLS и 8123 без TLS.                                                    |
    | `DATABASE NAME`           | По умолчанию есть база данных `default`; используйте имя базы данных, к которой хотите подключиться.                   |
    | `USERNAME` and `PASSWORD` | По умолчанию имя пользователя — `default`. Используйте имя пользователя, подходящее для вашего сценария использования. |

    Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud.
    Выберите сервис и нажмите **Connect**:

    <div className="ch-image-md">
      <Frame>
        <img src="https://mintcdn.com/private-7c7dfe99/EDr8ydtGBgFPOQea/images/_snippets/cloud-connect-button.webp?fit=max&auto=format&n=EDr8ydtGBgFPOQea&q=85&s=97d6a020a443f1b365b017488b39d0c8" alt="Кнопка подключения сервиса ClickHouse Cloud" width="998" height="932" data-path="images/_snippets/cloud-connect-button.webp" />
      </Frame>
    </div>

    Выберите **HTTPS**. Сведения о подключении будут показаны в примере команды `curl`.

    <div className="ch-image-md">
      <Frame>
        <img src="https://mintcdn.com/private-7c7dfe99/EDr8ydtGBgFPOQea/images/_snippets/connection-details-https.webp?fit=max&auto=format&n=EDr8ydtGBgFPOQea&q=85&s=80369fc90cd1ac3108fe455f2426c19a" alt="Сведения о подключении к ClickHouse Cloud по HTTPS" width="1320" height="1184" data-path="images/_snippets/connection-details-https.webp" />
      </Frame>
    </div>

    Если вы используете самоуправляемый ClickHouse, сведения о подключении задаёт ваш администратор ClickHouse.
  </Step>

  <Step title="Добавьте подключение в ProbeDeck" id="add-cloud-connection">
    1. На экране **Connections** нажмите **+**.
    2. Введите имя подключения и хост без `https://`.
    3. Укажите `8443` в поле **Port** и включите **TLS**.
    4. Введите имя пользователя и пароль базы данных из диалогового окна **Connect**. Имя базы данных
       указывать необязательно.
    5. Нажмите **Test Connection**. После успешной проверки ProbeDeck отобразит версию сервера и время
       выполнения полного запроса и ответа.
    6. Нажмите **Save**.

    ProbeDeck использует эти учетные данные базы данных для аутентификации SQL-запросов к конечной точке сервиса.
    ClickHouse Cloud использует ключи уровня организации со страницы **API Keys** для Cloud API и
    эндпоинтов Query API. При SQL-подключении ProbeDeck эти ключи не используются.

    <Image img="https://mintcdn.com/private-7c7dfe99/-GwTwl23hJZldEaZ/images/integrations/sql-clients/probedeck-add-connection.png?fit=max&auto=format&n=-GwTwl23hJZldEaZ&q=85&s=ced2eba375eed25880131fd1be03bf23" size="sm" border alt="Форма подключения ProbeDeck, настроенная для HTTPS на порту 8443 с именем пользователя ClickHouse" width="1320" height="2160" data-path="images/integrations/sql-clients/probedeck-add-connection.png" />
  </Step>
</Steps>

<div id="connect-to-self-hosted-clickhouse">
  ## Подключение к самоуправляемому ClickHouse
</div>

<Steps>
  <Step title="Выберите конечную точку HTTP" id="choose-self-hosted-endpoint">
    Используйте порт `8123` для стандартного незашифрованного HTTP-интерфейса. Для HTTPS включите **TLS** и используйте
    порт, настроенный на сервере; часто используется `8443`.

    <Note>
      Порты `9000` и `9440` используются нативным протоколом ClickHouse. ProbeDeck использует HTTP(S)-
      интерфейс, поэтому укажите HTTP-порт сервера.
    </Note>
  </Step>

  <Step title="Добавьте и проверьте подключение" id="add-self-hosted-connection">
    1. На экране **Connections** нажмите **+**.
    2. Введите хост сервера без схемы URL.
    3. Укажите HTTP(S)-порт и включите или отключите TLS.
    4. Введите имя пользователя ClickHouse, пароль и при необходимости базу данных.
    5. Нажмите **Test Connection**, затем **Save**.

    При подключении к серверу в локальной сети iOS может запросить разрешение на доступ к локальной сети. Если конечная точка доступна только из корпоративной сети, сначала подключите устройство к VPN.
  </Step>
</Steps>

<div id="connect-through-an-ssh-bastion">
  ## Подключение через SSH-бастион
</div>

Включите **SSH Tunnel** в форме подключения и укажите:

1. Хост бастиона и SSH-порт (по умолчанию `22`).
2. Имя пользователя SSH.
3. Пароль SSH или закрытый ключ.

ProbeDeck открывает SSH-канал `direct-tcpip` от бастиона к хосту ClickHouse и HTTP(S)-
порту, указанному в разделе **Server**. При первом подключении перед подтверждением сравните SHA-256-отпечаток ключа хоста бастиона
со значением, полученным от администратора сервера.

<div id="configure-authentication-and-tls">
  ## Настройка аутентификации и TLS
</div>

ProbeDeck передаёт имя пользователя и пароль базы данных в заголовках запроса `X-ClickHouse-User` и
`X-ClickHouse-Key`. Учётные данные в URL не передаются.

Для взаимного TLS включите **TLS Client Certificate**, импортируйте файл PKCS#12 (`.p12`), содержащий
сертификат клиента и закрытый ключ, а затем введите парольную фразу.

Когда самоуправляемая конечная точка использует самоподписанный сертификат или сертификат, выданный частным
CA, ProbeDeck отображает его SHA-256-отпечаток, издателя, subject и срок действия. Сравните
отпечаток со значением, полученным от администратора сервера, прежде чем принять сертификат. ProbeDeck сохраняет
это решение для данного соединения; при изменении сертификата соединение будет заблокировано, пока вы не проверите его.

ProbeDeck хранит секреты соединения и импортированный ключевой материал в связке ключей iOS на устройстве.

<div id="monitor-clickhouse">
  ## Мониторинг ClickHouse
</div>

Откройте сохранённое подключение и выберите **Мониторинг**. На панели мониторинга представлены следующие источники:

| Область                                                              | Источник ClickHouse                                                       |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| Выполняющиеся запросы, время выполнения, память и прочитанные строки | `system.processes`                                                        |
| Состояние репликации и очередь                                       | `system.replicas`, `system.replication_queue`                             |
| Диски, части и слияния                                               | `system.disks`, `system.parts`, `system.merges`                           |
| Мутации                                                              | `system.mutations`                                                        |
| Метрики памяти и сервера                                             | `system.metrics`, `system.asynchronous_metrics`, `system.server_settings` |
| Исторические скорости запросов и диска                               | `system.metric_log`, `system.asynchronous_metric_log`                     |

<Image img="https://mintcdn.com/private-7c7dfe99/-GwTwl23hJZldEaZ/images/integrations/sql-clients/probedeck-dashboard.png?fit=max&auto=format&n=-GwTwl23hJZldEaZ&q=85&s=e139ac9115a93bbcbca9d344d8c94534" size="sm" border alt="Панель мониторинга ProbeDeck с выполняющимися запросами, репликацией, дисками, частями, мутациями, слияниями, скоростью запросов и памятью" width="1320" height="2868" data-path="images/integrations/sql-clients/probedeck-dashboard.png" />

Нажмите **Выполняющиеся запросы**, чтобы отсортировать активные запросы по времени выполнения и просмотреть использование памяти и количество прочитанных строк.

<Image img="https://mintcdn.com/private-7c7dfe99/-GwTwl23hJZldEaZ/images/integrations/sql-clients/probedeck-running-queries.png?fit=max&auto=format&n=-GwTwl23hJZldEaZ&q=85&s=b9e6312428cebde1a446e469a702dde4" size="sm" border alt="Список выполняющихся запросов ProbeDeck, отсортированный по времени выполнения" width="1320" height="2868" data-path="images/integrations/sql-clients/probedeck-running-queries.png" />

<div id="query-the-uk-property-price-dataset">
  ## Выполнение запроса к набору данных о ценах на недвижимость в Великобритании
</div>

В этом примере используется [набор данных о ценах на недвижимость в Великобритании](/docs/ru/get-started/sample-datasets/uk-price-paid).
Загрузите набор данных в `uk_price_paid`, затем:

1. Откройте подключение и выберите **Данные**.
2. Откройте редактор SQL.
3. Выполните этот ограниченный запрос только для чтения:

```sql theme={null}
SELECT
    town,
    count() AS sales,
    round(avg(price)) AS average_price
FROM uk_price_paid
GROUP BY town
ORDER BY sales DESC
LIMIT 10
```

Результат должен содержать десять городов с количеством транзакций и средними ценами.

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

* ProbeDeck работает на iOS и iPadOS версии 17.0 и новее.
* Бесплатные пользователи могут сохранять только одно подключение. При его удалении слот освобождается; ProbeDeck Pro позволяет
  сохранять неограниченное количество подключений.
* Поддерживается интерфейс ClickHouse HTTP(S), но не собственный протокол.
* ProbeDeck загружает результаты SQL постранично, по 200 строк, и ограничивает каждый запрос 10 000 строками. Для больших таблиц используйте
  избирательное условие `WHERE` и `LIMIT`.
* Доступность раздела Monitoring зависит от привилегий пользователя ClickHouse и наличия необязательных таблиц логов.
* Устройство должно иметь маршрут к конечной точке через сеть, VPN или встроенный SSH-туннель.
* Monitoring и SQL в режиме только для чтения не требуют покупки в приложении. `KILL QUERY`, `KILL MUTATION`,
  операторы записи, DDL-операторы и другие операционные действия требуют ProbeDeck Pro.

<div id="troubleshooting">
  ## Устранение неполадок
</div>

<Accordion title="Ошибка аутентификации">
  Ещё раз скопируйте имя пользователя и пароль базы данных. Для конечной точки сервиса ClickHouse Cloud используйте
  учётные данные базы данных из диалогового окна **Connect** сервиса. Не используйте вместо них ключ организации
  со страницы **API Keys** в ClickHouse Cloud.
</Accordion>

<Accordion title="В подключении отказано или истекло время ожидания">
  Убедитесь, что устройство может подключиться к хосту по HTTP(S)-порту. Проверьте IP Access List Cloud, VPN,
  межсетевой экран и сопоставление портов. Не используйте порты собственного протокола `9000` или `9440`.
</Accordion>

<Accordion title="Monitoring показывает ограниченные разрешения">
  Пользователь ClickHouse не может читать одну или несколько необходимых таблиц `system`. Запросите у администратора сервера
  минимальные привилегии `SELECT` для нужных вам разделов мониторинга, затем переподключитесь.
</Accordion>

<Accordion title="Отпечаток TLS изменился">
  Прежде чем принимать новый отпечаток, попросите администратора сервера подтвердить ротацию сертификата.
  Неожиданное изменение может указывать на другую конечную точку или перехват TLS.
</Accordion>

<div id="next-steps">
  ## Следующие шаги
</div>

* Подробные сведения о продукте см. на [сайте ProbeDeck](https://probedeck.app).
* Сведения о конфигурации сервера см. в [документации по HTTP-интерфейсу ClickHouse](/docs/ru/concepts/features/interfaces/http).
