clickhouse 创建数据库和表 - 腾讯云开发者社区-腾讯云


本站和网页 https://cloud.tencent.com/developer/article/1457688 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

clickhouse 创建数据库和表 - 腾讯云开发者社区-腾讯云腾讯云备案控制台开发者社区学习实践活动专区工具TVP文章/答案/技术大牛搜索搜索关闭写文章提问登录/注册用户57603431.5K 篇文章clickhouse 创建数据库和表转到我的清单专栏首页sktjclickhouse 创建数据库和表51分享分享文章到朋友圈分享文章到 QQ分享文章到微博复制文章链接到剪贴板海报分享海报分享clickhouse 创建数据库和表发布于2019-07-05 11:08:53阅读 8.6K0一、先来说一下,ClickHouse为啥快MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快;
ClickHouse不支持事务,不存在隔离级别。这里要额外说一下,有人觉得,你一个数据库都不支持事务,不支持ACID还玩个毛。ClickHouse的定位是分析性数据库,而不是严格的关系型数据库。又有人要问了,数据都不一致,统计个毛。举个例子,汽车的油表是100%准确么?为了获得一个100%准确的值,难道每次测量你都要停车检查么?统计数据的意义在于用大量的数据看规律,看趋势,而不是100%准确。
IO方面,MySQL是行存储,ClickHouse是列存储,后者在count()这类操作天然有优势,同时,在IO方面,MySQL需要大量随机IO,ClickHouse基本是顺序IO。
有人可能觉得上面的数据导入的时候,数据肯定缓存在内存里了,这个的确,但是ClickHouse基本上是顺序IO,用过就知道了,对IO基本没有太高要求,当然,磁盘越快,上层处理越快,但是99%的情况是,CPU先跑满了(数据库里太少见了,大多数都是IO不够用)。
二、创建库CREATE/ATTACH DATABASE zabbix ENGINE = Ordinary;ATTACH 也可以建库,但是metadata目录下不会生成.sql文件,一般用于metadata元数据sql文件被删除后,恢复库表结构使用三、创建本地表CREATE TABLE test02( id UInt16,col1 String,col2 String,create_date date ) ENGINE = MergeTree(create_date, (id), 8192);ENGINE:是表的引擎类型,MergeTree:最常用的,MergeTree要求有一个日期字段,还有主键。Log引擎没有这个限制,也是比较常用。ReplicatedMergeTree:MergeTree的分支,表复制引擎。Distributed:分布式引擎。create_date:是表的日期字段,一个表必须要有一个日期字段。id:是表的主键,主键可以有多个字段,每个字段用逗号分隔。8192:是索引粒度,用默认值8192即可。四、创建分布式表CREATE TABLE distributed_table AS table ENGINE = Distributed(cluster, db, table, rand());cluster:配置文件中的群集名称。db:库名。table:本地表名。rand():分片方式:随机。intHash64():分片方式:指定字段做hash。Distribute引擎会选择每个分发到的Shard中的”健康的”副本执行SQL五、DDL如果想按集群操作,需要借助zookeeper,在config.xml中添加配置<distributed_ddl><path>/clickhouse/task_queue/ddl</path></distributed_ddl>一个节点创建表,会同步到各个节点CREATE TABLE db.table [ON CLUSTER cluster] (...)添加、删除、修改列ALTER TABLE [db].table [ON CLUSTER cluster] ADD|DROP|MODIFY COLUMN ...rename 支持*MergeTree和Distributedrename table db.table1 to db.table2 [ON CLUSTER cluster]truncate table db.table;不支持Distributed引擎六、delete/update 不支持Distributed引擎ALTER TABLE [db.]table DELETE WHERE filter_expr...ALTER TABLE [db.]table UPDATE column1 = expr1 [, ...] WHERE ...七、分区表按时间分区:toYYYYMM(EventDate):按月分区toMonday(EventDate):按周分区toDate(EventDate):按天分区按指定列分区:PARTITION BY cloumn_name对分区的操作:alter table test1 DROP PARTITION [partition] #删除分区alter table test1 DETACH PARTITION [partition]#下线分区alter table test1 ATTACH PARTITION [partition]#恢复分区alter table .test1 FREEZE PARTITION [partition]#备份分区八、数据同步采用remote函数insert into db.table select * from remote('目标IP',db.table,'user','passwd')csv文件导入clickhousecat test.csv | clickhouse-client -u user --password password --query="INSERT INTO db.table FORMAT CSV"同步mysql库中表CREATE TABLE tmp ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('hostip:3306', 'db', 'table', 'user', 'passwd') ;4) clickhouse-copier 工具九、时间戳转换select toUnixTimestamp('2018-11-25 00:00:02');select toDateTime(1543075202);十、其他事项clickhouse的cluster环境中,每台server的地位是等价的,即不存在master-slave之说,是multi-master模式。各replicated表的宿主server上要在hosts里配置其他replicated表宿主server的ip和hostname的映射。上面描述的在不同的server上建立全新的replicated模式的表,如果在某台server上已经存在一张replicated表,并且表中已经有数据,这时在另外的server上执行完replicated建表语句后,已有数据会自动同步到其他server上面。如果zookeeper挂掉,replicated表会切换成read-only模式,不再进行数据同步,系统会周期性的尝试与zk重新建立连接。如果在向一张replicated表insert数据的时候zookeeper挂掉,这时候会抛一个异常,等到与zk重新建立连接以后,系统(其他replicated表所在server)会检查本地文件与预期文件(保存在zk上)的差别,如果是轻微的差别,直接同步覆盖,如果发现有数据块损坏或者识别不了,则将这些数据文件移动到“detached”子目录,然后重新根据zk所记录的文件信息进行副本的同步。drop掉某一台server上的replicated表,不会对其他server上面的replicated表造成影响。本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!本文分享自作者个人站点/博客:https://www.jianshu.com/u/92422fe74fa9复制如有侵权,请联系 cloudcommunity@tencent.com 删除。展开阅读全文云推荐引擎ZooKeeper举报点赞 5分享登录 后参与评论0 条评论相关文章Clickhouse创建分布式表以及表引擎介绍在读取时,引擎只需要输出所请求的列,但在某些情况下,引擎可以在响应请求时部分处理数据。职场亮哥MySQL创建数据库和创建数据表MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。Python碎片公众号MySQL创建数据库和创建数据表MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。全栈程序员站长clickhouse的sql语法功能1-创建库,创建表等分布式引擎参数:服务器配置文件中的集群名,远程数据库名,远程表名,数据分片键(可选)。
下面是样例:公众号-利志分享使用Linq to Sql 创建数据库和表1.建一个类Article
1 using System.Data.Linq.Mapping;
5 [Table(Name =...lpxxnOracle创建表空间和创建临时表空间发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157622.html原文链接:https://javaforall.cn全栈程序员站长oracle数据库创建表 实际工作中,在数据库中创建表是经常会用到的。我们今天呢?主要给大家来分享一下在数据库如何通过sql语句去创建表。其实,创建表很简单,只需要把数据...良月柒Access数据库创建表大家好,上节介绍了最常用的概念模型E-R模型,并通过模型将图书馆管理数据库分成不同的表格,本节简单演示下在Access数据库中创建对应的表。涉及的问题主要是字段...无言之月SQL2012_创建数据库,创建表,表的内外链接create table a1(
aid int constraint PK_a primary key,
age int check(age ...赵腰静Laravel Migrate修改表和创建表php artisan make:migration create_table_test –table=test_a 修改表
Schema::table(‘te...苦咖啡数据库中创建表的语句_创建基本表学生表的sql语句在线Sqlite查看器|修改器 http://lzltool.com/sqlite-viewer
全栈程序员站长mysql数据库(5): 创建表 (2)创建一个宠物关于名字,主人,种类,性别。注意的是,创建表时候VARCHAR必须大写,table可以小写。川川菜鸟Hive 基本操作(创建数据库与创建数据库表)修改数据库
可以使用alter database 命令来修改数据库的一些属性。但是数据库的元数据信息是不可更改的,包括数据库的名称以及数据库所在的位置ChinaManorspringboot+mybatis动态创建数据表和删除数据库表知识浅谈ClickHouse的副本以及分布式表的创建(九)副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从 其他服务器获得相同的数据。Java技术债务如何创建oracle数据表空间,oracle创建数据库/表空间||||||||||||||||||||||||简略的说||||||||||||||||||||||||||||全栈程序员站长Oracle创建表空间和表「建议收藏」Oracle创建表同SQL Server一样,使用CREATE TABLE命令来完成。创建约束则使用如下命令:全栈程序员站长PolarDB 数据库:使用polardb进行创建数据库、创建用户、授权、创建表空间、创建schema表的常用操作使用演示进入数据库:
通过 su - 数据库对应的系统管理员 登录后,再使用 psql 命令即可进入数据库。小蓝枣数据库建表规则_SQL创建数据表建表语句的规范:
1.字段的设计
A. 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。
  B. 数据类型尽量小,这里的尽量小是指在满足...全栈程序员站长更多文章作者介绍用户5760343关注专栏文章1.5K阅读量638.8K获赞3.6K作者排名442精选专题腾讯云原生专题云原生技术干货,业务实践落地。活动推荐腾讯云自媒体分享计划入驻社区,可分享总价值百万资源包立即入驻邀请好友加入自媒体分享计划邀请好友,同享奖励 30 / 100 / 180 元云服务器代金券立即邀请运营活动广告关闭社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于视频介绍社区规范免责声明联系我们友情链接归档问题归档专栏文章归档快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列 网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN 加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2022 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 京公网安备 11010802017518 粤B2-20090059-1扫描二维码扫码关注腾讯云开发者领取腾讯云代金券