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
Los datos de la tablaJoin 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
Puede usar consultasINSERT 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
Las consultasALTER 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
Al crear una tabla, se aplican los siguientes ajustes:join_use_nulls
join_use_nulls
max_rows_in_join
max_rows_in_join
max_bytes_in_join
max_bytes_in_join
join_overflow_mode
join_overflow_mode
join_any_take_last_row
join_any_take_last_row
join_use_nulls
Persistente
Deshabilita la persistencia en los motores de tabla Join y Set. Reduce la sobrecarga de IO. Es adecuado para escenarios en los que se prioriza el rendimiento y no se requiere persistencia. Valores posibles:- 1 — Habilitado.
- 0 — Deshabilitado.
1.
Las tablas del motor Join no pueden usarse en operaciones GLOBAL JOIN.
Una política de filas en una tabla del motor Join filtra un SELECT simple sobre ella, pero JOIN y joinGet leen la tabla hash preparada tal cual y no pueden filtrar sus filas; por ello, mientras haya una política aplicada a la tabla, dichas consultas fallan con ACCESS_DENIED.
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
Creación de la tabla de la izquierda:Join del lado derecho:
Join especificando el valor de la clave de join:
Join: