• ClickHouse 详解


    1. 简介

    官方文档:https://clickhouse.yandex/docs
    ClickHouse 是一个采用列式存储,用于联机分析(OLAP)的数据库管理系统(DBMS)

    2.ClickHouse 的优点

    2.1 "真正"的列式存储

    一个真正的列式存储的数据库管理系统中,除了数据本身之外不应该存在其他额外的数据。意味着为了避免在只旁边存储它们的长度 'number',必须支持固定长度的数值类型。ClickHouse 的数据类型都是固定长度。

    2.2 实时的数据更新

    ClcikHouse 数据是以增量的方式有序的存储在 MergeTree 中。因此,数据可以持续不断高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。

    2.3 支持近似计算

    ClickHouse 提供各种各样在允许牺牲精度的情况下对查询进行加速的方法

    1. 用于近似计算的各类聚合函数,如:distinct values, medians, quantiles
    2. 基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据。
    3. 不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用

    2.4 支持数据复制和数据完整性

    ClickHouse 使用异步的多住复制技术。当数据被写入到任何一个可用副本后,系统在后台将数据分发给其他副本。

    1. 只有 MergeTree 系列里的表壳支持副本
    2. 副本是表级别的,不是整个服务器级的。
    3. 副本不依赖分片,每个分片有它的独立副本
    4. 对于 InsertAlter 语句操作数据的会在压缩的情况下被复制
    5. CREATE,DROP,DETACH,RENAME 语句只会在单个服务器上执行,不会被复制
      • CREATE TABLE 在运行此语句的服务器上创建一个新的可复制表。如果此表已存在其他服务器上,则给该表添加新副本。
      • DROP TABLE 删除运行此查询的服务器上的副本。
      • RENAME 重命名一个副本。换句话说,可复制表不同的副本可以有不同的名称。

    3. ClickHouse 的缺点

    1. 没有完整的事务支持
    2. 缺少高频率、低延迟的修改或删除已存在数据的能力,仅能用于批量删除或修改数据。
  • 相关阅读:
    ABP
    妖道角
    检测空值,以及会不会出现mapping类型不一致的问题
    wcf服务契约代理链
    wcf服务契约继承
    win64+anaconda+xgboost(转)
    python中迭代问题
    ROC曲线和AUC值(转)
    python中split()和split(' ')的区别
    str和repr的区别(转)
  • 原文地址:https://www.cnblogs.com/wuning/p/12058478.html
Copyright © 2020-2023  润新知