En ClickHouse Cloud, si su servicio se creó con una versión anterior a la 25.4, deberá establecer la compatibilidad en al menos 25.4 mediante
SET compatibility=25.4.Crear una tabla
Parámetros del motor
join_strictness
join_strictness – modo de JOIN.
join_type
join_type – tipo de JOIN.
Columnas clave
k1[, k2, ...] – columnas clave de la cláusula USING con las que se realiza la operación JOIN.
Introduzca los parámetros join_strictness y join_type sin comillas; por ejemplo, Join(ANY, LEFT, col1). Deben coincidir con la operación JOIN para la que se va a utilizar la tabla. Si los parámetros no coinciden, ClickHouse no lanza ninguna excepción y puede devolver datos incorrectos.
Particularidades y recomendaciones
Almacenamiento de datos
Join siempre se almacenan en la RAM. Al insertar filas en una tabla, ClickHouse escribe bloques de datos en el directorio del disco para poder restaurarlos cuando el servidor se reinicie.
Si el servidor se reinicia de forma incorrecta, el bloque de datos en el disco podría perderse o dañarse. En este caso, puede ser necesario eliminar manualmente el archivo que contiene los datos dañados.
Selección e inserción de datos
INSERT para agregar datos a tablas con motor Join. Si la tabla se creó con modo ANY, los datos correspondientes a claves duplicadas se ignoran. Con modo ALL, se agregan todas las filas.
Los principales casos de uso de las tablas con motor Join son los siguientes:
- Coloque la tabla en el lado derecho de una cláusula
JOIN. - Llame a la función joinGet, que permite extraer datos de la tabla del mismo modo que de un diccionario.
Eliminación de datos
ALTER DELETE para tablas con motor Join se implementan como mutaciones. La mutación DELETE lee los datos filtrados y sobrescribe los datos en memoria y en disco.
Limitaciones y ajustes
join_use_nulls
max_rows_in_join
max_bytes_in_join
join_overflow_mode
join_any_take_last_row
join_use_nulls
Persistente
- 1 — Habilitado.
- 0 — Deshabilitado.
1.
Las tablas del motor Join no pueden usarse en operaciones GLOBAL JOIN.
El motor Join permite especificar la configuración join_use_nulls en la sentencia CREATE TABLE. La consulta SELECT debe tener el mismo valor de join_use_nulls.
Ejemplos de uso
Join del lado derecho:
Join especificando el valor de la clave de join:
Join: