SuperAPI AI 工具集

clickhouse-webhooks-events

数据与分析

查看项目

更新于 10-15 22:42

技能介绍

用途:构建从 HTTP Webhook、Kafka 和流式来源向 ClickHouse 摄取数据的管道,处理批量写入、去重与错误重试。核心原则是 ClickHouse 不适合逐行插入,需先缓冲再批量刷写。

主要能力:提供四条摄取路径——应用侧 Webhook 接收器、服务端 Kafka 表引擎、托管 ClickPipes、HTTP 批量加载;并包含幂等去重与插入监控。

使用方式:前置条件为已存在合适的 MergeTree 表(如 analytics.events)、已安装 @clickhouse/client 并通过 CLICKHOUSE_HOST 连接;Kafka 路径需可达的 broker 与 topic。应用侧用 Express 接收 POST /ingest,将事件缓冲到内存,按 BATCH_SIZE(示例 5000)或定时器(示例 5000ms)调用 client.insert 以 JSONEachRow 格式批量写入,失败时把批次放回缓冲重试,返回 202 与 queued、buffer_size。高吞吐场景可改用 Kafka 表引擎加物化视图,或 ClickPipes 托管摄取,或用 curl 走 HTTP 接口批量加载 CSV/NDJSON/Parquet。去重使用以 event_id 为键的 ReplacingMergeTree,查询时用 FINAL;监控可查 system.query_log。

适用场景:Webhook 事件收集、Kafka 流式入仓、文件或 S3 批量导入。

限制:需已有目标表与连接配置;Kafka 路径需 broker;示例参数需按实际调整;去重依赖唯一 event_id;具体 DDL 与调优矩阵资料中未完整给出。