Organização dos recursos
Organizações
Projetos do BigQuery vs Serviços do ClickHouse Cloud
- Um grupo de nós de computação (atualmente, 2 nós para um serviço da tier Development e 3 para um serviço da tier Production). Para esses nós, o ClickHouse Cloud oferece suporte a escalonamento vertical e horizontal, tanto manual quanto automático.
- Uma pasta de armazenamento de objetos onde o serviço armazena todos os dados.
- Um endpoint (ou vários endpoints criados por meio do Console do ClickHouse Cloud) - uma URL de serviço usada para se conectar ao serviço (por exemplo,
https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443)
Conjuntos de dados do BigQuery vs bancos de dados do ClickHouse Cloud
Pastas do BigQuery
Reservas de slot e cotas do BigQuery
Permissões
Tipos de dados
INT64, NUMERIC, BIGNUMERIC e FLOAT64. Em contrapartida, o ClickHouse oferece vários níveis de precisão para decimais, floats e inteiros. Com esses tipos de dados, você pode otimizar o uso de armazenamento e memória, resultando em consultas mais rápidas e menor consumo de recursos. Abaixo, mapeamos o tipo equivalente no ClickHouse para cada tipo do BigQuery:
Técnicas de aceleração de consultas
No BigQuery, uma tabela pode ter restrições de chave primária e chave estrangeira. Em geral, chaves primárias e estrangeiras são usadas em bancos de dados relacionais para garantir a integridade dos dados. O valor de uma chave primária normalmente é único para cada linha e não é
NULL. Cada valor de chave estrangeira em uma linha deve estar presente na coluna de chave primária da tabela referenciada ou ser NULL. No BigQuery, essas restrições não são aplicadas, mas o otimizador de consultas pode usar essas informações para otimizar ainda mais as consultas.
No ClickHouse, uma tabela também pode ter uma chave primária. Assim como no BigQuery, o ClickHouse não impõe unicidade aos valores da coluna de chave primária de uma tabela. Diferentemente do BigQuery, os dados de uma tabela são armazenados em disco ordenados pelas colunas da chave primária. O otimizador de consultas usa essa ordenação para evitar reordenações, minimizar o uso de memória em junções e permitir encerramento antecipado em cláusulas LIMIT. Diferentemente do BigQuery, o ClickHouse cria automaticamente um índice primário (esparso) com base nos valores das colunas da chave primária. Esse índice é usado para acelerar todas as consultas que contêm filtros nas colunas da chave primária. No momento, o ClickHouse não oferece suporte a restrições de chave estrangeira.
Índices secundários (Disponíveis apenas no ClickHouse)
- Índice de filtro de Bloom:
- Usado para acelerar consultas com condições de igualdade (por exemplo, =, IN).
- Usa estruturas de dados probabilísticas para determinar se um valor existe em um bloco de dados.
- Índice de filtro de Bloom por token:
- Semelhante a um índice de filtro de Bloom, mas usado para strings tokenizadas e adequado para consultas de busca de texto completo.
- Índice min-max:
- Mantém os valores mínimo e máximo de uma coluna para cada parte de dados.
- Ajuda a evitar a leitura de partes de dados que não estejam dentro do intervalo especificado.
Índices de pesquisa
Índices vetoriais
Particionamento
Clustering
Visões materializadas
Consultando visões materializadas
Transações
Funções de agregação
- O BigQuery oferece 18 funções de agregação e 4 funções de agregação aproximadas.
- O ClickHouse tem mais de 150 funções de agregação prontas para uso, além de poderosos combinadores de agregação para estender o comportamento dessas funções. Por exemplo, você pode aplicar essas mais de 150 funções de agregação prontas para uso a arrays em vez de linhas de tabela simplesmente chamando-as com o sufixo -Array. Com o sufixo -Map, você pode aplicar qualquer função de agregação a maps. E, com o sufixo -ForEach, você pode aplicar qualquer função de agregação a arrays aninhados.
Fontes de dados e formatos de arquivo
- O ClickHouse tem suporte nativo para carregar dados em mais de 90 formatos de arquivo a partir de praticamente qualquer fonte de dados
- O BigQuery oferece suporte a 5 formatos de arquivo e 19 fontes de dados
Recursos da linguagem SQL
Arrays
groupArray para transformar (temporariamente) valores de linhas específicas de uma tabela em um array. Depois, esse array pode ser processado convenientemente por meio de funções de array, e o resultado pode ser convertido de volta em linhas individuais da tabela por meio da função arrayJoin.
Como o ClickHouse SQL oferece suporte a funções lambda de ordem superior, muitas operações avançadas com arrays podem ser realizadas simplesmente chamando uma das funções de array integradas de ordem superior, em vez de converter temporariamente arrays de volta em tabelas, como frequentemente é necessário no BigQuery, por exemplo, para filtrar ou combinar arrays. No ClickHouse, essas operações são apenas uma simples chamada às funções de ordem superior arrayFilter e arrayZip, respectivamente.
A seguir, fornecemos um mapeamento das operações de array do BigQuery para o ClickHouse:
Crie um array com um elemento para cada linha em uma subconsulta
BigQuery
função ARRAY
UNNEST
UNNEST
UNNEST
UNNEST