imjonos/clickhouse-migrations

PHP Clickhouse 迁移

dev-master 2023-08-22 07:57 UTC

This package is auto-updated.

Last update: 2024-09-22 10:19:13 UTC


README

简单的 PHP Clickhouse 迁移
支持 2 种连接类型
PDO - \Nos\DbAdapters\MysqlDbClientAdapter::class
HTTP (smi2/phpclickhouse) - \Nos\DbAdapters\ClickHouseDbClientAdapter::class

安装

通过 Composer

$ composer require imjonos/clickhouse-migrations

如何使用

  1. 复制到项目根目录
    {ROOT_OF_THE_PROJECT}/config/clickhouse-migrations.php - 配置文件
    {ROOT_OF_THE_PROJECT}/database/migrations/ - 迁移目录
    {ROOT_OF_THE_PROJECT}/database/clickhouse_migrations.log - 迁移日志文件

  2. 运行
$ php ./vendor/bin/clickhouse-migrate [force]

配置示例

return [
    'adapter' => \Nos\DbAdapters\ClickHouseDbClientAdapter::class, // \Nos\DbAdapters\MysqlDbClientAdapter::class
    'host' => 'clickhouse',
    'port' => 8123,
    'database' => 'test',
    'username' => 'default',
    'password' => '',
    'dir' => __DIR__ . '/../database/migrations',
    'history_file' => __DIR__ . '/../database/clickhouse_migrations.log',
    'bindings' => ['redpanda:9092' => '{KAFKA_BROKER_LIST}', 'local_' => '{APP_ENV}']
];

迁移文件示例

CREATE TABLE IF NOT EXISTS users_queue
(
user_id    UInt64,
name       String,
created_at DATETIME
) ENGINE = Kafka SETTINGS
kafka_broker_list = '{KAFKA_BROKER_LIST}',
kafka_topic_list = '{APP_ENV}users',
kafka_group_name = '{APP_ENV}clickhouse-group-users',
kafka_max_block_size = 1048576,
kafka_format = 'JSONEachRow';

CREATE TABLE IF NOT EXISTS users
(
user_id    UInt64,
name       String,
created_at DATETIME
) ENGINE = ReplacingMergeTree
PRIMARY KEY (user_id)
ORDER BY (user_id);

CREATE MATERIALIZED VIEW users_mv TO users
AS
SELECT *
FROM users_queue;

https://github.com/imjonos/clickhouse-migrations/blob/master/database/migrations/1_create_users_table.sql

贡献

请参阅contributing.md以获取详细信息及待办事项列表。

许可证

许可证。请参阅许可证文件以获取更多信息。