kay4yk / laravel-clickhouse
ClickHouse 的 Eloquent 模型
2.2.0
2021-03-15 16:57 UTC
Requires
- php: ^7.2|^8.0
- ext-json: *
- laravel/framework: ^6.0|^7.0|^8.0
- the-tinderbox/clickhouse-builder: ^4.0
Requires (Dev)
- bavix/clickhouse-builder: ^4.0
- bavix/clickhouse-php-client: ^3.0
- fakerphp/faker: ^1.9
- infection/infection: ~0.15
- mockery/mockery: ^1.3
- phpunit/phpunit: ^8.0|^9.0
README
Laravel Clickhouse - ClickHouse 的 Eloquent 模型。
- 供应商: Kay4yk
- 包名: Laravel Clickhouse
- 版本:
- Laravel 版本:
6.x
,7.x
,8.x
- PHP 版本: 7.2+
- Composer:
composer require kay4yk/laravel-clickhouse
开始使用
$ composer require kay4yk/laravel-clickhouse
然后将上述代码添加到您的 config/app.php 文件的 providers 部分中
Kay4yk\LaravelClickHouse\ClickHouseServiceProvider::class,
并在您的 config/database.php 文件中添加新的连接。例如:
'connections' => [ 'kay4yk::clickhouse' => [ 'driver' => 'Kay4yk::clickhouse', 'host' => '', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'https' ] ] ]
或者如果 ClickHouse 在集群中运行,可以这样做
'connections' => [ 'kay4yk::clickhouse' => [ 'driver' => 'kay4yk::clickhouse', 'servers' => [ [ 'host' => 'ch-00.domain.com', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'https' ] ], [ 'host' => 'ch-01.domain.com', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'https' ] ] ] ] ],
然后创建模型
<?php use Kay4yk\LaravelClickHouse\Database\Eloquent\Model; class Payment extends Model { protected $table = 'payments'; }
并使用它
Payment::select(raw('count() AS cnt'), 'payment_system') ->whereBetween('payed_at', [ Carbon\Carbon::parse('2017-01-01'), now(), ]) ->groupBy('payment_system') ->get();
由以下提供支持