Quanto tempo leva para exportar dados para o ClickHouse?
1
Exportar dados da tabela para o GCS
Nesta etapa, usamos o espaço de trabalho SQL do BigQuery para executar nossos comandos SQL. Abaixo, exportamos uma tabela do BigQuery chamada Na consulta acima, exportamos nossa tabela do BigQuery para o formato de dados Parquet. Também temos um caractere
mytable para um bucket do GCS usando a instrução EXPORT DATA.* no parâmetro uri. Isso garante que a saída seja dividida em vários arquivos, com um sufixo numérico crescente, caso a exportação exceda 1 GB de dados.Essa abordagem tem várias vantagens:- O Google permite exportar até 50 TB por dia para o GCS sem custo. Os usuários pagam apenas pelo armazenamento no GCS.
- As exportações geram vários arquivos automaticamente, limitando cada um a no máximo 1 GB de dados da tabela. Isso é vantajoso para o ClickHouse, pois permite paralelizar as importações.
- O Parquet, por ser um formato orientado a colunas, é uma opção melhor para intercâmbio de dados, já que é compactado por natureza e mais rápido para o BigQuery exportar e para o ClickHouse consultar
2
Importando dados do GCS para o ClickHouse
Quando a exportação for concluída, podemos importar esses dados para uma tabela no ClickHouse. Você pode usar o Console SQL do ClickHouse ou o Após criar a tabela, habilite a configuração Por fim, podemos inserir os dados do GCS em nossa tabela no ClickHouse usando o comando O
clickhouse-client para executar os comandos abaixo.Primeiro, você deve criar sua tabela no ClickHouse:parallel_distributed_insert_select se houver várias réplicas do ClickHouse no cluster, para acelerar o processo de exportação. Se houver apenas um nó do ClickHouse, você pode pular esta etapa:INSERT INTO SELECT, que insere dados em uma tabela com base nos resultados de uma consulta SELECT.Para obter os dados para o INSERT, podemos usar a função s3Cluster para buscar dados do nosso bucket do GCS, já que o GCS é interoperável com o Amazon S3. Se você tiver apenas um nó do ClickHouse, poderá usar a função de tabela s3 em vez da função s3Cluster.ACCESS_ID e o SECRET usados na consulta acima correspondem à sua chave HMAC associada ao seu GCS bucket.Use
ifNull ao exportar colunas anuláveisNa consulta acima, usamos a função ifNull com a coluna some_text para inserir dados na nossa tabela no ClickHouse com um valor padrão. Você também pode definir suas colunas no ClickHouse como Nullable, mas isso não é recomendado, pois pode afetar negativamente o desempenho.Como alternativa, você pode usar SET input_format_null_as_default=1, e todos os valores ausentes ou NULL serão substituídos pelos valores padrão de suas respectivas colunas, se esses padrões estiverem especificados.3
Testando se a exportação de dados foi bem-sucedida
Para testar se seus dados foram inseridos corretamente, basta executar uma consulta Para exportar mais tabelas do BigQuery, basta repetir as etapas acima para cada tabela adicional.
SELECT na sua nova tabela: