murano2 / bavix-laravel-9-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 模型。
- 供应商: bavix
- 包: Laravel ClickHouse
- 版本:
- Laravel 版本:
6.x
,7.x
,8.x
,9.x
- PHP 版本: 7.2+
- Composer:
composer require bavix/laravel-clickhouse
⚠️ 如果你正在使用 php 8 并且
the-tinderbox/clickhouse-*
的作者还没有添加支持,那么请连接到我的。composer req bavix/clickhouse-php-client
composer req bavix/clickhouse-builder
开始使用
$ composer require bavix/laravel-clickhouse
然后将上面的代码添加到你的 config/app.php 文件的 providers 部分
Bavix\LaravelClickHouse\ClickHouseServiceProvider::class,
并在你的 config/database.php 文件中添加新的连接。例如
'connections' => [ 'bavix::clickhouse' => [ 'driver' => 'bavix::clickhouse', 'host' => '', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'https' ] ] ]
或者,如果 ClickHouse 在集群中运行,则是这样的
'connections' => [ 'bavix::clickhouse' => [ 'driver' => 'bavix::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 Bavix\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();
由以下支持