mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
Merge branch 'master' into dictionaries_ddl_parser
This commit is contained in:
commit
470dca548b
@ -42,7 +42,7 @@
|
||||
- [ClickHouse.Ado](https://github.com/killwort/ClickHouse-Net)
|
||||
- [ClickHouse.Net](https://github.com/ilyabreev/ClickHouse.Net)
|
||||
- C++
|
||||
- [clickhouse-cpp](https://github.com/artpaul/clickhouse-cpp/)
|
||||
- [clickhouse-cpp](https://github.com/ClickHouse/clickhouse-cpp/)
|
||||
- Elixir
|
||||
- [clickhousex](https://github.com/appodeal/clickhousex/)
|
||||
- Nim
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Functions for working with geographical coordinates
|
||||
# Functions for Working with Geographical Coordinates
|
||||
|
||||
## greatCircleDistance
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
## 数据压缩
|
||||
|
||||
在一些列式数据库管理系统中(例如:InfiniDB CE and MonetDB) 不是用数据压缩。但是, 数据压缩在实现优异的存储系统中确实起着关键的作用。
|
||||
在一些列式数据库管理系统中(例如:InfiniDB CE 和 MonetDB) 并没有使用数据压缩。但是, 若想达到比较优异的性能,数据压缩确实起到了至关重要的作用。
|
||||
|
||||
## 数据的磁盘存储
|
||||
|
||||
@ -18,30 +18,30 @@
|
||||
|
||||
## 多核心并行处理
|
||||
|
||||
大型查询可以以很自然的方式在ClickHouse中进行并行化处理,以此来使用当前服务器上可用的所有资源。
|
||||
ClickHouse会使用服务器上一切可用的资源,从而以最自然的方式并行处理大型查询。
|
||||
|
||||
## 多服务器分布式处理
|
||||
|
||||
上面提到的列式数据库管理系统中,几乎没有一个支持分布式的查询处理。
|
||||
在ClickHouse中,数据可以保存在不同的shard上,每一个shard都由一组用于容错的replica组成,查询可以并行的在所有shard上进行处理。这些对用户来说是透明的
|
||||
在ClickHouse中,数据可以保存在不同的shard上,每一个shard都由一组用于容错的replica组成,查询可以并行地在所有shard上进行处理。这些对用户来说是透明的
|
||||
|
||||
## 支持SQL
|
||||
|
||||
ClickHouse支持基于SQL的查询语言,该语言大部分情况下是与SQL标准兼容的。
|
||||
ClickHouse支持基于SQL的声明式查询语言,该语言大部分情况下是与SQL标准兼容的。
|
||||
支持的查询包括 GROUP BY,ORDER BY,IN,JOIN以及非相关子查询。
|
||||
不支持窗口函数和相关子查询。
|
||||
|
||||
## 向量引擎
|
||||
|
||||
为了高效的使用CPU,数据不仅仅按列存储,同时还按向量(列的一部分)进行处理。
|
||||
为了高效的使用CPU,数据不仅仅按列存储,同时还按向量(列的一部分)进行处理,这样可以更加高效地使用CPU。
|
||||
|
||||
## 实时的数据更新
|
||||
|
||||
ClickHouse支持在表中定义主键。为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。
|
||||
ClickHouse支持在表中定义主键。为了使查询能够快速在主键中进行范围查找,数据总是以增量的方式有序的存储在MergeTree中。因此,数据可以持续不断地高效的写入到表中,并且写入的过程中不会存在任何加锁的行为。
|
||||
|
||||
## 索引
|
||||
|
||||
按照主键对数据进行排序,这将帮助ClickHouse以几十毫秒的低延迟对数据进行特定值查找或范围查找。
|
||||
按照主键对数据进行排序,这将帮助ClickHouse在几十毫秒以内完成对数据特定值或范围的查找。
|
||||
|
||||
## 适合在线查询
|
||||
|
||||
@ -57,7 +57,7 @@ ClickHouse提供各种各样在允许牺牲数据精度的情况下对查询进
|
||||
|
||||
## 支持数据复制和数据完整性
|
||||
|
||||
ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些复杂的情况下需要少量的手动恢复。
|
||||
ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些少数的复杂情况下需要手动恢复。
|
||||
|
||||
更多信息,参见 [数据复制](../operations/table_engines/replication.md)。
|
||||
|
||||
|
@ -9,6 +9,60 @@
|
||||
* 是否可以执行多线程请求。
|
||||
* 数据复制参数。
|
||||
|
||||
在读取时,引擎只需要输出所请求的列,但在某些情况下,引擎可以在响应请求时部分处理数据。
|
||||
# 引擎类型
|
||||
## MergeTree
|
||||
|
||||
对于大多数正式的任务,应该使用MergeTree族中的引擎。
|
||||
适用于高负载任务的最通用和功能最强大的表引擎。这些引擎的共同特点是可以快速插入数据并进行后续的后台数据处理。 MergeTree系列引擎支持数据复制(使用[Replicated*](https://clickhouse.yandex/docs/en/operations/table_engines/replication/) 的引擎版本),分区和一些其他引擎不支持的其他功能。
|
||||
|
||||
该类型的引擎:
|
||||
* [MergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/)
|
||||
* [ReplacingMergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/replacingmergetree/)
|
||||
* [SummingMergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/summingmergetree/)
|
||||
* [AggregatingMergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/aggregatingmergetree/)
|
||||
* [CollapsingMergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/collapsingmergetree/)
|
||||
* [VersionedCollapsingMergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/versionedcollapsingmergetree/)
|
||||
* [GraphiteMergeTree](https://clickhouse.yandex/docs/en/operations/table_engines/graphitemergetree/)
|
||||
|
||||
## Log
|
||||
具有最小功能的[轻量级引擎](https://clickhouse.yandex/docs/en/operations/table_engines/log_family/)。当您需要快速写入许多小表(最多约100万行)并在以后整体读取它们时,该类型的引擎是最有效的。
|
||||
|
||||
该类型的引擎:
|
||||
|
||||
* [TinyLog](https://clickhouse.yandex/docs/en/operations/table_engines/tinylog/)
|
||||
* [StripeLog](https://clickhouse.yandex/docs/en/operations/table_engines/stripelog/)
|
||||
* [Log](https://clickhouse.yandex/docs/en/operations/table_engines/log/)
|
||||
|
||||
## Intergation engines
|
||||
用于与其他的数据存储与处理系统集成的引擎。
|
||||
该类型的引擎:
|
||||
|
||||
* [Kafka](https://clickhouse.yandex/docs/en/operations/table_engines/kafka/)
|
||||
* [MySQL](https://clickhouse.yandex/docs/en/operations/table_engines/mysql/)
|
||||
* [ODBC](https://clickhouse.yandex/docs/en/operations/table_engines/odbc/)
|
||||
* [JDBC](https://clickhouse.yandex/docs/en/operations/table_engines/jdbc/)
|
||||
* [HDFS](https://clickhouse.yandex/docs/en/operations/table_engines/hdfs/)
|
||||
|
||||
## 用于其他特定功能的引擎
|
||||
该类型的引擎:
|
||||
|
||||
* [Distributed](https://clickhouse.yandex/docs/en/operations/table_engines/distributed/)
|
||||
* [MaterializedView](https://clickhouse.yandex/docs/en/operations/table_engines/materializedview/)
|
||||
* [Dictionary](https://clickhouse.yandex/docs/en/operations/table_engines/dictionary/)
|
||||
* [Merge](https://clickhouse.yandex/docs/en/operations/table_engines/merge/)
|
||||
* [File](https://clickhouse.yandex/docs/en/operations/table_engines/file/)
|
||||
* [Null](https://clickhouse.yandex/docs/en/operations/table_engines/null/)
|
||||
* [Set](https://clickhouse.yandex/docs/en/operations/table_engines/set/)
|
||||
* [Join](https://clickhouse.yandex/docs/en/operations/table_engines/join/)
|
||||
* [URL](https://clickhouse.yandex/docs/en/operations/table_engines/url/)
|
||||
* [View](https://clickhouse.yandex/docs/en/operations/table_engines/view/)
|
||||
* [Memory](https://clickhouse.yandex/docs/en/operations/table_engines/memory/)
|
||||
* [Buffer](https://clickhouse.yandex/docs/en/operations/table_engines/buffer/)
|
||||
|
||||
#虚拟列
|
||||
虚拟列是表引擎组成的一部分,它在对应的表引擎的源代码中定义。
|
||||
|
||||
您不能在 `CREATE TABLE` 中指定虚拟列,并且虚拟列不会包含在 `SHOW CREATE TABLE` 和 `DESCRIBE TABLE` 的查询结果中。虚拟列是只读的,所以您不能向虚拟列中写入数据。
|
||||
|
||||
如果想要查询虚拟列中的数据,您必须在SELECT查询中包含虚拟列的名字。SELECT * 不会返回虚拟列的内容。
|
||||
|
||||
若您创建的表中有一列与虚拟列的名字相同,那么虚拟列将不能再被访问。我们不建议您这样做。为了避免这种列名的冲突,虚拟列的名字一般都以下划线开头。
|
||||
|
@ -239,7 +239,7 @@ def process_pull_requests(pull_requests, users, repo):
|
||||
long_descr_pos = i
|
||||
|
||||
cat = ''
|
||||
if cat_pos:
|
||||
if cat_pos is not None:
|
||||
# TODO: Sometimes have more than one
|
||||
cat = lines[cat_pos + 1]
|
||||
cat = cat.strip().lstrip('-').strip()
|
||||
|
Loading…
Reference in New Issue
Block a user