> ## 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.

> Embeddable — это инструментарий для разработчиков, предназначенный для создания быстрых, интерактивных, полностью настраиваемых аналитических возможностей прямо в вашем приложении.

# Подключение Embeddable к 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>;
};

<CommunityMaintainedBadge />

В [Embeddable](https://embeddable.com/) вы определяете [Модели данных](https://docs.embeddable.com/data-modeling/introduction) и [Компоненты](https://docs.embeddable.com/development/introduction) в коде (который хранится в вашем собственном репозитории) и используете наш **SDK**, чтобы сделать их доступными вашей команде в мощном **no-code-конструкторе** Embeddable.

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

Встроенная безопасность на уровне строки означает, что каждый пользователь видит только те данные, которые ему разрешено видеть. А два уровня полностью настраиваемого кэширования позволяют предоставлять быструю аналитику в реальном времени в большом масштабе.

<Steps>
  <Step title="Соберите сведения о подключении" id="1-gather-your-connection-details">
    Чтобы подключиться к 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/CFFsa2agBPbviR4r/images/_snippets/cloud-connect-button.webp?fit=max&auto=format&n=CFFsa2agBPbviR4r&q=85&s=ec0a298a33ca841e947fa5e8bae47362" 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/CFFsa2agBPbviR4r/images/_snippets/connection-details-https.webp?fit=max&auto=format&n=CFFsa2agBPbviR4r&q=85&s=cb0fbd98aa2b5b7ca484c9f53395ee07" alt="Сведения о подключении к ClickHouse Cloud по HTTPS" width="1320" height="1184" data-path="images/_snippets/connection-details-https.webp" />
      </Frame>
    </div>

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

  <Step title="Создайте тип подключения к ClickHouse" id="2-create-a-clickhouse-connection-type">
    Подключение к базе данных добавляется с помощью Embeddable API. Это подключение используется для подключения к вашему сервису ClickHouse. Добавить подключение можно следующим вызовом API:

    ```javascript title="Query" theme={null}
    // из соображений безопасности это *никогда* не должно вызываться на стороне клиента
    fetch('https://api.embeddable.com/api/v1/connections', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        Accept: 'application/json',
        Authorization: `Bearer ${apiKey}` /* храните ваш API Key в безопасности */,
      },
      body: JSON.stringify({
        name: 'my-clickhouse-db',
        type: 'clickhouse',
        credentials: {
          host: 'my.clickhouse.host',
          user: 'clickhouse_user',
          port: 8443,
          password: '*****',
        },
      }),
    });
    ```

    ```text title="Response" theme={null}
    Status 201 { errorMessage: null }
    ```

    Выше показано действие `CREATE`, но доступны все операции `CRUD`.

    `apiKey` можно найти, нажав "**Publish**" на одной из панелей мониторинга Embeddable.

    `name` — это уникальное имя для идентификации этого подключения.

    * По умолчанию ваши модели данных будут искать подключение с именем "default", но вы можете указать в моделях другие имена `data_source`, чтобы разные модели данных подключались к разным подключениям (просто укажите имя data\_source в модели)

    `type` сообщает Embeddable, какой драйвер использовать

    * Здесь следует использовать `clickhouse`, но к одному рабочему пространству Embeddable можно подключить несколько разных источников данных, поэтому вы также можете использовать другие, например: `postgres`, `bigquery`, `mongodb` и т. д.

    `credentials` — это объект JavaScript, содержащий учетные данные, необходимые драйверу

    * Они надежно зашифрованы и используются только для получения именно тех данных, которые вы описали в своих моделях данных.
      Embeddable настоятельно рекомендует создавать отдельного пользователя базы данных с правами только для чтения для каждого подключения (Embeddable будет только читать данные из вашей базы данных, а не записывать их).

    Чтобы поддерживать подключение к разным базам данных для prod, qa, test и т. д. (или использовать разные базы данных для разных клиентов), вы можете назначить каждому подключению окружение (см. [Environments API](https://docs.embeddable.com/data/environments)).
  </Step>
</Steps>
