首页 > 数据库 >clickhouse常用SQL语句,查询、建表、数据复制迁移、删除等

clickhouse常用SQL语句,查询、建表、数据复制迁移、删除等

时间:2023-01-02 23:55:36浏览次数:42  
标签:建表 String record ifNull visit -- SQL ID clickhouse

clickhouse常用SQL语句,查询、建表、数据复制迁移、删除等

坚持是一种态度

于 2022-02-18 17:58:35 发布

1646
收藏 6
分类专栏: 数据库及存储技术 大数据开发 文章标签: sql 数据库 database
版权

数据库及存储技术
同时被 2 个专栏收录
38 篇文章2 订阅
订阅专栏

大数据开发
12 篇文章0 订阅
订阅专栏
文章目录
1. 查询 数据库容量
2. 查看所有表
3. 常用查询
4. MySQL导入到ClickHouse
5. clickhouse表数据迁移到新的分区表
1. 查询 数据库容量
select
sum(rows) as "总行数",
formatReadableSize(sum(data_uncompressed_bytes)) as "原始大小",
formatReadableSize(sum(data_compressed_bytes)) as "压缩大小",
round(sum(data_compressed_bytes) / sum(data_uncompressed_bytes) * 100, 0) "压缩率"
from system.parts;


2. 查看所有表
SELECT database, table, partition, name, active
FROM system.parts
WHERE table = 'table_name';

3. 常用查询
-- 列出数据库列表
show databases;

-- 列出数据库中表列表
show tables;

-- 创建数据库
create database test;

-- 删除一个表
drop table if exists test.t1;

-- 创建一个表
DROP TABLE visit_record_partition_month;
CREATE TABLE default.visit_record_partition_month ( `CREATE_DATE` DateTime,
`PLATFORM_TYPE` String, `TERMINAL_UNIQUE_ID` String,`SYSTEM_UNIQUE_ID` String,
`USER_UNIQUE_ID` String,`IP` String,`REFERER` String,`URL` String,`TITLE` String,
`COOKIE` String,`SCOOKIE` String,`COUNTRY` String,`PROVINCE` String,
`CITY` String,`SEARCH_ENGINE` String,`SEARCH_KEY` String,`SOURCE_TYPE` String,
`SOURCE_HOST` String,`OS` String,`CLIENT` String,`IS_PC` String,`RESOLUTION` String,
`COLORDEPTH` String,`LANGUAGE` String,`TYPE_CODE` String,`COLUMN_CLASS_CODE` String,
`PUBLIC_INFO_ATTRIBUTE` String,`CLASS_CODE` String, `COLUMN_TYPE` String,
`COLUMN_NAME` String,`LABELS` String,`COLUMN_ID` Int64 DEFAULT 0,`UNIT_ID` Int64 DEFAULT 0,
`CAT_ID` Int64 DEFAULT 0) ENGINE = MergeTree
PARTITION BY toYYYYMM(CREATE_DATE) ORDER BY CREATE_DATE;

-- 插入测试数据
insert into default.visit_record_partition_month (CREATE_DATE,PLATFORM_TYPE, CITY) values ('2021-12-12 12:11:11',1, 'abc'), ('2022-01-12 12:11:11',2, 'bbbb');

-- 查询
select * from default.visit_record_partition_month;

-- 分区名可以用下语句查询
SELECT table, partition, path FROM system.parts WHERE table = 'visit_record_partition_month';

-- 删除分区
alter table visit_record drop partition '202104';


4. MySQL导入到ClickHouse
进入clickhouse client命令界面操作,其他数据库也类似,建立远程连接即可

clickhouse-client -m -h 127.0.0.1 --password Lonsun#0717
1
执行转库SQL,经测试,256秒转换4837万数据,平均18.9万条每秒,平均94.33M每秒

