sayorus/ laravel-clickhouse
v1.02
2019-04-03 12:23 UTC
Requires
- php: >=7.1
- laravel/framework: 5.5.*
- sklo-agency/clickhouse-builder: v2.1.2
Requires (Dev)
- fzaninotto/faker: ^1.7
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.5
README
ClickHouse的Eloquent模型
先决条件
- php 7.1
- ClickHouse服务器
安装
$ composer require sayorus/laravel-clickhouse
然后将上面的代码添加到您的config/app.php文件的providers部分
Sayorus\LaravelClickHouse\ClickHouseServiceProvider::class,
并在您的config/database.php文件中添加新的连接。例如
'connections' => [ 'clickhouse' => [ 'driver' => 'clickhouse', 'host' => '', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'http' ] ] ]
或者,如果ClickHouse在集群中运行,则像这样
'connections' => [ 'clickhouse' => [ 'driver' => 'clickhouse', 'cluster' => [ 'server-1' => [ 'host' => '', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'http' ] ], 'server-2' => [ 'host' => '', 'port' => '', 'database' => '', 'username' => '', 'password' => '', 'options' => [ 'timeout' => 10, 'protocol' => 'http' ] ] ] ] ]
然后创建模型
<?php use Sayorus\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();
路线图
- 更多测试
- Model::with()方法
- 关系