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

Hive

Not supported in ClickHouse Cloud

Hive引擎允许您在HDFS Hive表上执行 SELECT 查询。目前,支持的输入格式如下:

  • 文本:仅支持简单标量列类型,除了 binary

  • ORC:支持简单标量列类型,除了 char;仅支持复杂类型,如 array

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

创建表

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

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

  • 列名应与原始Hive表中的列名相同,但您可以仅使用这些列中的某些列,并且顺序可以不同,您还可以使用从其他列计算得出的别名列。
  • 列类型应与原始Hive表中的类型相同。
  • 分区表达式应与原始Hive表一致,并且分区表达式中的列应在表结构内。

引擎参数

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

  • database — 远程数据库名称。

  • table — 远程表名称。

使用示例

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

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

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

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

使用ORC输入格式查询Hive表

在Hive中创建表

在ClickHouse中创建表

在ClickHouse中,从上述创建的Hive表检索数据的表:

使用Parquet输入格式查询Hive表

在Hive中创建表

在ClickHouse中创建表

在ClickHouse中,从上述创建的Hive表检索数据的表:

使用文本输入格式查询Hive表

在Hive中创建表

在ClickHouse中创建表

在ClickHouse中,从上述创建的Hive表检索数据的表: