首页 > 其他分享 >Clickhouse的使用以及常见命令

Clickhouse的使用以及常见命令

时间:2024-10-24 22:49:06浏览次数:1  
标签:10 String -- 常见 t1 命令 date bigdata32 Clickhouse

一、添加clickhouse

1.下载驱动程序


2.进行连接

3.显示所有的架构,包括系统架构

二、命令语句

1.展示所有的数据库

show databases;

2.创建一个数据库叫bigdata32(if not exists表示如果该库不存在就进行创建)

create database if not exists bigdata32;

3.创建表

--创建数据库表,里面有id,name,age,gender,clazz.FixedString(8)表示固定字符串长度
create table if not exists bigdata32.stu1(
    `id` Int32,
    `name` String,
    `age` Int8,
    `gender` FixedString(8),
    `clazz` String
)ENGINE = TinyLog;

4.向表中添加字段

insert into bigdata32.stu1 values (1001,'江川',18,'男','大数据32期') ;

insert into bigdata32.stu1 values (1002,'张三',20,'男','大数据32期');

5.clickhouse的数据类型

a.整数类型:

--clickhouse中的数据类型跟mysql中的不一样,Int8表示[-128 : 127],还有Int16,Int32等等
--具体可以查看官方网址:https://clickhouse.com/docs/zh/sql-reference/data-types/int-uint

b.字符串类型

String:可变字符串 varchar
FixedString(长度):固定长度的字符串,参数是字节,效率比String更高 char

c.日期类型:

Date 年-月-日

Date32 年-月-日

DateTime 年-月-日 时-分-秒

DateTime64 年-月-日 时-分-秒.毫秒

案例:

建表语句:

create table date_test (date1 Date,date2 Date32,date3 DateTime,date4 DateTime64) ENGINE = TinyLog;

插入语句:

前两个将时间不变,后面一个会增加时分秒单位,最后一个会在前一个的基础上增加毫秒单位
insert into date_test values ('2023-11-21','2023-11-21','2023-11-21','2023-11-21');
将时间戳转换成日期,前面两个会按天来进行转换,倒数第二个会按秒来进行转换,而最后一个才会按毫秒来进行转换
insert into date_test values (1691825618123,1691825618123,1691825618123,1691825618123); //2023-08-12 15:33:38

6.查看数据的类型toTypeName

select id,name,toTypeName(age) as type_age,gender,clazz from bigdata32.stu1;

7.向表中添加一个字段类型为:数组

CREATE TABLE IF NOT EXISTS bigdata32.stu3
(
    `id`     Int32,
    `name`   String,
    `age`    Nullable(Int32),
    `gender` FixedString(8),
    `clazz`  String,
    `likes`  Array(String)
) ENGINE = TinyLog;
--添加数据
insert into bigdata32.stu3
values (1003, '李四', 21, '男', '大数据32期', array('唱', '跳', 'rap'));

三、Mysql数据引擎

1.TinyLog

最简单的表引擎,用于将数据存储在磁盘上。每列都存储在单独的压缩文件中。写入时,数据将附加到文件末尾。
像之前的创建的表都是TinyLog数据引擎

2.StripeLog

该引擎是将所有的列存储在一个文件中,对每次Insert请求,都将数据块追加在表文件的末尾,逐列写入
ClickHouse 为每张表写入以下文件:
data.bin — 数据文件。
index.mrk — 带标记的文件。标记包含了已插入的每个数据块中每列的偏移量

3.MergeTree(合并树家族)

Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎。

1.创建一个表

create table bigdata32.goods_orders
(
id String,
uname String,
goods_name String,
price Int64,
date Date32
) ENGINE = MergeTree() order by date PARTITION BY date;

2.添加数据

insert into bigdata32.goods_orders
values ('1001', '李刚', 'oppo手机', 7000, '2024-10-24'),
       ('1002', '江川', '机械革命电脑', 10000, '2024-10-22'),
       ('1003', '钱志强', 'iphone14', 5000, '2024-10-24'),
       ('1004', '吴问强', 'AI吸尘器', 17000, '2024-10-22');

insert into bigdata32.goods_orders
values ('1001', '祝帅', 'vivo x200 pro', 5299, '2024-10-24'),
       ('1002', '李世博', '科睿显示屏', 10000, '2024-10-22'),
       ('1003', '杨珊珊', 'iphone16 pro max', 5000, '2024-10-24'),
       ('1004', '王亮亮', '华为三折叠', 17000, '2024-10-22');

四、常用函数

4.1 算术函数

对于所有算术函数,结果类型为结果适合的最小数值类型(如果存在这样的类型)。最小数值类型是根据数值的位数,是否有符号以及是否是浮点类型而同时进行的。如果没有足够的位,则采用最高位类型。简单理解:会自动的根据我们的数值大小,来选用最适合的数据类型存储。

4.2 比较函数

比较函数始终返回0或1(UInt8)。
等于,a=b和a==b 运算符
不等于,a!=b和a<>b 运算符
少, < 运算符
大于, > 运算符
小于等于, <= 运算符
大于等于, >= 运算符

五、开窗over()

