ClickHouse File 表引擎 文件导入

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 

:) 祝好

你可能感兴趣的:(ClickHouse File 表引擎 文件导入)