Organización de los recursos
Organizaciones
Proyectos de BigQuery vs. servicios de ClickHouse Cloud
- Un grupo de nodos de cómputo (actualmente, 2 nodos para un servicio del nivel Development y 3 para un servicio del nivel Production). Para estos nodos, ClickHouse Cloud admite el escalado vertical y horizontal, tanto manual como automático.
- Una carpeta de almacenamiento de objetos donde el servicio almacena todos los datos.
- Un endpoint (o varios endpoints creados desde la consola de ClickHouse Cloud) - una URL del servicio que usa para conectarse a él (por ejemplo,
https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443)
Datasets de BigQuery vs bases de datos de ClickHouse Cloud
Carpetas de BigQuery
Reservas de slots y cuotas de BigQuery
Permisos
Tipos de datos
INT64, NUMERIC, BIGNUMERIC and FLOAT64. En contraste, ClickHouse ofrece varios niveles de precisión para decimales, flotantes y enteros. Con estos tipos de datos, puede optimizar el almacenamiento y la sobrecarga de memoria, lo que se traduce en consultas más rápidas y un menor consumo de recursos. A continuación, mostramos el tipo de ClickHouse equivalente para cada tipo de BigQuery:
Técnicas de aceleración de consultas
En BigQuery, una tabla puede tener restricciones de clave primaria y clave externa. Normalmente, las claves primarias y externas se usan en bases de datos relacionales para garantizar la integridad de los datos. El valor de una clave primaria suele ser único para cada fila y no es
NULL. Cada valor de clave externa de una fila debe estar presente en la columna de clave primaria de la tabla referenciada o ser NULL. En BigQuery, estas restricciones no se aplican, pero el optimizador de consultas puede usar esta información para optimizar mejor las consultas.
En ClickHouse, una tabla también puede tener una clave primaria. Al igual que BigQuery, ClickHouse no aplica unicidad a los valores de la columna de clave primaria de una tabla. A diferencia de BigQuery, los datos de una tabla se almacenan en disco ordenados por las columnas de la clave primaria. El optimizador de consultas aprovecha este orden para evitar tener que reordenar los datos, minimizar el uso de memoria en los joins y permitir la finalización anticipada en las cláusulas LIMIT. A diferencia de BigQuery, ClickHouse crea automáticamente un índice primario (disperso) basado en los valores de las columnas de la clave primaria. Este índice se usa para acelerar todas las consultas que contienen filtros sobre las columnas de la clave primaria. Actualmente, ClickHouse no admite restricciones de clave externa.
Índices secundarios (Solo disponibles en ClickHouse)
- Índice de filtro Bloom:
- Se utiliza para acelerar consultas con condiciones de igualdad (p. ej., =, IN).
- Usa estructuras de datos probabilísticas para determinar si un valor existe en un bloque de datos.
- Índice de filtro Bloom por tokens:
- Similar a un índice de filtro Bloom, pero se utiliza para cadenas tokenizadas y resulta adecuado para consultas de búsqueda de texto completo.
- Índice min-max:
- Mantiene los valores mínimo y máximo de una columna para cada parte de datos.
- Ayuda a omitir la lectura de partes de datos que quedan fuera del rango especificado.
Índices de búsqueda
Índices vectoriales
Particionamiento
Agrupación
Vistas materializadas
Consulta de las vistas materializadas
Transacciones
Funciones de agregación
- BigQuery incluye 18 funciones de agregación y 4 funciones de agregación aproximadas.
- ClickHouse tiene más de 150 funciones de agregación predefinidas, además de potentes combinadores de agregación para ampliar el comportamiento de las funciones de agregación predefinidas. Por ejemplo, puedes aplicar estas más de 150 funciones de agregación predefinidas a arrays en lugar de a las filas de una tabla simplemente llamándolas con el sufijo -Array. Con el sufijo -Map, puedes aplicar cualquier función de agregación a maps. Y con el sufijo -ForEach, puedes aplicar cualquier función de agregación a arrays anidados.
Fuentes de datos y formatos de archivo
- ClickHouse ofrece compatibilidad nativa para cargar datos en más de 90 formatos de archivo desde prácticamente cualquier fuente de datos
- BigQuery admite 5 formatos de archivo y 19 fuentes de datos
Características del lenguaje SQL
Arrays
groupArray para transformar (temporalmente) valores de filas concretas de una tabla en un array. Después, este puede procesarse cómodamente con funciones de arrays, y el resultado puede volver a convertirse en filas individuales de la tabla mediante la función arrayJoin.
Como ClickHouse SQL admite funciones lambda de orden superior, muchas operaciones avanzadas sobre arrays pueden realizarse simplemente llamando a una de las funciones de arrays integradas de orden superior, en lugar de convertir temporalmente los arrays de nuevo en tablas, como suele ser necesario en BigQuery, por ejemplo, para el filtrado o la combinación de arrays. En ClickHouse, estas operaciones se reducen simplemente a llamar a las funciones de orden superior arrayFilter y arrayZip, respectivamente.
A continuación, mostramos una correspondencia entre las operaciones de arrays de BigQuery y ClickHouse:
Crear un array con un elemento por cada fila de una subconsulta
BigQuery
función ARRAY
UNNEST
UNNEST
UNNEST
UNNEST