关于clickhouse:ClickHouse07ClickHouse数据库引擎解析
这里会介绍ClickHouse几种数据库引擎,曾经对应的特点和利用的场景。数据库引擎容许您解决数据表。默认状况下,ClickHouse应用Atomic数据库引擎。它提供了可配置的table engines和SQL dialect。目前的数据库引擎: MySQLMaterializeMySQLLazyAtomicPostgreSQLMaterializedPostgreSQLReplicatedSQLiteAtomic反对非阻塞的DROP TABLE和RENAME TABLE查问和原子的EXCHANGE TABLES t1 AND t2查问。默认状况下应用Atomic数据库引擎。 建表语句 CREATE DATABASE test[ ENGINE = Atomic];个性Table UUID数据库Atomic中的所有表都有惟一的UUID,并将数据存储在目录/clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/,其中xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy是该表的UUID。 通常,UUID是主动生成的,但用户也能够在创立表时以雷同的形式显式指定UUID(不倡议这样做)。例如: CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE = ...;RENAME TABLESRENAME查问是在不更改UUID和挪动表数据的状况下执行的。这些查问不会期待应用表的查问实现,而是会立刻执行。 DROP/DETACH TABLES在DROP TABLE上,不删除任何数据,数据库Atomic只是通过将元数据挪动到/clickhouse_path/metadata_dropped/将表标记为已删除,并告诉后盾线程。最终表数据删除前的提早由database_atomic_delay_before_drop_table_sec设置指定。 能够应用SYNC修饰符指定同步模式。应用database_atomic_wait_for_drop_and_detach_synchronously设置执行此操作。 EXCHANGE TABLESEXCHANGE以原子形式替换表。 -- 非原子操作RENAME TABLE new_table TO tmp, old_table TO new_table, tmp TO old_table;--原子操作EXCHANGE TABLES new_table AND old_table;ReplicatedMergeTree in Atomic Database对于ReplicatedMergeTree表,倡议不要在ZooKeeper和正本名称中指定engine-path的参数。在这种状况下,将应用配置的参数default_replica_path和default_replica_name。 如果要显式指定引擎的参数,倡议应用{uuid}宏。这是十分有用的,以便为ZooKeeper中的每个表主动生成惟一的门路。 MySQLMySQL引擎用于将近程的MySQL服务器中的表映射到ClickHouse中,并容许您对表进行INSERT和SELECT查问,以不便您在ClickHouse与MySQL之间进行数据交换。 MySQL数据库引擎会将对其的查问转换为MySQL语法并发送到MySQL服务器中,因而您能够执行诸如SHOW TABLES或SHOW CREATE TABLE之类的操作。 但无奈对其执行操作:RENAME、CREATE TABLE和ALTER。 创立数据库CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')引擎参数 ...