create table db_test2.partition_table ( id Int64 comment ‘主键’, table_schema String comment ‘库名’, etl_time datetime comment ‘时间’ ) engine=MergeTree() partition by toYYYYMM(etl_time) order by id ; select table,partition,path from system.parts where table=‘partition_table’; SELECT * FROM partition_v1 WHERE EventTime =‘2019-05-01’
在后续的查询过程中,可以利用分区索引跳过6月份分区目录。
查询分区信息
select table,partition,path from system.parts where table=‘partition_table’;
删除分区
alter table partition_table drop partition 20190501
删除分区后再重新写入,可以达到更新的目的
复制分区
两张表的表结构完全一致的情况并且都有分区键 可以复制分区
ALTER TABLE partition_v2 REPLACE PARTITION 201908 FROM partition_v1
数据写入
INSERT INTO partition_v2 VALUES (‘A0014’,toString(1+2), now())
INSERT INTO partition_v2 FORMAT CSV ‘A0017’,‘www.nauu.com’, ‘2019-10-01’ ‘A0018’,‘www.nauu.com’, ‘2019-10-01’
CREATE TABLE agg_table_basic(
id String,
city String,
code String,
value UInt32
)ENGINE = MergeTree()
PARTITION BY city
ORDER BY (id,city)
然后创建固化视图
CREATE MATERIALIZED VIEW agg_view
ENGINE = AggregatingMergeTree()
PARTITION BY city
ORDER BY (id,city)
AS SELECT
id,
city,
uniqState(code) AS code,
sumState(value) AS value
FROM agg_table_basic
GROUP BY id, city
新增数据到底表
INSERT INTO TABLE agg_table_basic
VALUES('A000','wuhan','code1',100),('A000','wuhan','code2',200),('A000','zhuhai', 'code1',200)
数据会自动的同步到物化视图,并按照aggregatingMErgeTree引擎进行规则处理
查询数据
SELECT id, sumMerge(value), uniqMerge(code) FROM agg_view GROUP BY id, city
支持增删的引擎,通过以增代删的思路进行行级别的修改和删除。定义一个sign标记位字段,如果数据航的状态是1标识是一条有效的数据;如果sign标记行是-1,标识数据需要被删除。 通过order by -1 和1 进行两两抵消,如果-1=1数量 ,这条数据消失。如果1>-1数量,修改操作保留1数据。 有个致命缺点是顺序不能乱,不能先-1在1
CREATE TABLE collpase_table( id String, code Int32, create_time DateTime, sign Int8 )ENGINE = CollapsingMergeTree(sign) PARTITION BY toYYYYMM(create_time) ORDER BY id
VersionedCollapsingMergeTree
创建方式
CREATE TABLE ver_collpase_table(
id String,
code Int32,
create_time DateTime,
sign Int8,
ver UInt8
)ENGINE = VersionedCollapsingMergeTree(sign,ver)
PARTITION BY toYYYYMM(create_time)
ORDER BY id
加入版本的控制,不在局限于写入的顺序
其他表引擎
外部存储类型
只负责元数据管理和数据查询,数据文件由外部系统提供
hdfs
创建方式
CREATE TABLE hdfs_table1( id UInt32, code String, name String )ENGINE = HDFS(‘hdfs://hdp1.nauu.com:8020/clickhouse/hdfs_table1’,‘CSV’)
范型参数不仅仅可以用于类型的声明上,例如
package com.tom.lang.generics;
import java.util.List;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value =
How to generate a globally unique identifier in Java
http://stackoverflow.com/questions/21536572/generate-unique-id-in-java-to-label-groups-of-related-entries-in-a-log
http://stackoverflow
SHOW [FULL] TABLES [FROM db_name] [LIKE 'pattern']
SHOW TABLES列举了给定数据库中的非TEMPORARY表。您也可以使用mysqlshow db_name命令得到此清单。
本命令也列举数据库中的其它视图。支持FULL修改符,这样SHOW FULL TABLES就可以显示第二个输出列。对于一个表,第二列的值为BASE T
web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的经验写了一个to do list,按照这个清单,一条一条的学习,事半功倍,很快就能掌握 一共25条,即便很磨蹭,2小时也能搞定一条,25*2=50。只需要50小时就能掌握任意一种web框架
各类web框架大同小异:现代web开发框架的6大元素,把握主线,就不会迷路
建议把本文
hostname // to display the computer name
hostname <changed name> // to change
go to: /etc/sysconfig/network, add/modify HOSTNAME=NEWNAME to change permenately
dont forget to change /etc/hosts
Java代码:
public class test03 {
public static void main(String[] args) {
int[][] a = {{1},{2,3},{4,5,6}};
System.out.println(a[0][1]);
}
}
运行结果:
Exception in thread "mai