Se você estiver usando o ClickHouse Cloud no Google Cloud, esta página não se aplica, pois seus serviços já usam o Google Cloud Storage. Se você quiser fazer
SELECT ou INSERT de dados do GCS, consulte a função de tabela gcs.MergeTree com armazenamento em GCS
Criando um disco
conf.d. Um exemplo de declaração de um disco GCS é mostrado abaixo. Esta configuração inclui várias seções para configurar o “disco” GCS, o cache e a política especificada nas consultas DDL quando as tabelas forem criadas no disco GCS. Cada uma delas é descrita abaixo.
Configuração de armazenamento > disks > gcs
- O tipo do disco é
s3, porque a API S3 está em uso. - O endpoint fornecido pelo GCS
- A chave HMAC e o segredo da conta de serviço
- O caminho dos metadados no disco local
Configuração de armazenamento > disks > cache
gcs.
Configuração de armazenamento > políticas > gcs_main
gcs ao especificar a política gcs_main. Por exemplo, CREATE TABLE ... SETTINGS storage_policy='gcs_main'.
Criando uma tabela
insert de 1m de linhas pode levar alguns minutos para ser executada. Você pode acompanhar o progresso por meio da tabela system.processes. Sinta-se à vontade para ajustar a contagem de linhas até o limite de 10m e explorar algumas consultas de exemplo.
Como lidar com a replicação
ReplicatedMergeTree. Consulte o guia replicando um único shard em duas regiões do GCP usando GCS para mais detalhes.
Saiba mais
Usando Google Cloud Storage (GCS)
Planeje a implantação
- Dois nós do servidor ClickHouse, em duas regiões do GCP
- Dois buckets do GCS, implantados nas mesmas regiões dos dois nós do servidor ClickHouse
- Três nós do ClickHouse Keeper, dois deles implantados nas mesmas regiões dos nós do servidor ClickHouse. O terceiro pode ficar na mesma região de um dos dois primeiros nós do Keeper, mas em uma zona de disponibilidade diferente.
Preparar máquinas virtuais
* Pode ser uma zona de disponibilidade diferente na mesma região que a 1 ou a 2.
Implantar o ClickHouse
chnode1 e chnode2.
Coloque o chnode1 em uma região do GCP e o chnode2 em outra. Neste guia, us-east1 e us-east4 são usados para as VMs do Compute Engine e também para os buckets do GCS.
Não inicie o
clickhouse server antes de configurá-lo. Apenas instale-o.Implantar o ClickHouse Keeper
keepernode1, keepernode2 e keepernode3. O keepernode1 pode ser implantado na mesma região que o chnode1, o keepernode2 junto com o chnode2, e o keepernode3 em qualquer uma das regiões, mas em uma zona de disponibilidade diferente da do nó do ClickHouse nessa região.
Consulte as instruções de instalação ao executar as etapas de implantação nos nós do ClickHouse Keeper.
Criar dois buckets
us-east1 e us-east4. Os buckets são de região única, com classe de armazenamento padrão, e não são públicos. Quando solicitado, ative a prevenção de acesso público. Não crie pastas; elas serão criadas quando o ClickHouse gravar no armazenamento.
Se precisar de instruções passo a passo para criar buckets e uma chave HMAC, expanda Criar buckets do GCS e uma chave HMAC e siga as instruções:
Criar buckets do GCS e uma chave HMAC
Criar buckets do GCS e uma chave HMAC
ch_bucket_us_east1
ch_bucket_us_east4
Gerar uma chave de acesso
Criar uma chave HMAC e um segredo de conta de serviço
Abra Cloud Storage > Settings > Interoperability e escolha uma Access key existente ou CREATE A KEY FOR A SERVICE ACCOUNT. Este guia aborda o processo de criação de uma nova chave para uma nova conta de serviço.Adicionar uma nova conta de serviço
Se este for um projeto sem nenhuma conta de serviço existente, clique em CREATE NEW ACCOUNT.Há três etapas para criar a conta de serviço. Na primeira, dê à conta um nome, ID e descrição significativos.Na caixa de diálogo das configurações de Interoperability, a IAM role Storage Object Admin é recomendada; selecione essa função na segunda etapa.A terceira etapa é opcional e não é usada neste guia. Você pode permitir que usuários tenham esses privilégios de acordo com suas políticas.A chave HMAC da conta de serviço será exibida. Salve essas informações, pois elas serão usadas na configuração do ClickHouse.Configurar o ClickHouse Keeper
server_id (a primeira linha destacada abaixo). Modifique o arquivo com os hostname dos seus servidores ClickHouse Keeper e, em cada servidor, defina o server_id para corresponder à entrada server adequada em raft_configuration. Como, neste exemplo, o server_id está definido como 3, destacamos as linhas correspondentes em raft_configuration.
- Edite o arquivo com os hostname e certifique-se de que eles possam ser resolvidos a partir dos nós do servidor ClickHouse e dos nós do Keeper
- Copie o arquivo para o local correto (
/etc/clickhouse-keeper/keeper_config.xmlem cada um dos servidores Keeper) - Edite o
server_idem cada máquina com base no número da respectiva entrada emraft_configuration
/etc/clickhouse-keeper/keeper_config.xml
Configurar o servidor ClickHouse
prática recomendadaAlgumas etapas deste guia solicitarão que você coloque um arquivo de configuração em
/etc/clickhouse-server/config.d/. Este é o local padrão em sistemas Linux para arquivos de substituição da configuração. Quando você colocar esses arquivos nesse diretório, o ClickHouse mesclará o conteúdo com a configuração padrão. Ao colocar esses arquivos no diretório config.d, você evitará perder sua configuração durante uma atualização.Rede
/etc/clickhouse-server/config.d/network.xml
Servidores remotos do ClickHouse Keeper
- Edite os hostnames para corresponder aos hosts do seu Keeper
/etc/clickhouse-server/config.d/use-keeper.xml
Servidores remotos do ClickHouse
replace="true" é adicionada à entrada remote_servers, de modo que, quando essa configuração for combinada com a padrão, ela substitua a seção remote_servers em vez de ser acrescentada a ela.
- Edite o arquivo com seus hostnames e certifique-se de que eles possam ser resolvidos a partir dos nós do servidor ClickHouse
/etc/clickhouse-server/config.d/remote-servers.xml
Identificação da réplica
replica_1 e, no outro, como replica_2. Os nomes podem ser alterados; com base no nosso exemplo de uma réplica armazenada na Carolina do Sul e a outra no norte da Virgínia, os valores poderiam ser carolina e virginia; apenas certifique-se de que eles sejam diferentes em cada máquina.
/etc/clickhouse-server/config.d/macros.xml
Armazenamento no GCS
disks e policies. O disco configurado abaixo se chama gcs e é do type s3. O tipo é s3 porque o ClickHouse acessa o bucket do GCS como se fosse um bucket do S3 da AWS. Serão necessárias duas cópias dessa configuração, uma para cada nó do servidor ClickHouse.
As substituições a seguir devem ser feitas na configuração abaixo.
Estas substituições diferem entre os dois nós do servidor ClickHouse:
REPLICA 1 BUCKETdeve ser definido como o nome do bucket na mesma região do servidorREPLICA 1 FOLDERdeve ser alterado parareplica_1em um dos servidores e parareplica_2no outro
access_key_iddeve ser definido como a chave HMAC gerada anteriormentesecret_access_keydeve ser definido como o segredo HMAC gerado anteriormente
/etc/clickhouse-server/config.d/storage.xml
Inicie o ClickHouse Keeper
Verifique o status do ClickHouse Keeper
netcat. Por exemplo, mntr retorna o estado do cluster do ClickHouse Keeper. Se você executar o comando em cada um dos nós do Keeper, verá que um deles é o líder e os outros dois são seguidores:
Inicie o servidor ClickHouse
chnode1 e chnode, execute:
Verificação
Verifique a configuração dos discos
system.disks deve conter entradas para cada disco:
- default
- gcs
- cache
Verifique se as tabelas criadas no cluster existem em ambos os nós
Verifique se é possível inserir dados
Verifique se a política de armazenamento gcs_main está sendo usada pela tabela.
Verifique no console do Google Cloud
storage.xml. Expanda as pastas e você verá vários arquivos, que representam as partições de dados.