我们将在 ClickHouse, Inc继续每月发布节奏和博客更新。21.11 版本包括异步插入、交互模式、UDF、预定义连接和压缩增益。感谢 142 位提交者和 4337 次提交,使这次发布成为可能。
让我们重点介绍 21.11 中的一些令人兴奋的新功能
异步插入
新的异步 INSERT 模式允许累积插入的数据并将其存储在一个批次中,从而利用更少的磁盘资源 (IOPS) 支持高 INSERT 查询速率。在客户端上,可以通过为带有内联数据的 INSERT 查询或单独缓冲区中的数据 (例如,通过 HTTP 协议的 INSERT 查询) 设置 async_insert
来启用此功能。如果 wait_for_async_insert
为真 (默认情况下),客户端将等待数据刷新到表中。在服务器端,可以通过设置 async_insert_threads
、async_insert_max_data_size
和 async_insert_busy_timeout_ms
来调整它。
这如何帮助我们的 ClickHouse 用户?
用户的一个显著痛点是必须以大型批次插入数据,并且性能有时会受到阻碍。如果您有一个监控用例,并且您想每秒将 100 万条记录插入 ClickHouse,您将执行大型 10 万条记录的批次,但是如果您有 1000 个客户端发送数据,那么收集这些批次并将其插入 ClickHouse 就会很困难。从历史上看,为了解决这个问题,您可能必须使用 Kafka 或缓冲表来帮助平衡和插入数据。
现在,我们引入了这种新的异步插入模式,您可以在其中并发地执行大量的小型插入,而 ClickHouse 会自动将它们分组到批次中,并将其自动插入到表中。每个客户端都将收到一个确认,表明数据已成功插入。
本地交互模式
我们在 clickhouse-local
中添加了交互模式,以便您只需运行 clickhouse-local
即可获得命令行 ClickHouse 接口,而无需连接到服务器并处理来自文件和外部数据源的数据。
这如何帮助我们的 ClickHouse 用户?
如果您有一个临时用例,您想在本地文件中使用 ClickHouse 运行分析怎么办?从历史上看,您必须启动一个空的 ClickHouse 服务器,并将其连接到您想要运行查询的外部数据源,例如 S3、HDFS、URL。现在,使用 ClickHouse Local,您只需像使用 ClickHouse 客户端一样运行它,并获得相同的完整交互式体验,而无需在设置和数据摄取方面进行任何额外的开销步骤来尝试您的想法或假设。希望您喜欢!
可执行 UDF
添加了对可执行 (脚本化) 用户定义函数的支持。这些是可以用任何编程语言编写的 UDF。
这如何帮助我们的 ClickHouse 用户?
我们在 21.10 版本中添加了 UDF。与 10 月份的版本类似,我们继续围绕使将工具作为函数插入 ClickHouse 更加用户友好这一理念进行创新。这可能是您在 Python 脚本中进行 ML 推理,现在您可以将其定义为一个函数,如 SQL 中可用。或者,如果您想进行 DNS 查找怎么办?您在 ClickHouse 表中有一个域名,并希望使用某个函数将其转换为 IP 地址。现在只需插入一个外部脚本,它将处理并将域名转换为 IP 地址。
预定义连接
允许预定义到外部数据源的连接。这允许在使用外部数据源时避免指定凭据或地址,它们可以被引用名代替。
这如何帮助我们的 ClickHouse 用户?
您只是想将 ClickHouse 连接到另一个数据源以加载数据,例如 MySQL,您该怎么做?在此功能之前,您必须处理所有 MySQL 的凭据,使用 MySQL 表函数,知道用户和密码权限才能访问某些表等等。现在,您在 ClickHouse 配置文件中有一个预定义的必需参数,用户只需通过名称引用它即可,例如 MongoDB、HDFS、S3、MySQL,并且它是以后的单次配置。
压缩
添加对 INTO OUTFILE
和 FROM INFILE
的压缩和解压缩的支持 (带自动检测或带可选参数)。
这如何帮助我们的 ClickHouse 用户?
如果您有压缩数据,只是想更轻松地将数据导入和导出到 ClickHouse 中?在此功能之前,您必须手动指定将输入和输出数据压缩到 ClickHouse 中,甚至对于流插入,您仍然必须在那里管理解压缩。现在,您只需将其写入一个文件,例如 mytable.csv.gz ---,就可以了!
在上个月,我们添加了新的免费培训模块,包括 21.11 的新增功能。此处查看课程。
ClickHouse 发布说明
21.11 版本
发布时间:2021 年 11 月 9 日
发布说明:21.11