跳到主要内容
跳到主要内容

Hive

Not supported in ClickHouse Cloud

Hive引擎允许您对HDFS Hive表执行SELECT查询。当前,它支持以下输入格式:

  • Text: 仅支持简单标量列类型,除 binary

  • ORC: 支持simple标量列类型,除 char外;仅支持复杂类型如 array

  • Parquet: 支持所有简单标量列类型;仅支持复杂类型如 array

创建表

请参阅 CREATE TABLE 查询的详细描述。

表结构可以与原始Hive表结构不同:

  • 列名应与原始Hive表中的名称相同,但您可以选择这些列中的某些列并以任意顺序使用,也可以使用从其他列计算的别名列。
  • 列类型应与原始Hive表中的类型相同。
  • Partition by 表达式应与原始Hive表一致,且 partition by 表达式中的列应包含在表结构中。

引擎参数

  • thrift://host:port — Hive Metastore 地址

  • database — 远程数据库名称。

  • table — 远程表名称。

使用示例

如何为HDFS文件系统使用本地缓存

我们强烈建议您为远程文件系统启用本地缓存。基准测试显示,启用缓存后速度几乎提高2倍。

在使用缓存之前,请将其添加到 config.xml

  • enable: 如果为true,ClickHouse启动后将为远程文件系统(HDFS)维护本地缓存。
  • root_dir: 必需。存储远程文件系统的本地缓存文件的根目录。
  • limit_size: 必需。本地缓存文件的最大大小(以字节为单位)。
  • bytes_read_before_flush: 控制从远程文件系统下载文件时,在向本地文件系统刷新之前读取的字节。默认值为1MB。

当ClickHouse启用远程文件系统的本地缓存启动时,用户仍然可以选择在其查询中使用 settings use_local_cache_for_remote_storage = 0 来不使用缓存。默认情况下,use_local_cache_for_remote_storage1

查询Hive表的ORC输入格式

在Hive中创建表

在ClickHouse中创建表

在ClickHouse中创建从上述Hive表获取数据的表:

查询Hive表的Parquet输入格式

在Hive中创建表

在ClickHouse中创建表

在ClickHouse中创建从上述Hive表获取数据的表:

查询Hive表的文本输入格式

在Hive中创建表

在ClickHouse中创建表

在ClickHouse中创建从上述Hive表获取数据的表: