clickhouse数据库操作

一、关于clickhouse引擎

ch数据库和表都可以设置自己的引擎,不同数据选择适合的引擎效率会增加。不同的引擎代表不同的类型,比如拥有何种特性、数据以何种形式被存储以及如何被加载。这个概念在其他数据库里体现的不多。

引擎参考:https://blog.csdn.net/qq_42979842/article/details/108939841

1.1、数据库引擎

Ordinary
  默认引擎,此数据库可以使用任意表引擎。

Dictionary
  字典引擎,此数据库会为所有数据字典创建数据表。

 Memory
  内存引擎,此数据库中的表只存放在内存中,重启丢失。

Lazy
  日志引擎,此数据库只能使用Log系列的表引擎。

MySQL
  MySQL引擎,此数据库可以自动拉取远端MySQL数据(类似于Oracle的dblink,可以对远程表进行读写)

1.2、数据表引擎

 

 

 1.3、数据库集群和分布式的概念

-数据库集群有的具有单份数据集,有的具有两份或多份相似的数据集,有的具有两份或多份实时一致的数据集,是将几台服务器集中在一起,实现同一数据集业务;而分布式数据库系统往往具有完全不同的数据集,是将几台服务器集中在一起,实现不同数据集的业务。
-数据库集群往往是同构的系统,要求集群各节点都具有相同的操作系统和数据库系统版本,甚至补丁包的版本也要求保持一致;而分布式数据库系统可以是异构系统,包含不同的操作系统和不同的数据库系统。
-数据库集群往往建立在高速局域网内,一般在一个网段内;而分布式数据库系统既可以是高速局域网,也可以是跨部门、跨单位的异地远程网络,一般是跨网段,需要路由。
-数据库集群组织紧密,一台节点跨了,其他节点可以立即顶上,服务保证延续;而分布式数据库组织松散,一个节点跨了,那这个节点的数据服务就不可用了。
-分布式数据库的数据处理一般需要多个节点分布式执行,协同配合才能出结果;而数据库集群不一定需要分布式协作就能出结果;
-分布式数据库中的每一个数据节点,为提升高可用和性能,都可以做成数据库集群。

我们单机操作不涉及这么复杂的概念,一般一个单机数据库就够了,这里提出来是为了学习clickhouse的时候会遇到相关概念,免得一脸懵逼。

二、新建数据库

基本语法:【方括号里的可以省略】

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

举例:

CREATE DATABASE IF NOT EXISTS mydb;

 使用默认引擎Ordinary,在此数据库下可以使用任意类型的表引擎,在绝大多数情况下都只需使用默认的数据库引擎

三、创建数据表

基本语法:

CREATE TABLE [IF NOT EXISTS][db.]table_name [ON CLUSTER cluster]
(name1 [type1] [DEFAULT|MATERIALIZED|ALIASexpr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],...) ENGINE = engine

后面的‘()’括号中的内容为表结构及引擎声明;

其中:

DEFAULT – 默认值,如果INSERT中不包含指定的列,那么将通过表达式计算它的默认值并填充它;

MATERIALIZED – 物化表达式,被该表达式指定的列不能被INSERT,因为它总是被计算出来的,对于INSERT而言,不需要考虑这些列。 另外,在SELECT查询中如果包含星号,此列不会被查询;

ALIAS – 别名,这样的列不会存储在表中。它的值不能够通过INSERT写入,同时使用SELECT查询星号时,这些列也不会被用来替换星号,但是它们可以显示的用于SELECT中,在这种情况下,在查询分析中别名将被替换

3.1、直接创建

create table t1(id UInt8,name String,address String)engine=MergeTree order by id

3.2、创建一个与其他表结构相同的表

create table t2 as t1 engine=MergeTree order by id

可以对其指定不同的表引擎声明。如果没有表引擎声明,则创建的表将与db2.name2使用相同的表引擎。

3.3、使用指定的引擎创建一个与SELECT子句的结果具有相同结构的表,并使用SELECT子句的结果填充它

create table t3engine=TinyLog as select * from t1






长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html
原文地址:https://www.cnblogs.com/judes/p/15016451.html