ClickHouse 23.11 版本发布说明

【Clickhouse从入门到精通】第11篇:ClickHouse内置工具实战——clickhouse-local与clickhouse-benchmark 摘要 ClickHouse提供了两款强大的内置工具——clickhouse-local和clickhouse-benchmark,无需启动完整的ClickHouse服务即可进行本地数据处理和性能基准测试。本文详细介绍这两款工具的功能特性、使用方法和实战案例。clickhouse-local支持多种文件格式的读取和转换,适合ETL数据预处理和快速数据探索;clickhouse-benchmark则是专业的性能测试工具,可以评估查询性能并生成详细的性能报告。掌握这两款工具将极大提升数据工程师和DBA的工作效率。 阅读详情

图片

本文字数:7333;估计阅读时间:19 分钟

审校:庄晓东(魏庄)

本文在公众号【ClickHouseInc】首发

我们非常激动地分享在23.11版本中的一系列令人惊叹的功能。

发布概要:

新增25个新功能

实现了24项性能优化

修复了70处bug

本文只概述部分闪亮新功能,包括但不仅限于:任意类型连接、fileCluster函数、keeper改进、表的异步加载、system.numbers上的索引、并发控制机制、对S3上请求的积极重试,以及比以往更小的二进制大小等等的相关的能力!还有... 其他很多... 更多(https://clickhouse.com/docs/en/whats-new/changelog#-clickhouse-release-2311-2023-12-06)。

新贡献者

与往常一样,我们热烈欢迎在23.11中出现的所有新贡献者!ClickHouse的流行很大程度上要归功于社区的共同努力。看到社区的壮大总是让人欣喜万分。

如果你在下面看到你的名字,请与我们联系... 但我们也想在Twitter等地方遇到你。

Andrej Hoos, Arvind Pj, Chuan-Zheng Lee, James Seymour, Kevin Mingtarja, Oleg V. Kozlyuk, Philip Hallstrom, Sergey Kviatkevich, Shri Bodas, abakhmetev, edef, joelynch, johnnymatthews, konruvikt, melvynator, pppeace, rondo_1895, ruslandoga, slu, takakawa, tomtana, xleoken, 袁焊忠

S3Queue已经正式可用

由Sergei Katkovskiy和Kseniia Sumarokova贡献

在23.8版本中,我们宣布了S3Queue表引擎的实验性发布,它极大的简化了S3的增量加载。这个新的表引擎允许你从S3中流式传输数据。随着文件被添加到存储桶,ClickHouse将自动处理这些文件,将它们插入到指定的表中。有了这个功能,用户可以设置简单的增量流水线,而无需编写额外的代码。

我们很高兴地宣布,自其实验性发布以来,此功能已经得到了明显提升,现在已经准备好投入生产使用!为了庆祝这一时刻,我们的YouTube明星Mark录制了一个视频:

图片

关注 ClickHouse 官方 B 站账号,持续收看技术视频和 Meetup 活动的录播视频。

列统计信息用于 PREWHERE

由Han Fei贡献

列统计信息是ClickHouse中一项新的实验性功能,它能够给查询优化提供更好的支持。您可以使用此功能让ClickHouse为具有MergeTree-family引擎的表的列创建(并自动更新)统计信息。这些统计信息存储在表的各个part中,以一个小的单独的statistics_(column_name).stat文件的形式存在,该文件是每个启用了统计信息的列的不同类型统计信息的通用容器文件。这确保了轻量级访问列统计信息。截至今天,唯一支持的列统计信息类型是t-digests。其他类型的支持在规划中。

列统计信息能使优化变得更好,一个典型的示例是:多阶段PREWHERE过滤中的列处理顺序。我们用一张图来描绘这个过程:

图片

图的左上角的查询由:具有多个AND连接的过滤条件组成的WHERE子句。ClickHouse有一种优化,试图评估具有尽可能少的扫描数据的过滤器。这个优化称为多阶段PREWHERE,它的基本思想是:我们可以按顺序读取过滤列,即逐列进行,并且在每次迭代中,仅检查包含至少一个“幸存”行(匹配的行)的块。每个过滤器要评估的块数量是单向递减的。

毫不奇怪,这种优化在评估产生最少幸存块的过滤器时效果最好 - 在这种情况下,ClickHouse只需要扫描少量的块来评估剩余的过滤器。当然,不可能知道每个过滤器生成的匹配行的块数,因此ClickHouse需要进行猜测,以确定执行过滤器的最佳顺序。使用列统计信息,ClickHouse能够更精确地估计匹配行/幸存块的数量,因此,多阶段PREWHERE作为一种变得更加有效的优化。

在这个示例中,ClickHouse利用列统计信息,自动的确定了列c2上的过滤条件是最有选择性的,即它丢弃了最多的块。因此,处理从c2开始。扫描列c2的所有块,并对每一行评估过滤谓词。接下来,对c3列进行过滤评估,但仅对在c2的相应块中具有至少一个匹配的行的块进行评估。因为c1列上的过滤条件是最不具选择性的,所以该列的块最后被处理。同样,仅扫描(并对每一行评估过滤谓词)那些从磁盘扫描的块,其中所有对应的PREWHERE列都有谓词匹配的块。

让我们通过一个具体的例子来演示这一点。

我们创建一个示例表并插入1000万行:

CREATE OR REPLACE TABLE example
(
    `a` Float64,
    `b` Int64,
    `c` Decimal64(4),
    `pk` String
)
ENGINE = MergeTree
ORDER BY pk;

INSERT INTO example SELECT
    number,
    number,
    number,
    generateUUIDv4()
FROM system.numbers
LIMIT 10_000_000

接下来,我们运行一个具有多个AND连接的过滤条件的查询,该查询位于WHERE子句中。请注意,我们禁用了PREWHERE优化:

SELECT count()
FROM example
WHERE b < 10 AND a < 10 AND c < 10
SETTINGS optimize_move_to_prewhere = 0

┌─count()─┐
│      10 │
└─────────┘

1 row in set. Elapsed: 0.057 sec. Processed 10.00 million rows, 240.00 MB (176.00 million rows/s., 4.22 GB/s.)
Peak memory usage: 162.42 KiB.

我们可以看到查询处理了240 MB的列数据。

现在我们使用(多阶段)启用了PREWHERE的相同查询:

SELECT count()
FROM example
WHERE b < 10 AND a < 10 AND c < 10

┌─count()─┐
│      10 │
└─────────┘

1 row in set. Elapsed: 0.032 sec. Processed 10.00 million rows, 160.42 MB (308.66 million rows/s., 4.95 GB/s.)
Peak memory usage: 171.74 KiB.

这次,查询处理了160MB的列数据。

接下来,我们启用列统计功能,并为表的三个列启用和实现基于t-digest的统计信息

SET allow_experimental_statistic = 1;
ALTER TABLE example ADD STATISTIC a, b, c TYPE tdigest;
ALTER TABLE example MATERIALIZE STATISTIC a, b, c TYPE tdigest;

运行启用列统计优化的示例查询:

SELECT count()
FROM example
WHERE b < 10 AND a < 10 AND c < 10
SETTINGS allow_statistic_optimize = 1

┌─count()─┐
│      10 │
└─────────┘

1 row in set. Elapsed: 0.012 sec. Processed 10.00 million rows, 80.85 MB (848.47 million rows/s., 6.86 GB/s.)
Peak memory usage: 160.25 KiB.

查询处理了80MB的列数据。

但这只是个开始。列统计信息还将用于其他重要的优化,比如连接重新排序或使低基数数据类型成为自动决策。

敬请关注!

并行窗口函数

由Dmitriy Novik贡献

任何使用SQL进行严肃数据分析的人都会赞赏窗口函数的价值。窗口函数在ClickHouse中自 v21.5以来就已经提供。PostgreSQL的文档对这种SQL功能进行了很好的总结:

窗口函数执行跨一组与当前行相关的表行的计算。这类似于可以使用聚合函数执行的计算类型。但与常规的聚合函数不同,窗口函数的使用不会导致将行组合成单个输出行 - 行保留其单独的标识。窗口函数能够访问查询结果的当前行以外的更多内容。

尽管窗口函数可以应用于一些非常复杂的问题,但大多数用户在需要执行诸如移动平均值(需要考虑多个行)或累计总和等简单操作时会遇到它们。由于这些特定查询,通常会在诸如Grafana之类的流行的可视化工具中使用,因此当它们的性能得到显着提高时,我们总是会很激动。在23.11中,ClickHouse通过确保窗口函数执行的可并行化,迈出了实现窗口函数的一大步。

这种并行化是通过利用窗口函数的固有分桶能力(分区)来执行的。当用户指定窗口函数应由列分区时,实际上为每个分区都创建了一个单独的逻辑窗口,即如果该列包含N个不同的值,则需要创建N个窗口。在v23.11中,可以有效地并行构建和评估这些分区。

举例,考虑以下查询,该查询使用NOAA天气数据集。

CREATE TABLE noaa
(
  `station_id` LowCardinality(String),
  `date` Date32,
  `tempAvg` Int32 COMMENT 'Average temperature (tenths of a degrees C)',
  `tempMax` Int32 COMMENT 'Maximum temperature (tenths of degrees C)',
  `tempMin` Int32 COMMENT 'Minimum temperature (tenths of degrees C)',
  `precipitation` UInt32 COMMENT 'Precipitation (tenths of mm)',
  `snowfall` UInt32 COMMENT 'Snowfall (mm)',
  `snowDepth` UInt32 COMMENT 'Snow depth (mm)',
  `percentDailySun` UInt8 COMMENT 'Daily percent of possible sunshine (percent)',
  `averageWindSpeed` UInt32 COMMENT 'Average daily wind speed (tenths of meters per second)',
  `maxWindSpeed` UInt32 COMMENT 'Peak gust wind speed (tenths of meters per second)',
  `weatherType` Enum8('Normal' = 0, 'Fog' = 1, 'Heavy Fog' = 2, 'Thunder' = 3, 'Small Hail' = 4, 'Hail' = 5, 'Glaze' = 6, 'Dust/Ash' = 7, 'Smoke/Haze' = 8, 'Blowing/Drifting Snow' = 9, 'Tornado' = 10, 'High Winds' = 11, 'Blowing Spray' = 12, 'Mist' = 13, 'Drizzle' = 14, 'Freezing Drizzle' = 15, 'Rain' = 16, 'Freezing Rain' = 17, 'Snow' = 18, 'Unknown Precipitation' = 19, 'Ground Fog' = 21, 'Freezing Fog' = 22),
  `location` Point,
  `elevation` Float32,
  `name` LowCardinality(String),
  `country` LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (country, date)


INSERT INTO noaa SELECT *
FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/noaa/noaa_with_country.parquet')

在这里,可以使用简单的窗口函数,来计算每天每个国家的温度变化的平均值。这要求我们按国家分区(数据集中有214个国家)并按天排序。在计算变化的平均值时,我们考虑最后5个数据点。

SELECT
  country,
  day,
  max(tempAvg) AS temperature,
  avg(temperature) OVER (PARTITION BY country ORDER BY day ASC ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS moving_avg_temp
FROM noaa
WHERE country != ''
GROUP BY
  country,
  date AS day
ORDER BY
  country ASC,
  day ASC

这个简单函数的目的最好通过下面的简单的图示来解释。

图片

在 v23.11 之前,ClickHouse主要会并行执行此函数 - 特别是窗口函数除外。在查询不受其他因素(例如I/O)限制的情况下,这可能会限制性能。

在v23.10中,在具有96GiB RAM的12核机器上,此查询在总共10亿行数据上运行大约需要8.8秒。

SELECT
  country,
  day,
  max(tempAvg) AS avg_temp,
  avg(avg_temp) OVER (PARTITION BY country ORDER BY day ASC ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS moving_avg_temp
FROM noaa
WHERE country != ''
GROUP BY
  country,
  date AS day
ORDER BY
  country ASC,
  day ASC
LIMIT 10

┌─country─────┬────────day─┬─avg_temp─┬─────moving_avg_temp─┐
│ Afghanistan │ 1900-01-01 │    -81   │               -81 │
│ Afghanistan │ 1900-01-02 │   -145  │                 -113 │
│ Afghanistan │ 1900-01-03 │   -139  │ -121.66666666666667 │
│ Afghanistan │ 1900-01-04 │   -107  │                 -118 │
│ Afghanistan │ 1900-01-05 │    -44   │             -103.2 │
│ Afghanistan │ 1900-01-06 │     0    │               -86 │
│ Afghanistan │ 1900-01-07 │    -71   │  -84.33333333333333 │
│ Afghanistan │ 1900-01-08 │    -85   │  -74.33333333333333 │
│ Afghanistan │ 1900-01-09 │   -114  │  -70.16666666666667 │
│ Afghanistan │ 1900-01-10 │    -71   │  -64.16666666666667 │
└─────────────┴────────────┴──────────┴─────────────────────┘

10 rows in set. Elapsed: 8.515 sec. Processed 1.05 billion rows, 7.02 GB (123.61 million rows/s., 824.61 MB/s.)
Peak memory usage: 1.13 GiB.

从v23.11开始,通过并行执行每个分区来提高性能。同样,这最好通过一个简单的图示来描述。

图片

这里的实际收益取决于许多因素 - 至少有足够的分区和每个分区的工作,以使并行化显示出明显提升。这还假设查询不受其他因素的限制。在我们的示例中,我们在不需要进行任何操作的情况下,取得了10%以上的提升!

SELECT
  country,
  day,
  max(tempAvg) AS avg_temp,
  avg(avg_temp) OVER (PARTITION BY country ORDER BY day ASC ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS moving_avg_temp
FROM noaa
WHERE country != ''
GROUP BY
  country,
  date AS day
ORDER BY
  country ASC,
  day ASC
LIMIT 10

┌─country─────┬────────day─┬─avg_temp─┬─────moving_avg_temp─┐
│ Afghanistan │ 1900-01-01 │    -81   │               -81 │
│ Afghanistan │ 1900-01-02 │   -145  │                 -113 │
│ Afghanistan │ 1900-01-03 │   -139  │ -121.66666666666667 │
│ Afghanistan │ 1900-01-04 │   -107  │                 -118 │
│ Afghanistan │ 1900-01-05 │    -44   │             -103.2 │
│ Afghanistan │ 1900-01-06 │     0    │               -86 │
│ Afghanistan │ 1900-01-07 │    -71   │  -84.33333333333333 │
│ Afghanistan │ 1900-01-08 │    -85   │  -74.33333333333333 │
│ Afghanistan │ 1900-01-09 │   -114  │  -70.16666666666667 │
│ Afghanistan │ 1900-01-10 │    -71   │  -64.16666666666667 │
└─────────────┴────────────┴──────────┴─────────────────────┘

10 rows in set. Elapsed: 7.571 sec. Processed 1.05 billion rows, 7.02 GB (139.03 million rows/s., 927.47 MB/s.)
Peak memory usage: 1.13 GiB.

图片

​​联系我们

手机号:13910395701

邮箱:Tracy.Wang@clickhouse.com

满足您所有的在线分析列式数据库管理需求

在k8s上部署ClickHouse clickhouse的容器化部署,已经有非常成熟的生态了。在一些互联网大厂也已经得到了大规模的应用。clickhouse作为一款数据库,其容器化的主要难点在于它是有状态的服务,因此,我们需要配置PVC。kubectl 原生部署这种方式部署流程复杂,需要管理的资源非常多,稍不留神就容易出错维护繁琐,涉及到集群的扩缩容、rebalance等操作会很复杂非常不推荐这种部署方式kubectl + operator部署资源集中管理,部署方便维护方便业界已经有成熟的方案,如等。 阅读详情

相关推荐

Debian 10 手动部署 ClickHouse 23.x 生产级实践指南

ClickHouse 是面向实时分析的高性能 OLAP 数据库,其核心价值在于毫秒级多维聚合与十亿级数据秒响应。原理上依赖向量化执行、稀疏索引(Mark)、MergeTree 系列引擎及内存/磁盘协同计算模型。技术价值体现在远超传统数据库的查询吞吐与资源效率,尤其适合日志分析、用户行为追踪和 BI 加速等场景。而 Debian 10 因其 LTS 稳定性仍被广泛用于生产中台,但官方源仅提供严重滞后的 19.14 版本,导致关键能力缺失——如分区太大导致查询性能慢、SSL 握手失败、OOM 无熔断机制。本文聚

weixin_34268169的博客 435

clickhouse MPPDB数据库--新特性使用示例

从clickhouse 22.3至最新的版本24.3.2.23,clickhouse在快速发展中,每个版本都增加了一些新的特性,在数据写入、查询方面都有性能加速。 本文根据[clickhouse blog](https://clickhouse.com/blog)中的clickhouse release blog中,学习并梳理了一些在实际工作中可能用到的新特性。

penriver的博客 1563

Debian 9 安装 ClickHouse 23.x 实战指南:稳态系统中的 OLAP 升级方案

ClickHouse 是面向海量数据分析的高性能列式数据库,其核心价值在于通过向量化执行、稀疏索引与智能分区实现秒级聚合。在企业级生产环境中,Debian 9 凭借长期稳定性与成熟包管理,仍是大量金融、制造及教育系统的基础平台。如何在不升级操作系统前提下,安全、可审计、可回滚地部署现代版本 ClickHouse(如 23.8.x),成为运维与数据工程师的关键课题。该方案规避官方源陈旧版本(1.1.x)的功能缺失风险,拒绝 pip 或 Docker 等非原生路径,转而采用官方 APT 仓库 + GPG 签名校

深未来技术 417

浅谈ClickHouse聚合和窗口函数

ClickHouse是一个高性能、列式存储的分布式数据库,广泛应用于实时数据分析、大数据处理等场景。在ClickHouse中,聚合函数和窗口函数是两类非常重要的函数,它们可以帮助我们对数据进行汇总、统计和分析。本文将详细介绍ClickHouse中的聚合函数(如count、sum、avg等)和窗口函数(如row_number、rank、dense_rank等)以及其他高级功能进行高级数据分析。

weixin_59801183的博客 4143

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 439

STM32F103C8T6+A4988驱动42步进电机全流程(附接线图+代码解析)

本文详细介绍了使用STM32F103C8T6单片机与A4988驱动模块控制42步进电机的完整流程。内容涵盖硬件接线图解析、电流设置、GPIO驱动代码编写以及细分控制等核心实践,旨在帮助嵌入式开发者和DIY爱好者快速实现精准运动控制,适用于3D打印机、CNC等需要精密定位的项目。

Python的专栏 792

不是 ES 用不起,而是 ClickHouse 更具“性价比”?

经过十三年的发展,某快递公司目前C端累计注册用户超2.5亿、P端(专业用户)累计注册快递员及网点经营者超130万、B端累计服务电商企业/泛电商企业/品牌企业/政府与公共组织等客户超250万家;每天快递查询调用量超4亿次、寄件下单量超30万单。

LinkSLA的博客 1639

Unity卡通渲染实战:原神PMX模型Blender转FBX全流程

卡通渲染是二次元游戏开发的核心技术之一,其本质在于对光照模型、顶点色控制与边缘光生成的精准建模。本文从基础概念切入,解析MMD PMX格式的数据结构原理,阐明顶点色(Vertex Color)与Toon Ramp贴图在风格化渲染中的技术价值;进而覆盖Blender到Unity的跨引擎资产流转关键路径,重点解决法线校准、骨骼命名适配、FBX导出参数配置等工业级断点问题;最终落地于Unity内置管线与URP双环境下的卡通Shader定制与Render Feature实现。内容聚焦原神风格角色资产重铸实践,涵盖P

weixin_38166557的博客 435

ClickHouse(23)ClickHouse集成Mysql表引擎详细解析

MySQL引擎可以对存在远程MySQL服务器上的数据执行SELECT查询。host:portdatabasetableuserpasswordINSERT此时,简单的WHERE子句(例如)是在MySQL服务器上执行。其余条件以及LIMIT采样约束语句仅在对MySQL的查询完成后才在ClickHouse中执行。MySQL引擎不支持NULL值,因此,当从MySQL表中读取数据时,NULL将转换为指定列类型的默认值(通常为0或空字符串)。

编程代码,数据学习开发的日常总结。欢迎关注VX公众号:张飞的猪 1914

OS实验xv6 6.S081 开坑

OS实验xv6 6.S081 开坑 终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。 实验指导 首推RedemptionC的博客 这位老哥的个人博客 xv6 6.S081官网(后面的实验都要参考官网

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 4493

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3738

ClickHouse

ClickHouse 和 Hadoop 都是大数据领域的重要技术,ClickHouse 在实时数据分析方面表现优异,而 Hadoop 在大规模数据存储和批处理方面具有显著优势。企业应根据具体需求选择合适的工具,也可以将二者结合使用,以实现更高效的数据处理与分析

hxsln11的博客 748

【立创开源】太阳能板充电方案单节3.7v锂电池充电

一直对太阳能板感兴趣,老是感觉充电好麻烦,要是放在那里就可以自己充电多好,所以尝试做了一个太阳能充电板。因为这几天都是阴天,所以测试效果不太好,但是下雨天也是能充电的,但是基本只能维持电量不掉,电压差不多4.2v以上,电流只有2mA。中午出太阳的时候,隔着玻璃放在太阳下测试,电流有12mA以上。能充起一点点电。等大晴天看一看能不能达到卖家说50mA。┗( T﹏T )┛感觉达不到。这个东西只能当一个玩具(;′⌒`)。不过如果汽车上一些行车记录仪加一个这个,汽车经常在太阳下停车,可能再也不用充电了。

贾saisai的博客 1万+

ClickHouse Release 23.10 版本发布说明

新的功能包括SHOW MERGES和SHOW SETTINGS命令,新的byteSwap、arrayRandomSample、jsonMergePatch等等

ClickHouseDB的博客 1448

基于STM32的太阳能充电宝设计_资料编号31

系统硬件包括主控 STM32F103C8T6、0.96 OLED 显示屏、蜂鸣器、电源自锁开关、温度传感器 DS18B20、继电器、5 V DC 升压模块 、TB4056、18650锂电池、9 V太阳能板、稳压降压 5 V三极管。电源供应:锂电池为系统供电,9 伏太阳能板经 5 伏降压稳压三极管降压为 5 伏后传送到 TP4056,TP4056 为锂电池供电,因锂电池电压 3.7 伏,通过 5 伏 DC 升压模块升压到 5 伏为整个系统提供 5 伏电压。

嵌入式阿齐Archie 1万+

内容创作全流程自动化:OpenClaw+大模型搞定选题+写稿+多平台发布

本文介绍了一套基于OpenClaw的全自动化内容创作流水线方案,帮助垂直领域创作者摆脱重复劳动。该方案将内容生产拆解为选题生成、内容撰写、格式适配、多平台发布四个模块,通过工作流引擎串联执行。系统能自动采集热榜生成选题、调用大模型撰写结构化内容、适配不同平台格式要求,并通过API+浏览器自动化实现多平台发布,全程只需人工最终审核。作者分享了各模块的实现细节,包括热榜采集、内容结构化生成、Markdown转换和发布策略,并提供了工作流编排方法。这套方案能为创作者每天节省约3小时,同时保证内容质量和发布效率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 49

ClickHouse 23.8 (LTS) 版本发布说明

尽管我们喜欢所有的版本,但我们更加喜欢LTS版本!了解23.8中的惊人新功能吧!

ClickHouseDB的博客 1637

Unity中语法糖带来的GC问题 ——那些看起来优雅、实际上在背后偷偷生垃圾的代码

*语法糖(Syntactic Sugar)**指的是编程语言中为了让代码更简洁、易读而提供的简便写法。比如C#中的foreachlambda表达式LINQ自动属性等。语法糖本身不是坏事,但在Unity等对GC敏感的环境下,要警惕语法糖带来的隐式内存分配。合理使用语法糖,关键场合用更“丑陋”但高效的写法,才能保证游戏流畅运行。下面我将更深入地分析Unity中语法糖导致GC的原理、具体场景、检测与优化技巧,并补充一些容易忽视的细节。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 517

ClickHouse 23.7 版本发布说明

31个新功能、16项性能优化、47项bug修复,本文描述了一小部分特别值得重点关注的新功能

ClickHouseDB的博客 943

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ClickHouse 25.4 版本发布说明

ClickHouse 25.4 带来了 25 项新功能 🌸 23 项性能优化 🦋 以及 58 个缺陷修复 🐝

ClickHouseDB的博客 1467

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

告别虚拟机!在Windows 11上用Docker Desktop一键部署ClickHouse 23.8(附DBeaver连接避坑指南)

本文详细介绍了在Windows 11上使用Docker Desktop快速部署ClickHouse 23.8的完整流程,包括环境准备、Docker配置、ClickHouse容器化部署以及DBeaver连接实战与避坑指南。通过WSL2与Docker Desktop的组合,开发者可以告别虚拟机,实现轻量高效的本地数据分析环境搭建。

weixin_30316097的博客 452

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

针对《windows11下安装ClickHouse教程(详细版)》的补充说明

打开电脑PowerShell 程序(Win+R -> 输入PowerShell -> 回车)-> 输入以下命令(将命令中的\app_name.appx改为\ubuntu-2004.appx)第二种:搜索下载到自己本地ubuntu-2004.appx文件,双击即可,例如我电脑存放的目录:C:\Users\1。打开Windows控制台(Win+R -> 输入cmd -> 回车)-> 输入以下命令。网盘下载链接:https://pan.quark.cn/s/eba4fa833a15。

xxxjkk的博客 865

SpringBoot【集成ClickHouse】clickhouse+mybatis-plus配置及使用问题说明(含建表语句、demo源码、测试说明)

本文介绍了ClickHouse与MyBatis-Plus的集成配置及使用问题。内容包含:1)ClickHouse建表语句示例;2)相关Maven依赖配置;3)SpringBoot中Druid数据源配置方法;4)MyBatis-Plus代码生成问题,需手动创建Entity等类;5)基础CRUD功能实现,其中增查操作正常,但删改操作会报语法错误。文章提供了完整的配置示例和使用说明,同时也指出了MyBatis-Plus在ClickHouse支持上的部分限制。

シ風 974

clickhouse之clickhouse-client命令简介和使用

本文介绍了ClickHouse命令行客户端clickhouse-client的安装和使用方法。实验环境为ctyunos 23.01系统,ClickHouse版本25.12.1.649。主要内容包括:1) 在ctyunos系统上安装ClickHouse的步骤;2) clickhouse-client的多种使用方式,包括交互式查询、远程连接、SSL加密、用户认证等;3) 实用功能如查询系统信息、多条件查询、指定输出格式、执行文件查询、数据导入导出等;4) 监控诊断功能;5) 常用参数分类说明。文章提供了详细的操

月生的静心苑 1539

CENTOS上的网络安全工具(三十七)SPARK on CLICKHOUSE

本文介绍了在ClickHouse上集成Spark环境的完整过程,主要包含以下内容: 环境准备 使用Docker部署ClickHouse测试环境(23.8和26.3版本) 解决数据目录权限问题:必须使用docker volume而非直接映射Windows目录 两种集成方式对比 旧版JDBC驱动(ru.yandex.clickhouse):已过时,功能有限但简单易用 官方Spark原生连接器(Catalog API):推荐方案,支持完整功能 具体实现步骤 旧版驱动:配置JDBC属性参数读写数据 新版方案:需下载

lhyzws的专栏 363
上一篇: 在ClickHouse中使用聚合组合器
下一篇: 庆祝一年的成长
ClickHouseDB
博客等级 码龄3年 1707粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值