Hive
Hive引擎允许对HDFS Hive表执行 SELECT
查询。目前它支持如下输入格式:
-文本:只支持简单的标量列类型,除了 Binary
-
ORC:支持简单的标量列类型,除了
char
; 只支持array
这样的复杂类型 -
Parquet:支持所有简单标量列类型;只支持
array
这样的复杂类型
创建表
查看CREATE TABLE查询的详细描述。
表的结构可以与原来的Hive表结构有所不同:
- 列名应该与原来的Hive表相同,但你可以使用这些列中的一些,并以任何顺序,你也可以使用一些从其他列计算的别名列。
- 列类型与原Hive表的列类型保持一致。
- “Partition by expression”应与原Hive表保持一致,“Partition by expression”中的列应在表结构中。
引擎参数
-
thrift://host:port
— Hive Metastore 地址 -
database
— 远程数据库名. -
table
— 远程数据表名.
使用示例
如何使用HDFS文件系统的本地缓存
我们强烈建议您为远程文件系统启用本地缓存。基准测试显示,如果使用缓存,它的速度会快两倍。
在使用缓存之前,请将其添加到 config.xml
- enable: 开启后,ClickHouse将为HDFS (远程文件系统)维护本地缓存。
- root_dir: 必需的。用于存储远程文件系统的本地缓存文件的根目录。
- limit_size: 必需的。本地缓存文件的最大大小(单位为字节)。
- bytes_read_before_flush: 从远程文件系统下载文件时,刷新到本地文件系统前的控制字节数。缺省值为1MB。
当ClickHouse为远程文件系统启用了本地缓存时,用户仍然可以选择不使用缓存,并在查询中设置 use_local_cache_for_remote_storage = 0
, use_local_cache_for_remote_storage
默认为 1
。
查询 ORC 输入格式的Hive 表
在 Hive 中建表
在 ClickHouse 中建表
ClickHouse中的表,从上面创建的Hive表中获取数据:
查询 Parquest 输入格式的Hive 表
在 Hive 中建表
在 ClickHouse 中建表
ClickHouse 中的表, 从上面创建的Hive表中获取数据:
查询文本输入格式的Hive表
在Hive 中建表
在 ClickHouse 中建表
ClickHouse中的表, 从上面创建的Hive表中获取数据: