数据库定义
数据库引擎
Ordinary:默认引擎,在此数据库可以使用任意类型的表引擎。
Dictionary:字典引擎,数据数据库会自动为所有数据字典创建它们的数据表。
Memory:内存引擎,用于存放临时数据,此类数据库下的数据表只会停留在内存中,不会涉及任何磁盘操作,当服务重启后数据会被清楚。
Lazy:日志引擎,数据库下只能使用Log系列的表引擎。
Mysql:mysql引擎,数据库下会自动拉取远端mysql中的数据,并为它们创建mysql表引擎的数据表。
数据库表
创建数据库
CREATE DATABASE IF NOT EXISTS test_db;
创建表
CREATE TABLE test (
Title String,
URL String,
EventTime DateTime
) ENGINE = Memory;
临时表
注意点:
- 生命周期是和会话绑定的,只支持Memory表引擎,会话结束,数据自动销毁。
- 临时表不属于任何数据库,没有数据库参数也没有表引擎参数。
- 重名下,临时表优先级大于普通表。
CREATE TEMPORARY TABLE test (
Title String,
URL String,
EventTime DateTime
)
插入数据
insert into test (Title,URL,EventTime)
values('这是一个测试','url测试','2022-6-19 00:00:00');
分区表
指定类型进行分区,关键字MergeTree指定分区 partition by
CREATE TABLE par_tbs (
ID String
URL String
Eventime Date
) ENGINE = MergeTree()
PARTITION BY toTTTTMM(Eventime)
ORDER BY IP
表的增删改查
追加/更新字段
ALTER TABLE test ADD COLUMN IP String AFTER ID
删除字段
ALTER TABLE test DROP COLUMN URL
移动表并更新表名
数据表的移动只能在单个节点的范围内
RENAME TABLE default.test TO db_test.test1
分区操作
查询分区信息
SELECT * FROM default.test WHERE table = 'test_v2'
删除指定分区
ALTER TABLE test_v2 DROP PARTITION 202206