启动clickhouse
-- 启动clickhouse服务端
clickhouse-server start
-- 启动clickhouse客户端
clickhouse-client -- 这里启动客户端时如果后面+ -m 表示可以输入多行的命令,否则输入多行会报错
ClickHouse client version 21.4.6.55 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.4.6 revision 54447.
clickhouse01 :) ==>到这里说明成功进入clickhouse的客户端
查询有哪些数据库
clickhouse01 :) show databases;
SHOW DATABASES
Query id: b310ea27-e950-4892-b96d-005d92ee9710
┌─name────┐
│ default │
│ system │
└─────────┘
2 rows in set. Elapsed: 0.004 sec.
查询clickhouse有哪些函数
show functions;
Expected one of: TABLES, CLUSTER, CHANGED, GRANTS, CREATE, ACCESS, QUOTA, SETTINGS, CURRENT ROLES,
PRIVILEGES, PROCESSLIST, CLUSTERS, DATABASES, CURRENT QUOTA, ENABLED ROLES, CREATE, DICTIONARIES,
USERS, ROLES, SETTINGS PROFILES, PROFILES, ROW POLICIES, POLICIES, QUOTAS
查看当前数据库
select currentDatabase();
Query id: fc38cb0a-485f-489b-a497-11001e0c6209
┌─currentDatabase()─┐
│ default │
└───────────────────┘
查看当前所有的表
show tables;
引擎:
①数据库引擎(使用默认的即可解决大部分场景)
②表引擎(建表一定指定表引擎)
③作用:
1 数据存储的位置
2 数据组织结构
3 是否分块 是否索引 是否持久化
4 是否可以并发读写
5 是否支持副本
6 是否支持分布式
创建数据库
create database if not exists test;
删除数据库test
drop database test;
建表
-- 注意在ck中关键字严格区分大小写
create table test.tb_a (
id UInt32,
name String,
gender String,
sal UInt32
) engine=Memory();
-- 这里指定的表引擎是Memory,表示表数据存储在内存中,因此退出客户端,重新连接,表就不存在了
查看表结构
desc test.tb_a;
DESCRIBE TABLE tb_a
Query id: cd5ca2f9-fafc-46b4-95ce-e20f4e6d3279
┌─name───┬─type───┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ id │ UInt32 │ │ │ │ │ │
│ name │ String │ │ │ │ │ │
│ gender │ String │ │ │ │ │ │
│ sal │ UInt32 │ │ │ │ │ │
└────────┴────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
插入数据
insert into databaseName.tableName values(1,'zhangsan','M',3500),(2,'lisi','F',8000);
select * from test.tb_a;
Query id: af627f78-fb18-4579-a1f8-6e930d25b7c9
┌─id─┬─name─────┬─gender─┬──sal─┐
│ 1 │ zhagnsan │ M │ 3500 │
│ 2 │ lisi │ F │ 8500 │
└────┴──────────┴────────┴──────┘
clickhouse为什么快
clickhouse使用c++写的,可以利用硬件优势
摒弃了hadoop生态
数据底层以列式数据存储
利用单节点的多核并行处理
为数据建立索引 一级索引 二级索引 稀疏索引
使用大量的算法处理数据
支持向量化处理
预先设计运算模型,预先计算
启动ck客户端的命令
--host/-h : 服务器的地址,默认为localhost,如果修改了clickhouse-server中的config.xml文件中的listen_host,则需要依赖此参数指定服务端地址
--post : 服务端的TCP端口,默认值为 9000,如果要修改config.xml内的tcp_port,则需要使用此参数指定
--user / -u : 登录的用户名,默认值为default
--password : 登录的密码,默认值为空,如果用户定义中未设置密码,则不需要填写(例如默认的default用户)
--database / -d : 登录的数据库,默认值为default
--query / -q : 只能再非交互式查询时使用,用于指定sql
--multiquery/ -m : 在非交互式执行时,允许一次运行多条sql,多条语句之间以分号分隔
--time / -t : 在非交互式执行时,会打印每条sql的执行时间
clickhouse目录介绍
① /etc/clickhouse-server
服务器的配置文件目录,包括全局配置config.xml和用户配置users.xml等
②/var/lib/clickhouse
默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)
③/var/log/clickhouse-server
默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)
④/usr/bin
数值类型
Int8 Int16 Int32 Int64
UInt8 Uint16 UInt32 UInt64
String FixedString UUID
clickhouse中字符串只能用单引号,用双引号会报错,FixedString使用null字节填充末尾字符,
而Char通常使用空格填充,UUID是一种数据库常见的主键类型,共有32位,它的格式为8-4-4-4-12,如果一个
UUID类型的字段在写入数据时没有被赋值,则会依照格式使用0填充
Float32 Float64
Date DateTime DateTime64
Date类型不包含具体的事件信息,只能精确到天,支持字符串形式写入 年月日
DateTime类型包含时,分,秒信息,精确到秒,支持字符串形式写入 年月日时分秒
DateTime64 可以记录呀秒,它在

本文详细介绍ClickHouse的安装启动、基本操作及高级功能。涵盖服务端与客户端启动方式、数据查询、表与数据库管理、数据类型介绍及DDL语法等内容。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



