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

> Usando o ClickHouse Connector Sink com Kafka Connect e ClickHouse

# Integrando a Confluent Platform ao ClickHouse

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>;
};

<div class="vimeo-container">
  <Frame>
    <iframe
      src="//www.youtube.com/embed/SQAiPVbd3gg"
      frameborder="0"
      allow="autoplay;
fullscreen;
picture-in-picture"
      allowfullscreen
    />
  </Frame>
</div>

<div id="prerequisites">
  ## Pré-requisitos
</div>

Partimos do pressuposto de que você já esteja familiarizado com:

* [ClickHouse Connector Sink](/docs/pt-BR/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink)
* Confluent Platform e [Custom Connectors](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/overview.html).

<div id="the-official-kafka-connector-from-clickhouse-with-confluent-platform">
  ## O conector oficial do Kafka da ClickHouse para a Confluent Platform
</div>

<div id="installing-on-confluent-platform">
  ### Instalação no Confluent Platform
</div>

Este é um guia rápido para ajudar você a começar a usar o ClickHouse Sink Connector no Confluent Platform.
Para mais detalhes, consulte a [documentação oficial da Confluent](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/custom-connector-qs.html#uploading-and-launching-the-connector).

<div id="create-a-topic">
  #### Criar um tópico
</div>

Criar um tópico na Confluent Platform é bastante simples, e há instruções detalhadas [aqui](https://docs.confluent.io/cloud/current/client-apps/topics/manage.html).

<div id="important-notes">
  #### Observações importantes
</div>

* O nome do tópico do Kafka deve ser o mesmo da tabela do ClickHouse. A forma de ajustar isso é usando um transformador (por exemplo, [`ExtractTopic`](https://docs.confluent.io/platform/current/connect/transforms/extracttopic.html)).
* Mais partições nem sempre significam mais desempenho — consulte nosso próximo guia para mais detalhes e dicas de performance.

<div id="install-connector">
  #### Instalar o conector
</div>

Você pode baixar o conector em nosso [repositório](https://github.com/ClickHouse/clickhouse-kafka-connect/releases) — sinta-se à vontade para enviar comentários e relatar problemas por lá também!

Navegue até "Connector Plugins" -> "Add plugin" e use as seguintes configurações:

```text theme={null}
'Connector Class' - 'com.clickhouse.kafka.connect.ClickHouseSinkConnector'
'Connector type' - Sink
'Sensitive properties' - 'password'. This will ensure entries of the ClickHouse password are masked during configuration.
```

Exemplo:

<Image img="https://mintcdn.com/private-7c7dfe99/pIetLsS_hOGHqoPJ/images/integrations/data-ingestion/kafka/confluent/AddCustomConnectorPlugin.webp?fit=max&auto=format&n=pIetLsS_hOGHqoPJ&q=85&s=5fdb90da6ed384d7e4560bce54acf8ee" size="md" alt="IU da Confluent Platform mostrando as configurações para adicionar um conector ClickHouse personalizado" border width="552" height="850" data-path="images/integrations/data-ingestion/kafka/confluent/AddCustomConnectorPlugin.webp" />

<div id="gather-your-connection-details">
  #### Reúna os detalhes da conexão
</div>

Para se conectar ao ClickHouse via HTTP(S), você precisa das seguintes informações:

| Parâmetro(s)              | Descrição                                                                                                         |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `HOST` and `PORT`         | Normalmente, a porta é 8443 ao usar TLS ou 8123 quando não se usa TLS.                                            |
| `DATABASE NAME`           | Por padrão, há um banco de dados chamado `default`; use o nome do banco de dados ao qual você deseja se conectar. |
| `USERNAME` and `PASSWORD` | Por padrão, o nome de usuário é `default`. Use o nome de usuário apropriado para o seu caso de uso.               |

Os detalhes do seu serviço do ClickHouse Cloud estão disponíveis no console do ClickHouse Cloud.
Selecione um serviço e clique em **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="botão Connect do serviço do ClickHouse Cloud" width="998" height="932" data-path="images/_snippets/cloud-connect-button.webp" />
  </Frame>
</div>

Escolha **HTTPS**. Os detalhes de conexão são exibidos em um comando `curl` de exemplo.

<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="detalhes de conexão HTTPS do ClickHouse Cloud" width="1320" height="1184" data-path="images/_snippets/connection-details-https.webp" />
  </Frame>
</div>

Se você estiver usando ClickHouse autogerenciado, os detalhes de conexão são definidos pelo administrador do seu ClickHouse.

<div id="configure-the-connector">
  #### Configurar o conector
</div>

Acesse `Connectors` -> `Add Connector` e use as configurações a seguir (observe que os valores são apenas exemplos):

```json theme={null}
{
  "database": "<DATABASE_NAME>",
  "errors.retry.timeout": "30",
  "exactlyOnce": "false",
  "schemas.enable": "false",
  "hostname": "<CLICKHOUSE_HOSTNAME>",
  "password": "<SAMPLE_PASSWORD>",
  "port": "8443",
  "ssl": "true",
  "topics": "<TOPIC_NAME>",
  "username": "<SAMPLE_USERNAME>",
  "key.converter": "org.apache.kafka.connect.storage.StringConverter",
  "value.converter": "org.apache.kafka.connect.json.JsonConverter",
  "value.converter.schemas.enable": "false"
}
```

<div id="specify-the-connection-endpoints">
  #### Especifique os endpoints de conexão
</div>

Você precisa especificar a lista de permissões de endpoints que o conector pode acessar.
Ao adicionar os endpoints de egress da rede, você deve usar um nome de domínio totalmente qualificado (FQDN).
Example: `u57swl97we.eu-west-1.aws.clickhouse.com:8443`

<Note>
  Você deve especificar a porta HTTP(S). O Connector ainda não oferece suporte ao protocolo nativo.
</Note>

[Leia a documentação.](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/custom-connector-qs.html#cc-byoc-endpoints)

Tudo pronto!

<div id="known-limitations">
  #### Limitações conhecidas
</div>

* Os Custom Connectors devem usar endpoints públicos na internet. Endereços IP estáticos não são compatíveis.
* Você pode substituir algumas propriedades dos Custom Connectors. Veja a [lista na documentação oficial.](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/custom-connector-manage.html#override-configuration-properties)
* Os Custom Connectors estão disponíveis apenas em [algumas regiões da AWS](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/custom-connector-fands.html#supported-aws-regions)
* Consulte a lista de [limitações dos Custom Connectors na documentação oficial](https://docs.confluent.io/cloud/current/connectors/bring-your-connector/custom-connector-fands.html#limitations)