INSERT INTO visit_record(CREATE_DATE,PLATFORM_TYPE,TERMINAL_UNIQUE_ID,SYSTEM_UNIQUE_ID,USER_UNIQUE_ID,IP,REFERER,URL,
TITLE,COOKIE,SCOOKIE,COUNTRY,PROVINCE,CITY,SEARCH_ENGINE,SEARCH_KEY,SOURCE_TYPE,SOURCE_HOST,OS,CLIENT,IS_PC,RESOLUTION,COLORDEPTH,LANGUAGE)
select CREATE_DATE, 'EX',ifNull(IP,S_COOKIE),concat('sz_gova_', SITE_ID),ifNull(MEMBER_ID,''),ifNull(IP,''),ifNull(REFERER,''),ifNull(URL,''),ifNull(TITLE,''),ifNull(COOKIE,''),
ifNull(S_COOKIE,''),ifNull(COUNTRY,''),ifNull(PROVINCE,''),ifNull(CITY,''),ifNull(SEARCH_ENGINE,''),ifNull(SEARCH_KEY,''),ifNull(SOURCE_TYPE,''),ifNull(SOURCE_HOST,''),ifNull(OS,''),
ifNull(CLIENT,''),ifNull(IS_PC,''),ifNull(RESOLUTION,''),ifNull(COLOR_DEPTH,''),ifNull(LANGUAGE,'')
from mysql('xx.xxx.xx.xxx:3306', 'ex9_1', 'cms_site_chart_main', 'root', 'xylx1.t!@#') where ID > 484794271 order by ID;
1
2
3
4
5
6
5. clickhouse表数据迁移到新的分区表
INSERT INTO visit_record_partition_month SELECT * FROM visit_record;

-- 导入后,查看该表的现有分区和数据情况
SELECT * FROM system.parts WHERE table = 'visit_record_partition_month';
1
2
3
4

————————————————
版权声明:本文为CSDN博主「坚持是一种态度」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010882234/article/details/123008705

标签:建表,String,record,ifNull,visit,--,SQL,ID,clickhouse
From: https://www.cnblogs.com/yaoyangding/p/17020881.html

相关文章

  • MySQL——事务
     1、隔离级别SQL标准的事务隔离级别包括:读未提交(readuncommitted)、读提交(readcommitted)、可重复读(repeatableread)和串行化(serializable)。读未提交是指,一个事务还......
  • 1.2复习了一下MySQL的索引
    今天又复习了一下索引,做一个总结吧主要就是复习了索引分类概念,索引使用,SQL优化等三个方面1.主键索引,唯一索引,常规索引;对于唯一索引,同一个表中可以创建多个,用作创建唯一......
  • cpp lmysqlcppconn insert multiple rows into mysql table via groups and remainder
    //model/util.h#pragmaonce#ifndef__util_h__#define__util_h__#include<chrono>#include<ctime>#include<fstream>#include<iomanip>#include<iostream>......
  • MyBatis动态SQL
    官方文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html1、介绍什么是动态SQL:动态SQL指的是根据不同的查询条件,生成不同的Sql语句官网描述:MyBatis的强大......
  • MySQL中的sql优化
    目标:掌握SQL调优的原则掌握SQL调优的基本逻辑掌握优秀SQL的编写方案掌握何为慢SQL以及检测方案SQL优化原则1、减少数据量(表中数据太多可以分表,例如......
  • MySQL中的索引应用
    1.什么是索引(Index)?官方的定义是索引是一种数据结构,从生活的纬度上讲,假如将一本书比作成一张表,这本书的目录就是表中的索引(Index)。2.索引的优势和劣势?优势:数据量比较大......
  • 针对于Sql server突然连接不到服务器的解决方法
    问题叙述点击连接之后,总是会弹出一个错误弹窗:方法解决快捷键Win+R,输入services.msc,进入到服务界面:找到SQL代理(DEV)将手动打开改成自动再连接试一次连上啦!(希望......
  • 关于MySql链接url参数的设置 专题
    报错:EstablishingSSLconnectionwithoutserver'sidentityverificationisnotrecommended.AccordingtoMySQL5.5.45+,5.6.26+and5.7.6+requirementsSSLconnec......
  • SQL注入之查询方式和报错盲注
    当进行SQL注入时,有很多注入会出现无回显的情况,其中不回显的原因可能就是SQL语句查询方式的问题导致,这个时候我们需要用到相关的报错或盲注进行后续操作,同时作为手工注入时,......
  • SQL注入之Oracle,mongoDB等注入
    常见数据库:access、mysql、mssql、MongoDB、postgresql、sqlite、oracle、sybase等Access是没有库之分,比其他数据库低一个等级。目前在市面上的access已经很少了,和asp语言......