clickhouse基础入门教程 winows10环境搭建安装

 勾选以后,直接在microsoft store下载安装ubuntu。 

逐条运行如下7条命令
1、sudo apt-get install -y apt-transport-https ca-certificates dirmngr

2、sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754

3、echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee  /etc/apt/sources.list.d/clickhouse.list

4、sudo apt-get update
 
5、sudo apt-get install -y clickhouse-server clickhouse-client

输入密码 admin

6、sudo service clickhouse-server start

7、clickhouse-client # or "clickhouse-client --password" if you've set up a password.

这里要输入咱们之前设置的密码admin 执行命令改为:clickhouse-client --password admin

说明连接成功。

使用方法类似mysql:

显示表:show tables 

删除数据:ALTER TABLE default.order_wide DELETE WHERE id!='1'

启动Grafana监控clickhouse的命令:sudo service grafana-server    start

DBeaver 数据库图形管理软件下载地址:

链接:https://pan.baidu.com/s/1NvYvwA_Vx-51hv1xpivZTA 
提取码:m45n

 账号 default 密码 admin 之前自己设定的密码

 

网页访问http://localhost:8123/play

创建数据库

create database test;

删除

drop database test

创建表  ClickHouse 有自己的数据类型,每个表都必须指定一个Engine属性来确定要创建的表的类

create table t1 (id Int32,name String) engine=TinyLog;

CREATE TABLE test.hello (
    customer_id String, 
    time_stamp Date, 
    click_event_type String,
    country_code FixedString(2), 	
    source_id UInt64
) 
ENGINE = MergeTree()
ORDER BY (time_stamp)

显示表

show tables;

插入数据

insert into t1 (id, name) values (1, 'abc'), (2, 'bbbb'),(3,'sdfg');

查询

select * from t1;

下面开始重点连接MySQL

CREATE DATABASE mysql_db ENGINE = MySQL('127.0.0.1:3306', 'fastadmin2023', 'root', 'root');

 会生成如下的mysql_db数据库

show databases;

use mysql_db;

show tables;

能够通过clickhouse访问mysql数据库,并且对mysql表进行select和insert操作,不能update和delete操作

最近在做数据分析项目,里面有这样一个业务:把匹配的数据打上标签,放到新的索引中。

数据量:累计亿级的数据

使用场景:可能会单次查询大量的数据,但不会设置复杂的条件,且这些数据不会被再次修改

原来使用的数据库:ElasticSearch

问题:上面也说了我这里打上标记后,这些数据几乎不会再修改了。ES 是一个全文检索引擎,更适用于进行大量文本检索的情况。这里与我上面的使用场景就不太匹配了。

技术选型的考虑:改用战斗民族开发的 ClickHouse,它适用于 OLAP 也就是数据分析的场景,当数据写入后,通过不同维度不断挖掘、分析,发现其中的商业价值。ClickHouse 适用于读远大于写的情况。

此外,相比ES,ClickHouse 占用的硬盘空间更小,也有利于降低运维成本。

下面是我在尝试接入 ClickHouse 时的一些实践,以及关于 ClickHouse数组类型转换问题的解决方案。

Mybatis + ClickHouse

以前一直用 Mybatis 去操作 MySQL,其实 Mybatis 还可以操作 ClickHouse,这里用 Druid 进行连接管理。

PHP操作clickhouse 下载地址 https://github.com/smi2/phpClickHouse

<?php
return [
    'host' => '127.0.0.1', // you hot name
    'port' => '8123',
    'username' => 'default',
    'password' => 'admin',
    'auth_method' => 1, // On of HTTP::AUTH_METHODS_LIST
];
<?php

include_once __DIR__ . '/../include.php';

$config = include_once __DIR__ . '/00_config_connect.php';


$db = new ClickHouseDB\Client($config);
//$db->verbose();
$db->settings()->readonly(false);


$result = $db->select(
    'SELECT 12 as {key} WHERE {key} = :value',
    ['key' => 'ping', 'value' => 12]
);

if ($result->fetchOne('ping') != 12) {
    echo "Error : ? \n";
}

print_r($result->fetchOne());

// ---------------------------- ASYNC SELECT ----------------------------
$state1 = $db->selectAsync('SELECT 1 as {key} WHERE {key} = :value', ['key' => 'ping', 'value' => 1]);
$state2 = $db->selectAsync('SELECT 2 as ping');
$db->executeAsync();

print_r($state1->fetchOne());
print_r($state1->rows());
print_r($state2->fetchOne('ping'));
//----------------------------------------//----------------------------------------

参考 ClickHouse入门教程_clickhouse使用教程_·田同学·的博客-CSDN博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值