Clickhouse_Table_Engine_总结

Clickhouse_Table_Engine_总结

Clickhouse表引擎决定了:

  • 数据如何存储,如何读取
  • 支持何种查询
  • 并发数据访问能力
  • 索引的使用
  • 是否支持多线程请求执行
  • 数据如何同步

当读取数据时, 引擎只需要抽取必要的列簇. 然而,在一些场景下,引擎可以半处理数据

对于大多数场合下,应该使用 MergeTree家族 引擎

以下包括官方介绍的17种表引擎的介绍:


Clickhouse Dictionaries 使用样例

Clickhouse Dictionaries 字典使用

clickhouse支持从各种数据源添加自己的字典。字典的数据源可以是本地文本、可执行文件
、HTTP(s)资源或其他DBMS。有关更多信息,请参阅“外部词典的来源”。

  • 完全或部分将字典存储在RAM中。
  • 定期更新字典并动态加载缺失值。换句话说,可以动态加载字典。

外部词典的配置位于一个或多个文件中。 配置的路径在dictionaries_config参数中指定。

字典配置:

1
<dictionaries_config>*_dictionary.xml</dictionaries_config>

当前配置文件目录下,以_dictionary.xml结尾的均作为字典配置文件进行字典加载。

字典可以在服务器启动时或首次使用时加载,具体取决于dictionaries_lazy_load设置。


Clickhouse Dictionaries 外部字典的数据源配置

Clickhouse Dictionaries - Sources of External Dictionaries

Clickhouse允许从不同的源构造外部字典,配置文件通常像这样:

1
2
3
4
5
6
7
8
9
10
11
12
<yandex>
<dictionary>
...
<source>
<source_type>
<!-- Source configuration -->
</source_type>
</source>
...
</dictionary>
...
</yandex>

数据源则是通过source项进行配置

其中支持的数据源的类型有(source_type):

  • Local file
  • Executable file
  • HTTP(s)
  • DBMS
    • MySQL
    • ClickHouse
    • MongoDB
    • ODBC

Clickhouse Dictionaries 在内存中的存储方式

Clickhouse Dictionaries -Storing Dictionaries in Memory

Clickhouse支持多种方式将字典存储在内存中

一般推荐flathashedcomplex_key_hashed,这些提供了最佳的处理速度,但是不推荐使用cache,因为可能会出现性能差且难以选择最佳参数的问题。

有以下几种方式提升字典的使用性能:

  • 在使用Group By之后再调用函数处理字典
  • 将属性标记为单射(injective).如果不同的属性值对应不同的键,则属性被称为单射。因此,当group by 中使用通过key获取字典value的函数时,此函数将自动从group by中取出。

Clickhouse Dictionaries 键值配置说明

Clickhouse_Dictionary Key and Fields

字典键值配置说明

字典键、值的配置是在配置文件中的structure节点

整体的配置结构

1
2
3
4
5
6
7
8
9
10
11
<dictionary>
<structure>
<id>
<name>Id</name>
</id>
<attribute>
<!-- Attribute parameters -->
</attribute>
...
</structure>
</dictionary>

Columns are described in the structure:

  • <id> - key column.
  • <attribute> - data column. 这里可以配置很多数据列

Clickhouse聚合函数速记图

Clickhouse 聚合函数

Clickhouse 聚合函数速查图:

Clickhouse函数速记图

Clickhouse 函数

Clickhouse 函数速查图:

clickhouse_参数配置(持续更新)

clickhouse 参数配置(持续更新)

  • 远程访问
  • 内存限制
  • 设置数据目录

https://clickhouse.yandex/docs/en/operations/configuration_files/


Centos7源码编译安装Clickhouse

Centos7 编译安装Clickhouse

  1. 检查是否支持SSE4.2
  2. 安装依赖项
  3. 安装高版本 gcc
  4. 安装cmake 3
  5. 源码安装Clickhouse
  6. 启动服务

Hbase Shell 常用命令

HBase是一个分布式的、面向列的开源数据库

Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务。Hbase被分区为表格,表格又被进一步分割为列簇。列簇必须使用schema定义,列簇将某一类型列集合起来(列不要求schema定义),每一个 key/value对在Hbase中被定义为一个cell,每一个key由row-key,列簇、列和时间戳。在Hbase中,行是key/value映射的集合,这个映射通过row-key来唯一标识。Hbase利用Hadoop的基础设施,可以利用通用的设备进行水平的扩展。

Hive是一种类SQL的引擎,并且运行MapReduce任务。Hive适合用来对一段时间内的数据进行分析查询
Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库。Hbase非常适合用来进行大数据的实时查询

HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况。安装完HBase之后,如果配置了HBase的环境变量,只要在shell中执行hbase shell就可以进入命令行界面


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×