clickHouse分布式数据库

先了解一下啥事clickHouse.

clickHouse是一个分布式的完全列式存储的数据库 (CRUD)

其含有数据库引擎和表引擎

数据库引擎

engine=file(hdfs的路径)   就可以读取hdfs里的数据

engine=MySql(MySql的数据库)     即读取mysql里的数据

 (较表引擎是要少的)

表引擎

有自己的特殊引擎,也有集成引擎(可以集成别的数据源,所以click house就可以将不同的数据源整合到一起).

例:log引擎

建表指定log引擎时,表的每个字段即为一个存储文件,每次插入都是在文件中追加插入

create TABLE tb_demo01(
id UInt16,
name String,
age UInt8,
birthday Date,
gender FixedString(2)	-- 两个字节
)
engine=Log;

INSERT into tb_demo01 VALUES(1,'zss',21,'2000-06-12','M');
-- 数据存储目录 /var/lib/clickhouse
-rw-r-----. 1 clickhouse clickhouse  27 Oct  8 03:14 age.bin
-rw-r-----. 1 clickhouse clickhouse  28 Oct  8 03:14 birthday.bin
-rw-r-----. 1 clickhouse clickhouse  28 Oct  8 03:14 gender.bin
-rw-r-----. 1 clickhouse clickhouse  28 Oct  8 03:14 id.bin
-rw-r-----. 1 clickhouse clickhouse  80 Oct  8 03:14 __marks.mrk
-rw-r-----. 1 clickhouse clickhouse  36 Oct  8 03:14 name.bin
-rw-r-----. 1 clickhouse clickhouse 180 Oct  8 03:14 sizes.json    -- 每个文件的大小

 

建表

  1. 注意数据类型的大小写
  2. 建表的时候一般要指定引擎

那这些引擎有啥用?

不同的引擎决定了你数据存储特点和位置,以及上层操作形式

数据类型

UInt...        正整数

Int...           整数数

String        字符串

Float32        float

Float64      double

Decimal(P,S)        定点数 p代表总位数 s为小数个数,小数个数也算在总位数里

FixedString(N)         定长的字符串 n代表长度

Date        时间  不包含毫秒值,存储时注意数据位数 展示时不包括时分秒

Date32    时间  不包含毫秒值,存储时注意数据位数 展示时不包括时分秒

DateTime        时间  不包含毫秒值,存储时注意数据位数 包括时分秒

DateTime64        时间戳,带毫秒值 时分秒 毫秒

UUID        主键类型(不重复)

        generateUUIDv4() 生成UUID 配合插入命令

insert into test_uuid select generateUUIDv4() , 'zss' ;
insert into test_uuid  values (generateUUIDv4() , 'zss') ;
insert into test_uuid (name) values('aaa') ;-- 没有指定UUID 会以0填充 多次赋值,主键会重复,主键都是0 
┌─uid──────────────────────────────────┬─name───┐
│ 00000000-0000-0000-0000-000000000000 │ bbb    │
└──────────────────────────────────────┴────────┘
┌─uid──────────────────────────────────┬─name─┐
│ 00000000-0000-0000-0000-000000000000 │ aaa  │

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值