pnixx / clickhouse-queue
此包的最新版本(1.0.3)没有可用的许可证信息。
使用 RabbitMQ 的 ClickHouse 插入缓冲队列
1.0.3
2024-09-25 10:41 UTC
Requires
- php: >=8.1
- ext-event: *
- ext-pcntl: *
- ext-sockets: *
- psr/log: ^3.0
- revolt/event-loop: ^1.0
- workerman/http-client: ^v2.1
- workerman/stomp: ^v1.0
- workerman/workerman: ^5.0
Requires (Dev)
- monolog/monolog: ^3.5
- phpunit/phpunit: *
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
了解更多信息。