ClickHouse 表类型(引擎) | File
ClickHouse 有个神奇的TableEngine叫做File。
而官方的说明好像基本没说啥,在这里我来补充一些。
使用ClickHouse File表引擎来实现不使用client 而是使用clickhouse-server端导入文件,
哈哈哈,话不多说,上干货:
做法:
1. 创建表
clickhouse-client 内运行: CREATE TABLE exampleTable ( ..... ) Engine = File('XXX') # 这里的XXX表示是文件后缀、比如要导入的是csv就写csv即可
2. 拷贝文件到 ClickHouse Data 目录下
比如我的表叫做exampleTable 在 default 这个数据库里,
那么我的文件就应该拷贝在(拿CentOS举例)
/var/lib/clickhouse/db/default/exampleTable
也就是官方格式 : clickhouse文件主目录/db/database名/table名/ 里面
3. OK啦
P.S.
1. 这个引擎是本地的,暂不支持跨机器,不支持其他自定义目录,不过可以link硬链接过来 :)
2. 这个引擎导入之后可以使用SELECT 进行查询,也可以通过 通过INSERT INTO 和 SELECT 来把数据导入到一个MergeTree的表里, 当然MergeTree这个表可以是什么Replicated、Distributed之类啦
举个栗子: INSERT INTO anothertable select * from onetable
3. 这个CREATE TABLE 时使用了 File() 这个引擎的构造函数 事实上还支持其他几个参数:
他们一共有3个, 分别是 (按重要性排序):
- 使用特定的FD(文件标识符) if (fd >= 0)
- 使用特定的Table_Path (如果非空) (也就是上文使用的)
- 是否在 data/db/table/ 里创建数据库文件 (默认创建啊)
P.P.S.文章成文时使用最新版:1.1.54344
:) 祝好