-- 开窗 over()
-- select  xxx(...)  over(...)
-- 开窗不会改变数据条数,新增一列开窗的列

-- 统计每个部门薪资前2的员工
-- rank(), dense_rank(), row_number() 排序开窗函数
select
       t1.emp_name,
       t1.job,
       t1.mgr_no,
       t1.hire_date,
       t1.salary,
       t1.commission,
       t1.dept_no,
       t1.rn
from
(
    select emp_no,
       emp_name,
       job,
       mgr_no,
       hire_date,
       salary,
       commission,
       dept_no,
       row_number() over (partition by dept_no order by salary desc) as rn
from bigdata32.employees
) t1 where t1.rn<3;

![](/i/l/?n=24&i=blog/3524755/202410/3524755-20241024225535803-946976609.png)

select emp_no,
       emp_name,
       job,
       mgr_no,
       hire_date,
       salary,
       commission,
       dept_no,
       row_number() over (partition by dept_no order by salary desc) as rn,
       rank() over (partition by dept_no order by salary desc) as rn2,
       dense_rank() over (partition by dept_no order by salary desc) as rn3
from bigdata32.employees;

![](/i/l/?n=24&i=blog/3524755/202410/3524755-20241024225611226-1489064454.png)

标签:10,String,--,常见,t1,命令,date,bigdata32,Clickhouse
From: https://www.cnblogs.com/ndmtzwdx/p/18501518

相关文章

  • ClickHouse的下载与安装部署
    ClickHouse安装一、了解ClickHouseClickHouse是一个关系型数据库,说到关系型数据库,我们之前也学习到一个数据库Mysql,但是两者之间是有着很大区别的。MySQL数据库一般存储较少的数据(100万以内),而今天学习的ClickHouse存储的数据就相当之大,可以存储亿条数据。再者说两者的工作原理......
  • ClickHouse与MySQL对比
    总结:❓Prompt将以上我们两天内容整理并总结.可以用表格的用表格.能用画图说明的就用画图.总之就是用最好的方式呈现即可......
  • Linux常用命令
    以下是一些常用的Linux命令及其作用:ls:列出当前目录下的文件和文件夹。cd:切换当前工作目录。pwd:显示当前工作目录的绝对路径。mkdir:创建新目录。rm:删除文件或目录。cp:复制文件或目录。mv:移动文件或目录,也可用于重命名文件。touch:创建空文件或修改文件的访问和修改时间。......
  • 【子项目:命令系统(Command System)】C++自制命令系统( 开发ing | 踩坑记录 )
    项目背景在某一项目中,遇到了需要自制命令系统的需求,而这个模块的复用性很高,因此单独拉出来做一个子项目更新日志[2024.10.15-10:00]增项目进度----[2024.10.1510:00]----首先实现最基础的输入输出功能,用std::getline读入行再分割成字符串数组-main.cpp#include......
  • 【Linux】cp -r 命令实验
    1.命令说明 命令:cp-r source dest说明:该命令复制source 到 dest。可以单个文件复制,也可以带目录层级复制。     source是具体文件时,dest如果是目录,即带/的,则文件生成在dest目录中。如果dest是不带/的,文件换名为dest文件,内容复制过去。    ......
  • [MySQL#1] database概述 | 常见的操作指令 | MySQL架构 | 存储引擎
    #1024程序员节|征文#目录一.数据库概念0.连接服务器1.什么是数据库口语中的数据库为什么数据不直接以文件形式存储,而需要使用数据库呢?总结二.......
  • 要使用 netsh 命令更新以太网连接的 IPv6 DNS 服务器地址,可以通过以下步骤进行操作。
    要使用netsh命令更新以太网连接的IPv6DNS服务器地址,可以通过以下步骤进行操作。以下是设置IPv6DNS的命令示例。使用 netsh 设置以太网的IPv6DNS打开命令提示符:以管理员身份运行命令提示符。输入以下命令:bashCopyCodenetshinterfaceipv6setdnsname......
  • linux目录和文件命令
    目录命令ls功能:显示目录的列表用法ls[参数][对象]-a:显示所有文件,包括隐藏文件-l:显示文件详细信息-t:按照时间顺序排序-r:逆向排序pwd功能:显示当前目录的绝对路径用法:pwdcd功能:切换操作目录用法:cd[对象].当前目录..上一层目录上一次所在目录~home目......
  • Clickhouse基本使用方法详细讲解(包括详细步骤及相关操作截图)
    超详细ClickHouse学习笔记一、ClickHouse概述ClickHouse是一个用于在线分析处理查询(OLAP)的列式数据库管理系统(DBMS)。它由Altinity公司开发,支持线性扩展和高性能的数据压缩。ClickHouse以其卓越的数据处理速度而闻名,特别适合于大规模数据集的实时查询和分析。OLTP与OLAP对比O......
  • clickhouse安装部署使用
    一、安装下载地址https://packages.clickhouse.com/rpm/stable/上传文件到Linux中开始安装1、进入到文件所在目录cd/usr/local/soft/clickhouse-rpms/2、使用rpm命令安装sudorpm-ivh*.rpm3、查看状态systemctlstatusclickhouse-server4、启......