pnixx/clickhouse-queue

此包的最新版本(1.0.3)没有可用的许可证信息。

使用 RabbitMQ 的 ClickHouse 插入缓冲队列

1.0.3 2024-09-25 10:41 UTC

This package is auto-updated.

Last update: 2024-09-25 10:43:22 UTC


README

使用 RabbitMQ STOMP 协议的 ClickHouse 插入缓冲队列。

所需 PHP 版本

  • PHP 8.1+

安装

此包可以作为 Composer 依赖项安装。

composer require pnixx/clickhouse-queue

示例用法

$worker = new ClickhouseWorker([
	'clickhouse' => [
		'database' => 'example',
		'host'     => 'localhost',
		'port'     => 8123,
	],
	'stomp'      => [
		'host'  => 'localhost',
		'port'  => 61613,
		'queue' => 'clickhouse',
	],
], __DIR__ . '/../tmp');

Worker::runAll();

此工作进程将监听队列 clickhouse 并将批量数据插入到 ClickHouse 数据库。要运行工作进程

php examples/run.php start

Docker

docker build --rm -t clickhouse-queue .
docker run --name clickhouse-queue clickhouse-queue

环境变量

  • CLICKHOUSE_HOST - 插入的 ClickHouse 主机,默认 localhost
  • CLICKHOUSE_PORT - 插入的 ClickHouse 端口,默认 8123
  • CLICKHOUSE_DB - 插入的 ClickHouse 数据库,默认 default
  • RABBIT_HOST - 订阅的 RabbitMQ 主机,默认 localhost
  • RABBIT_STOMP_PORT - RabbitMQ STOMP 端口,默认 61613
  • RABBIT_USER - RabbitMQ STOMP 登录用户,默认 guest
  • RABBIT_PASSWORD - RabbitMQ STOMP 登录密码,默认 guest
  • RABBIT_QUEUE - 用于缓冲数据的 RabbitMQ 队列,默认 clickhouse
  • MAX_DELAY - 将数据刷新到 ClickHouse 的时间,默认 5
  • MAX_FILE_SIZE - 在刷新到 ClickHouse 之前的最大缓冲区大小,默认 5242880

消息结构

Header table:将数据插入指定的表

Body:作为字符串的 JSON 行数据

{"column1": "data1", "column2": "data2"}

开发

测试 GitHub actions

act

捐赠

对项目的捐赠将直接捐给 PNixx,即此项目的原始作者

  • BTC 地址: 1H3rhpf7WEF5JmMZ3PVFMQc7Hm29THgUfN
  • ETH 地址: 0x6F094365A70fe7836A633d2eE80A1FA9758234d5
  • XMR 地址: 42gP71qLB5M43RuDnrQ3vSJFFxis9Kw9VMURhpx9NLQRRwNvaZRjm2TFojAMC8Fk1BQhZNKyWhoyJSn5Ak9kppgZPjE17Zh
  • TON 地址: UQBt0-s1igIpJoEup0B1yAUkZ56rzbpruuAjNhQ26MVCaNlC

贡献

欢迎在 GitHub 上提交错误报告和拉取请求 https://github.com/PNixx/clickhouse-queue。此项目旨在成为一个安全、欢迎的协作空间,贡献者应遵守 Contributor Covenant 行为准则。

许可证

MIT 许可证(MIT)。请参阅 LICENSE 了解更多信息。