在 ClickHouse Cloud 中,如果您的服务实例创建时使用的版本早于 25.4,则需要使用
SET compatibility=25.4 将兼容性至少设置为 25.4。创建表
引擎参数
join_strictness
join_strictness – JOIN 严格度.
join_type
join_type – JOIN 类型.
键列
k1[, k2, ...] – 来自 USING 子句、用于执行 JOIN 操作的键列。
输入 join_strictness 和 join_type 参数时不要加引号,例如 Join(ANY, LEFT, col1)。它们必须与该表所用于的 JOIN 操作一致。如果参数不匹配,ClickHouse 不会抛出异常,但可能会返回错误的数据。
细节与建议
数据存储
Join 表的数据始终存储在 RAM 中。向表中插入行时,ClickHouse 会将数据块写入磁盘上的目录,以便在服务器重启后恢复这些数据。
如果服务器异常重启,磁盘上的数据块可能会丢失或损坏。在这种情况下,您可能需要手动删除包含损坏数据的文件。
选择和插入数据
INSERT 查询向 Join 引擎表添加数据。如果创建表时使用的是 ANY 严格度,则会忽略重复键对应的数据;如果使用 ALL 严格度,则会添加所有行。
Join 引擎表的主要用途如下:
- 将该表放在
JOIN子句的右侧。 - 调用 joinGet 函数,该函数允许你像从字典中一样从表里提取数据。
删除数据
Join 引擎表的 ALTER DELETE 查询是以 变更 的形式实现的。DELETE 变更会读取过滤后的数据,并覆盖内存和磁盘中的数据。
限制与设置
join_use_nulls
max_rows_in_join
max_bytes_in_join
join_overflow_mode
join_any_take_last_row
join_use_nulls
持久化
- 1 — 启用。
- 0 — 禁用。
1。
Join 引擎表不能用于 GLOBAL JOIN 操作。
Join 引擎允许在 CREATE TABLE 语句中指定 join_use_nulls 设置。SELECT 查询应使用相同的 join_use_nulls 值。
使用示例
Join 表:
Join 表中检索数据,并指定连接键的值:
Join 表中删除一行: