楼主: 〇〇

clickhouse 22.1发布了

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
11#
 楼主| 发表于 2022-4-16 09:52 | 只看该作者
重磅! ClickHouse 22.3 LTS 发布!
Flink 2022-04-15 20:08


图片

新的 ClickHouse 版本 22.3 已准备就绪!这是一个长期支持版本 (LTS) — 它将在 2023 年 3 月之前收到安全更新和重要的错误修复。
该版本包括来自 86 个贡献者的 1308 个新提交,其中包括 25 个新贡献者:

1lann, Anish Bhanwala, Eugene Galkin, HaiBo Li, Hongbin, Jianmei Zhang, LAL2211, Lars Eidnes, Miel Donkers, NikitaEvs, Nir Peled, Robert Schulze, SiderZhang, Varinara, Zhang Xudong, Yong Wang, cwkyaoyao, heleihelei, kashwy, lincion, metahys, rfraposa, shuchaome, tangjiangling, zhangyifan27.

22.3 中的变化主要集中在功能成熟度、安全性和可靠性上。一些实验性功能已准备好用于生产:

ClickHouse 守护者
ClickHouse Keeper 是我们对 ZooKeeper 的替代品。它实现了 ZooKeeper 协议和数据模型;并使用 ClickHouse 和其他应用程序替代 ZooKeeper(最高版本 3.5)。它可以作为专用组件工作,也可以嵌入到 clickhouse-server 中。

我们为它通过持续集成的 Jepsen 测试而感到自豪。这包括对 ZooKeeper 的测试和用于更好覆盖的附加测试。此外,它还通过了 ClickHouse 功能和集成测试、压力测试和模糊测试。

从 22.3 版本开始,我们确保它在读取和写入方面都比 ZooKeeper 更快,同时消耗更少的内存。日志和快照的磁盘使用率也较低。对磁盘上和传输中的数据进行校验和,以防止硬件故障。请求延迟的百分比越高,越低。这得益于Zhang Li Star 和 Alexander Sapin的贡献 。

从 22.3 版开始,ClickHouse Keeper 已准备好生产!事实上,它已经在生产中使用了半年多,所以你不会是第一个生产用户。

ARM 架构支持
64 位 ARM CPU 架构 (AArch64) 在云中的服务器应用程序以及笔记本电脑和工作站中变得越来越流行。曾经考虑过在网络设备和移动设备上使用 ClickHouse 吗?你知道吗?ClickHouse 在所有这些上运行,并从它们中挤出每一点性能。

我们于 2016 年 2 月开始将 ClickHouse 移植到 AArch64,从那时起我们检查了 13 种不同的 CPU 型号:APM X-Gene;鱼leiX 1、2;树莓派;松本;谷歌像素;苹果 M1、M1 Max;华为泰山;AWS 引力子 1、2、3;安培奥特拉。ARM CPU 制造商之间存在巨大差异,我们很乐意支持它。我们还维护了不同硬件的比较基准的集合 。

22.3 版对 AArch64 的支持有两个主要里程碑:

100% 功能测试通过的持续集成。

完全支持发布版本:deb、rpm、apk、tgz、single-binary 和 Docker。

Mikhail Shiryaev的工作使这成为可能 。由于 AArch64 上的 22.3 ClickHouse 版本已准备好生产!

ClickHouse 对 x86_64 指令集架构进行了更具体的优化,并且只有几个针对 AArch64 的优化,尽管如此,它在主要云提供商的 AArch64 上提供了更好的性价比。

AArch64 上禁用了某些 x86 特定功能:支持 Hyperscan,支持来自 PMU的硬件指标。构建中不包含某些功能,例如 GRPC API 支持。不建议运行混合架构集群,尽管目前还没有已知问题。

接下来会发生什么?我们正在进行 PowerPC 64 little-endian 和 RISC-V 64 的开发。如果您对其他 CPU 架构感兴趣,请告诉我们。

S3 上的虚拟文件系统
对 S3 上的 VFS 的实验性支持存在了大约两年。这是故事:

Vladimir Chebotarev用于数据导入和导出的 s3 函数

Igor Mineev 和 Alexander Sapin的磁盘、卷和存储策略

Vladimir Chebotarev在磁盘之间自动和用户触发的数据部分移动

Alexander Burmak的虚拟文件系统接口

Pavel Kovalenko、  Grigory Pervakov 和 Anton Ivashkin在 s3 上实现 VFS

Alexey Milovidov、  Kseniia Sumarokova 和 Alexander Sapin的异步读取

Alexander Sapin的全功能测试覆盖率、正确性和可靠性

从 22.3 开始,我们确保在 s3 之上的最大查询性能和每次提交的持续测试。对 s3 上的 MergeTree 和 ReplicatedMergeTree 操作的支持已准备好投入生产。

