clickhouse创建数据库以及表_clickhouse 创建表-程序员宅基地

技术标签: clickhouse  

创建数据库

  • 语法
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
  • 例子
CREATE DATABASE IF NOT EXISTS chtest;   --使用默认库引擎创建库

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

创建表

  • 语法
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
  • 示例
-- 注意首字母大写
-- 建表
node1 :) use default;
node1 :) create table test(id Int32,name String) engine=Memory; --内存引擎表
node1 :) insert into test(id,name) values(110,'test');   --字符串不能使用双引号
node1 :) select * from test;

SELECT *
FROM test

┌──id─┬─name───┐
│ 110 │ test │
└─────┴────────┘

上面命令创建了一张内存表,即使用Memory引擎。表引擎决定了数据表的特性,也决定了数据将会被如何存储及加载。Memory引擎ClickHouse最简单的表引擎,数据只会被保存在内存中,在服务重启时数据会丢失。一般应用于中间表或者临时表

分布式DDL操作

默认情况下,CREATE、DROP、ALTER、RENAME操作仅仅在当前执行该命令的server上生效。

在集群环境下,可以使用ON CLUSTER语句,这样就可以在整个集群发挥作用。

比如创建一张分布式表:

node1 :) CREATE TABLE IF NOT EXISTS user_cluster ON CLUSTER news_ck_cluster(
    id Int32, 
    name String) ENGINE = Distributed(news_ck_cluster, default, user_local,id);

Distributed表引擎的定义形式如下所示:关于ClickHouse的表引擎,后续章节做详细解释。

Distributed(cluster_name, database_name, table_name[, sharding_key])

各个参数的含义分别如下:

  • cluster_name:集群名称,与集群配置中的自定义名称相对应。
  • database_name:数据库名称
  • table_name:表名称,映射到每台服务器中的表名称。
  • sharding_key:可选的,用于分片的key值,在数据写入的过程中,分布式表会依据分片key的规则,将数据分布到各个节点的本地表。

创建完成上面的分布式表时,在每台机器上查看表,发现每台机器上都存在一张刚刚创建好的表。

接下来就需要创建本地表了,在每台机器上分别创建一张本地表:

-- 没有自动创建可以手动创建
node1 :) CREATE TABLE IF NOT EXISTS user_local 
(
    id Int32,
    name String
)ENGINE = MergeTree()
ORDER BY id
PARTITION BY id
PRIMARY KEY id;

我们先在一台机器上,对user_local表进行插入数据,然后再查询user_cluster表:

-- 插入数据
node1 :) INSERT INTO user_local VALUES(1,'tom'),(2,'jack');
-- 查询user_cluster表,可见通过user_cluster表可以操作所有的user_local表
node1 :) select * from user_cluster;
┌─id─┬─name─┐
│  2 │ jack │
└────┴──────┘
┌─id─┬─name─┐
│  1 │ tom  │
└────┴──────┘

接下来,我们再向user_cluster中插入一些数据,观察user_local表数据变化,可以发现数据被分散存储到了其他节点上了。

-- 向user_cluster插入数据
node1 :)  INSERT INTO user_cluster VALUES(3,'lilei'),(4,'lihua'); 
-- 查看user_cluster数据
node1 :) select * from user_cluster;
┌─id─┬─name─┐
│  2 │ jack │
└────┴──────┘
┌─id─┬─name──┐
│  3 │ lilei │
└────┴───────┘
┌─id─┬─name─┐
│  1 │ tom  │
└────┴──────┘
┌─id─┬─name──┐
│  4 │ lihua │
└────┴───────┘

-- 在node1上查看user_local
node1 :) select * from user_local;
┌─id─┬─name─┐
│  2 │ jack │
└────┴──────┘
┌─id─┬─name──┐
│  3 │ lilei │
└────┴───────┘
┌─id─┬─name─┐
│  1 │ tom  │
└────┴──────┘
-- 在hadoop02上查看user_local
hadoop02 :) select * from user_local;
┌─id─┬─name──┐
│  4 │ lihua │
└────┴───────┘

注:

1、创建分布式表是读时检查的机制,也就是说对创建分布式表和本地表的顺序并没有强制要求

2、在上面的语句中使用了ON CLUSTER分布式DDL,这意味着在集群的每个分片节点上,都会创建一张Distributed表,这样便可以从其中任意一端发起对所有分片的读、写请求。

3、分布式表映射到每台服务器一张本地表。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010711495/article/details/112378843

智能推荐

2021年江苏省职业院校技能大赛中职 “网络信息安全”赛项(超详细)_2021年江苏省职业院校技能大赛网络信息安全赛项中职组-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏6次。2021年中职组“网络空间安全”赛项一.江苏省竞赛任务书二.任务书解析:三.不懂的可以私信博主!一.江苏省竞赛任务书一、竞赛时间8:00—11:00 共计3小时二、竞赛阶段竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值第①阶段:单兵模式系统渗透测试任务一:攻击日志分析任务二:系统漏洞利用与提权任务三:代码审计任务四:web安全渗透测试任务五:Linux操作系统渗透测试任务六:端口扫描Python渗透测试备战阶段 休息20分钟第②阶段:分组对抗 系统加固 15分钟_2021年江苏省职业院校技能大赛网络信息安全赛项中职组

Python3爬取猫眼电影信息-程序员宅基地

文章浏览阅读1k次。Python3爬取猫眼电影信息import jsonimport requestsfrom requests.exceptions import RequestExceptionimport reimport time#爬取猫眼电影信息def get_one_page(url): #增加了User-Agent识别,需要在headers中添加User-Agent参数。 ..._python3爬取猫眼

