clickhouse建库_【ClickHouse】4:clickhouse基本操作二 建库建表导数据

本文介绍了如何在ClickHouse中创建数据库和表,包括使用CREATE DATABASE和CREATE TABLE语句,以及MergeTree和Log两种表引擎。接着详细展示了通过CSV文件导入数据的步骤,包括普通CSV文件、特殊CSV文件和大规模数据文件的导入,并提供了导入后检查数据的方法。
摘要由CSDN通过智能技术生成

背景介绍:

有三台CentOS7服务器安装了ClickHouse

HostName

IP

安装程序

程序端口

centf8118.sharding1.db

192.168.81.18

clickhouse-server,clickhouse-client

9000

centf8119.sharding2.db

192.168.81.19

clickhouse-server,clickhouse-client

9000

centf8120.sharding3.db

192.168.81.20

clickhouse-server,clickhouse-client

9000

1:创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]

CREATE DATABASE testdb;  //创建数据库

DROP DATABASE testdb;     //删除数据库

2:建表

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]

(

name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1],

name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2],

...

) ENGINE = engine

CREATE TABLE test_table(

province String,

province_name String,

create_datedate) ENGINE= MergeTree(create_date, (province), 8192);

如果直接这样执行会报错,有两种方法解决:1: 在每一行后面加右斜杠,比如:

CREATE TABLE test_table( \

province String, \

province_name String, \

create_datedate\

) ENGINE= MergeTree(create_date, (province), 8192);2: 在登录的时候加 -m参数支持多行模式,比如:

clickhouse-client -m

ENGINE:是表的引擎类型,最常用的MergeTree。还有一个Log引擎也是比较常用。MergeTree要求有一个日期字段,还有主键。Log没有这个限制。

create_date:是表的日期字段,一个表必须要有一个日期字段。

province:是表的主键,主键可以有多个字段,每个字段用逗号分隔

8192:是索引粒度,用默认值8192即可。

3:导入数据

3.1:普通的CSV文件导入。

cat > test_table.csv << EOF

WA,WA_NAME,2020-08-25

CA,CA_NAME,2020-09-25

OR,OR_NAME,2020-10-25

EOF

–导数

clickhouse-client --query "INSERT INTO testdb.test_table FORMAT CSV" < test_table.csv;

–或者用管道的方式

cat test_table.csv | clickhouse-client --query “INSERT INTO testdb.test_table FORMAT CSV”

查看结果数据:

centf8118.sharding1.db :) select * from test_table limit 2;

SELECT*FROM test_table

LIMIT2┌─province─┬─province_name─┬─create_date─┐

│ WA │ WA_NAME │2020-08-25│

└──────────┴───────────────┴─────────────┘

┌─province─┬─province_name─┬─create_date─┐

│ CA │ CA_NAME │2020-09-25│

└──────────┴───────────────┴─────────────┘2 rows in set. Elapsed: 0.004 sec.

View Code

3.2:特殊的CSV文件导入(包含回车换行,转义符等)。

–建表(sql语句)

CREATE TABLE testdb.test_table3 ( id1 UInt32, id2 Float32, name1 String, name2 String, date1 Date, date2 DateTime) ENGINE = Log;

–测试数据(Linux命令)

[root@centf8118 tmp]# cat test_table3.csv

1,123.456,”abc 123”,” abc""'123”,2020-08-26,2020-08-26 17:08:09

–执行导入(Linux命令)

clickhouse-client --query "INSERT INTO testdb.test_table3 FORMAT CSV" < test_table3.csv

–查看结果(sql语句)

centf8118.sharding1.db :) select *from test_table3;

SELECT*FROM test_table3

┌─id1─┬─────id2─┬─name1─────┬─name2────────────┬──────date1─┬───────────────date2─┐

│1 │ 123.456 │ ”abc 123” │ ” abc" "'123” │ 2020-08-26 │ 2020-08-26 17:08:09 │

└─────┴─────────┴───────────┴──────────────────┴────────────┴─────────────────────┘

View Code

3.3:尝试导入官方提供的大数据表

1>>下载并提取表数据,提取的文件大小约为10GB。

我这里下载到/data/clickhouse/tmp/目录下。

curl http

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值