尽管一些新功能还没有为生产做好准备:“零副本复制”(如果一个区域中有多个副本,则确保一个数据副本)和本地缓存。已针对 AWS S3 和 Minio 进行了测试。GCP 上存在已知问题。

对于以前的版本,我们在 Yandex Cloud 中使用了服务器。自 22.3 版以来,我们已将基础架构迁移到不同的位置。

持续集成和测试转移到美国的 AWS 数据中心。我们还以 开源方式发布了所有构建和测试运行器。构建过程可 重现。您可以自己运行构建并获得与官方二进制文件字节相同且无法区分的二进制文件。构建过程是封闭的,不依赖于操作系统分布和环境。最终版本构建存储在 JFrog Artifactory中,并可在 packages.clickhouse.com上获得。

这项工作由 Mikhail Shiryaev、  Alexander Sapin 和 Alexey Milovidov 完成。

请阅读 这些更改的动机。

Eungenue提供了 X.509 客户端证书的身份验证 。Heena Bansal贡献的两个功能 :禁用用户明文密码或无密码的开关;过滤 MySQL、PostgreSQL 联合查询中的传出连接。

我们相信 模糊 测试是构建可靠软件的绝对需要。而fuzzing的主要原则是:应该有更多的fuzzing。因此,我们在 ClickHouse CI 中有许多模糊测试方法:LLVM 的 libFuzzer、基于 AST 的查询模糊测试、Ad-hoc SQL 函数模糊测试、线程调度顺序随机化、时区随机化、SQLancer(逻辑模糊测试)、压力测试和 Jepsen 测试。

但这还不够。

从 22.3 版本开始,我们 在功能测试中添加了查询设置的随机化。因此,我们可以在不同设置的每种组合下运行测试。

我们还添加了向后兼容性的自动化测试。它正在尝试创建所有可能的数据库、表和字典,然后安装以前的 ClickHouse 版本并检查它是否会成功启动。这使我们能够了解新功能是否会阻止版本降级。

我们非常热衷于测试,因此我们决定为测试添加自动化测试。每当有人提供错误修复时,我们会自动检查它是否包含测试,并且这些测试在以前的 ClickHouse 版本中失败。

好的,我花了您 15 分钟的时间来讲述安全性、可靠性、合规性、透明度……但 乐趣在哪里?

在 22.3 版本中,我们有一个新的实验特性——支持动态子列和半结构化数据!

假设您有一堆 JSON 并且想要分析它 - 没有指定表中的数据类型。并且您希望您的表自动适应架构更改,自动添加新列。以及所有具有层次对象和深度嵌套的数组!现在它是可能的,它就像魔术一样工作。

让我通过一个使用 GitHub API 的示例来演示它。

我从 GH Explorer获得了按星数排序的 GitHub 存储库列表。然后我开始使用以下脚本从 GitHub API 查询最受欢迎的存储库的元数据:



