zoukankan      html  css  js  c++  java
  • 表引擎

    一、TinyLog

    1.1 最简单的表引擎,用于将数据存储在磁盘上。每列都存储在单独的压缩文件中。写入时,数据将附加到文件末尾。
    特点:
    1)、用于处理小表,
    2)、不支持索引
    3)、一次写,多次读

    1.2 简单使用

    hadoop4 :) create table t1(name String,age Int8) engine=TinyLog
    :-] ;
    
    CREATE TABLE t1
    (
        `name` String,
        `age` Int8
    )
    ENGINE = TinyLog
    
    Ok.
    
    

    二、Memory引擎

    Memory 引擎以未压缩的形式将数据存储在 RAM 中。数据完全以读取时获得的形式存储。换句话说,从这张表中读取是很轻松的。并发数据访问是同步的。锁范围小:读写操作不会相互阻塞。不支持索引。查询是并行化的。在简单查询上达到最大速率(超过10 GB /秒),因为没有磁盘读取,不需要解压缩或反序列化数据。(值得注意的是,在许多情况下,与 MergeTree 引擎的性能几乎一样高)。重新启动服务器时,表中的数据消失,表将变为空。通常,使用此表引擎是不合理的。但是,它可用于测试,以及在相对较少的行(最多约100,000,000)上需要最高性能的查询。

    Memory 引擎是由系统用于临时表进行外部数据的查询

    三、Merge

    Merge 引擎 (不要跟 MergeTree 引擎混淆) 本身不存储数据,但可用于同时从任意多个其他的表中读取数据。
    读是自动并行的,不支持写入。读取时,那些被真正读取到数据的表的索引(如果有的话)会被使用。
    Merge 引擎的参数:一个数据库名和一个用于匹配表名的正则表达式
    3.1测试:

    1. 创建三张表
    create table t2(id UInt16,name String) engine=TinyLog;
    create table t3(id UInt16,name String) engine=TinyLog;
    create table t4(id UInt16,name String) engine=TinyLog;
    
    
    1. 插入数据
    insert into t2 values(1,'first');
    insert into t3 values(2,'second');
    insert into t4 values(3,'three');
    
    1. 创建Merge表
    hadoop4 :) create table mt(id UInt16,name String)engine=Merge(currentDatabase(),'^t');
    
    CREATE TABLE mt
    (
        `id` UInt16,
        `name` String
    )
    ENGINE = Merge(currentDatabase(), '^t')
    
    Ok.
    
    
    1. 查询数据
    hadoop4 :) select * from mt;
    
    SELECT *
    FROM mt
    
    ┌─id─┬─name──┐
    │  1 │ first │
    └────┴───────┘
    ┌─id─┬─name───┐
    │  2 │ second │
    └────┴────────┘
    ┌─id─┬─name──┐
    │  3 │ three │
    └────┴───────┘
    

    四,MergeTree

    Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎。

    1、建表语句

    CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
    (
        name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
        name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
        ...
        INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
        INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
    ) ENGINE = MergeTree()
    ORDER BY expr
    [PARTITION BY expr]
    [PRIMARY KEY expr]
    [SAMPLE BY expr]
    [TTL expr [DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'], ...]
    [SETTINGS name=value, ...]
    
    记录学习和生活的酸甜苦辣.....哈哈哈
  • 相关阅读:
    Docker 部署zookeeper3.4
    Redis 3.2 生产环境集群部署
    Prometheus入门到放弃(7)之redis_exporter部署
    Docker部署ELK 7.0.1集群之Kibana安装介绍
    Docker部署ELK 7.0.1集群之Logstash安装介绍
    Docker部署ELK 7.0.1集群之Elasticsearch安装介绍
    Node web 框架
    写一个简单的选择器( 方便小项目使用 )
    Node web 框架
    Node进阶
  • 原文地址:https://www.cnblogs.com/yjt1993/p/14523307.html
Copyright © 2011-2022 走看看