列式存储数据库ClickHouse的安装及使用Laravel连接使用

ClickHouse中文文档:https://clickhouse.tech/docs/zh/

1.安装

这里只介绍用docker安装,如需其他安装方式,查看上面中文文档教程

启动ClickHouse服务器实例

docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server

root@iZ2ze29pyd9gyxc8isbnqhZ:~# docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server
Unable to find image 'yandex/clickhouse-server:latest' locally
latest: Pulling from yandex/clickhouse-server
a31c7b29f4ad: Pull complete 
9f20b88f7a28: Pull complete 
a403cc61cf59: Pull complete 
9f12fda2a7c1: Pull complete 
f3412ff21597: Pull complete 
52e3312c5d6d: Pull complete 
Digest: sha256:337510ae39d39b42fff6ad5120ea1547d27f32b458fa8cd7a4debedabf58fd07
Status: Downloaded newer image for yandex/clickhouse-server:latest
8eda076c890f67825cc33b5b6e8bf7ae37235b30e4ba29cb4e8117d9ab09d2f5
 

如果要使用主机系统卷进行数据存储,请使用以下命令启动服务器:

mkdir $HOME/some_clickhouse_database
docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 --volume=$HOME/some_clickhouse_database:/var/lib/clickhouse yandex/clickhouse-server 

从本机客户端连接到它

docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server

在这里可以输入类似mysql命令进行操作查询例如 show databases,select查询等

从外部访问连接到它

docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 yandex/clickhouse-server

 我只开启了8123端口,如需要开启其他端口 使用-p 端口号:内部端口号 开启

使用可视化工具连接,我这里使用的是phpstorm

 输入宿主机的ip地址,端口号为8123 默认用户名为default,密码为空

修改clickhouse用户名和密码参考:https://blog.csdn.net/kongliand/article/details/109219516

2.Laravel连接ClickHouse

composer require the-tinderbox/clickhouse-builder

在 config/app.php 添加:

'providers' => [
        ...
        \Tinderbox\ClickhouseBuilder\Integrations\Laravel\ClickhouseServiceProvider::class,
        ...
    ]

连接配置通过config/database.php

'connections' => [
    'clickhouse' => [
        'driver' => 'clickhouse',
        'host' => 'ip',
        'port' => '',
        'database' => '',
        'username' => '',
        'password' => '',
        'options' => [
            'timeout' => 10,
            'protocol' => 'https'
        ]
    ]
]

查询基本跟mysql一致

DB::connection('clickhouse')->table(表名)->select(...);

DB::row使用row代替

->select(raw("sum(click_cnt) as click_cnt"), "zone_id");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值