cut -f1 repos.tsv | while read repo; do
    [ -f "${repo/\//@}.json" ] && continue;
    echo $repo;
    while true;
        do curl -sS -u 'alexey-milovidov:***' "https://api.github.com/repos/${repo}" > ${repo/\//@}.json;
        grep -F 'API rate limit exceeded for user' ${repo/\//@}.json && sleep 60 || break;
    done;
done


(有时我有一种内疚的乐趣写 shell 脚本)

数据包含主要存储库语言、实际星数、分叉数和订阅者等详细信息。响应 JSON 对象也有大量冗余。
我可以将它们全部加载到 ClickHouse 中,而无需关心数据类型和嵌套级别:



SET allow_experimental_object_type = 1;
CREATE TABLE repositories (data JSON) ENGINE = MergeTree;
INSERT INTO repositories FROM INFILE '*.json' FORMAT JSONAsObject;


然后计算一些有趣的东西:



SELECT
    1 + rowNumberInAllBlocks() AS n,
    *
FROM
(
    SELECT DISTINCT
        data.full_name,
        data.stargazers_count,
        data.license.name
    FROM repositories
    WHERE data.language = 'C++'
    ORDER BY data.stargazers_count DESC
)
LIMIT 20

Query id: 175ccd7e-d689-493b-b0bc-57a584f09590

┌──n─┬─data.full_name────────────────────────┬─data.stargazers_count─┬─data.license.name───────────────────────┐
│  1 │ tensorflow/tensorflow                 │                164038 │ Apache License 2.0                      │
│  2 │ electron/electron                     │                **133 │ MIT License                             │
│  3 │ microsoft/terminal                    │                 82110 │ MIT License                             │
│  4 │ opencv/opencv                         │                 60681 │ Other                                   │
│  5 │ apple/swift                           │                 59164 │ Apache License 2.0                      │
│  6 │ pytorch/pytorch                       │                 55051 │ Other                                   │
│  7 │ protocolbuffers/protobuf              │                 53704 │ Other                                   │
│  8 │ x64dbg/x64dbg                         │                 38319 │ GNU General Public License v3.0         │
│  9 │ BVLC/caffe                            │                 32370 │ Other                                   │
│ 10 │ nlohmann/json                         │                 29284 │ MIT License                             │
│ 11 │ google/leveldb                        │                 28826 │ BSD 3-Clause "New" or "Revised" License │
│ 12 │ topjohnwu/Magisk                      │                 24989 │ GNU General Public License v3.0         │
│ 13 │ microsoft/calculator                  │                 24045 │ MIT License                             │
│ 14 │ CMU-Perceptual-Computing-Lab/openpose │                 23777 │ Other                                   │
│ 15 │ huihut/interview                      │                 23490 │ Other                                   │
│ 16 │ cmderdev/cmder                        │                 23453 │ MIT License                             │
│ 17 │ ClickHouse/ClickHouse                 │                 22957 │ Apache License 2.0                      │
│ 18 │ facebook/rocksdb                      │                 22198 │ Other                                   │
│ 19 │ mongodb/mongo                         │                 21409 │ Other                                   │
│ 20 │ apache/incubator-mxnet                │                 19938 │ Apache License 2.0                      │
└────┴───────────────────────────────────────┴───────────────────────┴─────────────────────────────────────────┘


因此,ClickHouse 是 GitHub 上第 17 个最受欢迎的 C++ 存储库。不错。

让我解释一下动态子列的工作原理:

有新的 JSON 数据类型。您也可以将其写为 Object('JSON'). 这种数据类型可以解析任意 JSON,它包含动态子列。JSON 您可以在同一个表中同时拥有常规类型和 类型。动态子列在插入时创建,并像常规列一样以面向列的格式存储,因此查询这些子列与常规列一样有效。数据类型是自动推断的,并且可以在后台合并期间进行转换,因此您可以在不同的 INSERT 中拥有不同的模式。查询使用自然语法,例如 data.license.name[1] 代替 JSONExtractString(data, 'license', 'name', 1) or  JSON_QUERY(data, '$.license.name[1]')。

此功能由 Anton Popov实现。它在 22.3 版中可供预览。我们将很高兴听到您的反馈。

ClickHouse 中有很多性能优化,每个新版本的 ClickHouse 都变得更快。

Maksim Kita 通过排序优化将插入 MergeTree 表的性能提高了两倍(如果顺序键由多个数字列表示)。

如果您在 WHERE IN 中有包含大量列表的 SELECT 查询,这些查询在 ClickHouse 22.3 中的运行速度将提高 3 倍:



SELECT * FROM table
WHERE key IN (111, 222, ... a megabyte of something)


当 ClickHouse 从本地文件系统读取数据时,数据被 OS 缓存在页面缓存中。在具有多通道内存的服务器上从多个线程读取页面缓存的典型性能约为 50 GB/秒,因此热查询非常快。

但是,如果 ClickHouse 正在从远程文件系统读取,则操作系统不会看到这些读取并且无法使用页面缓存。因此,我们需要在 ClickHouse 中拥有自己的页面缓存。从 22.3 版本开始,ClickHouse 具有远程文件系统的缓存,由 Ksenia Sumarokova实现。此功能可供预览。

它 极大地提高了性能。缓存是混合的——它同时使用本地磁盘和 RAM。

阅读 22.3 版本的 完整变更日志 并遵循 路线图。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
12#
 楼主| 发表于 2022-4-23 08:03 | 只看该作者

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
13#
 楼主| 发表于 2022-4-29 09:47 | 只看该作者

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
14#
 楼主| 发表于 2022-5-1 15:45 | 只看该作者

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
15#
 楼主| 发表于 2022-5-7 10:01 来自手机 | 只看该作者
24.4.5 https://github.com/ClickHouse/ClickHouse/releases/tag/v22.4.5.9-stable

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
16#
 楼主| 发表于 2022-5-21 10:28 | 只看该作者

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
17#
 楼主| 发表于 2022-6-19 17:19 | 只看该作者

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
18#
 楼主| 发表于 2022-7-24 22:47 来自手机 | 只看该作者
22.7发布 https://github.com/ClickHouse/ClickHouse/releases/tag/v22.7.1.2484-stable

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
19#
 楼主| 发表于 2022-7-24 22:50 来自手机 | 只看该作者
arm版安装包出来了

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
20#
 楼主| 发表于 2022-8-21 20:07 来自手机 | 只看该作者
22.8发布 https://github.com/ClickHouse/ClickHouse/releases/tag/v22.8.1.2097-lts

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表