初识Docker(基本概念)_if [ type docker]-程序员宅基地

文章浏览阅读620次。文章目录前言什么是Docker&为什么用它Docker基本概念Docker镜像Docker与虚拟机的差别DockerHub容器总结前言兄弟们,明天我就期末考试了,给我来一波祝福~!!!老规矩,什么是Docker,这玩意能干嘛,有什么用,为什么要用它,有什么优势。在学习一个新东西之前我们都需要带着这些疑问开始进入学习,那么今天的这篇博客主要就是讲解一些基本的概念,这样一来对于Docker的学习就非常快了,同时这也是我本人的笔记整理。那么接下来就开始一一解答上面提到的问题。本章节为纯理论,后面才是_if [ type docker]

将datatable转化为list_datatable杞塋ist-程序员宅基地

文章浏览阅读1.3k次。定义一个person类,声明属性id,name.addresspublic class Person { private int id; public int Id { get { return id; } set { id = value; } } _datatable杞塋ist

ARM Cortex-M0(1)---浅谈ARM Cortex-M0_m0的体系结构-程序员宅基地

文章浏览阅读6.2k次。浅谈ARM Cortex-M0 一、引言  ARM公司在2009年初发布了其嵌入式处理器系列中最小型、最低功耗的CortexM0处理器。CortexM0低功耗、高性能与极精简程序代码的特性,能应用于各种微控制器(MCU)中,并可让研发业者以8位的价位创造32位的效能,并进一步将传统的8位和16位的处理器推进至更高效能、更低功耗的32位处理器。二、关于CortexM0  AR..._m0的体系结构

Flash外部配置器件在SOPC中的应用_sopc中为什么加上flash就什么现象也没了-程序员宅基地

文章浏览阅读728次。1 Flash在SOPC中的作用   Flash在SOPC中的作用主要表现在两方面:一方面,可用Flash来保存FPGA的配置文件,从而可以省去EPCS芯片或解决EPCS芯片容量不够的问题。当系统上电后,从Flash中读取配置文件,对FPGA进行配置。另一方面,可用Flash来保存用户程序。对于较为复杂的SOPC系统,用户程序一般较大,用EPCS来存储是不现实的。系统完成配置后,将Flash中的用户程序转移到外接RAM或片内配置生成的RAM中,然后系统开始运行。  2 Flash编程_sopc中为什么加上flash就什么现象也没了

随便推点

使用Unity的50个建议_unity游戏中的一些规范和优化建议-程序员宅基地

文章浏览阅读491次。关于这些建议这些建议并不适用于所有的项目这些建议是基于我与3-20人的小团队项目经验总结出来的结构、可重复使用性、明晰度都是有价的——团队规模和项目规模决定了是否值得付这个价。一些建议也许公然违抗了传统的Unity开发。例如:使用专业化的组合而不是使用实例就很不像Unity的作风,价格也很高。即使看上去挺疯狂的,但我还是看到了这些建议给开发者带来了利益。 过程方面_unity游戏中的一些规范和优化建议

iOS与前端交互WKWebViewJavascriptBridge-程序员宅基地

文章浏览阅读2.5k次。废话不多说,直接进入正题~~~首先引入 pod 'WKWebViewJavascriptBridge'这部分代码是写死的主要用的是这部分代码 主要用的是这部分代码 主要用的是这部分代码 可以直接放在script标签下,也可以创建一个bridge.js function setupWKWebViewJavascriptBridge(callback) { if (window.WKWebViewJavascriptBridge..._wkwebviewjavascriptbridge

提高ASP.Net应用程序性能的十大方法-程序员宅基地

文章浏览阅读69次。转自:http://www.xiedaima.cn/read.php/72.htm提高asp.net应用程序性能的常说的神话 有用的提高asp.net应用程序性能的技巧 Asp.net应用程序操作数据库的建议 Asp.net中的缓存与后台处理进程 现在写一个asp.net的web应用程序变得非常的简单,许多的程序员都不愿花时间去构建一个性能良好的应用程序。本文将要讨论...

java reduce 求和_Java Stream流之求和的实现-程序员宅基地

文章浏览阅读2.2k次。BigDecimal:BigDecimal bb =list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);int、double、long:double max = list.stream().mapToDouble(User::getHeight).sum();补充:java8-Stream流之数值函数..._java reduce求和

aes_descryptoserviceprovider 中的密钥是8位; rijndaelmanaged -程序员宅基地

文章浏览阅读132次。Cannot find any provider supporting AES/CBC/PKCS7Padding关于“Cannot find any provider supporting AES/ECB/PKCS7Padding”问题的解决方案commons-codec-1.7.jarCommons Codec 1.14 Download bcprov-ext-jdk16-1.4..._descryptoserviceprovider 中的密钥是8位; rijndaelmanaged 中的密钥是32位。

AI一分钟 | 别了老司机!深圳无人驾驶公交车霸气上路;乌镇上演最强饭局,丁磊王兴刘强东大宴宾客-程序员宅基地

文章浏览阅读986次。一分钟AI美剧《硅谷》再现NIPS大会,英特尔请来Flo Rida暖场AI演讲互联网大佬的乌镇饭局刷爆朋友圈博通正式启动恶意收购:周一提交高通新董事提名深圳无人驾驶公交车上路试运营李彦宏称无人驾驶将会消灭酒驾雷军:AI将全面赋能小米的各项场景和服务刘强东乌镇发言:要在四川建185个无人机机场工信部:中国人工智能产业初步

推荐文章

热门文章

相关标签