前言
什么是Hive?
Apache Hive 数据仓库软件便于使用SQL读取、写入和管理驻留在分布式存储中的大型数据集。结构可以投射到已存储的数据上。提供了一个命令行工具和JDBC驱动程序,用于将用户连接到Hive。
Hive引擎允许您对HDFS配置单元表执行SELECT查询。目前支持如下输入格式:
文本:仅支持简单标量列类型,二进制除外;
ORC:支持除char以外的简单标量列类型;仅支持数组等复杂类型;
parquet:支持所有简单的标量列类型;仅支持数组等复杂类型。
正文
创建Hive引擎表详细信息以及参数详解
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [ALIAS expr1],
name2 [type2] [ALIAS expr2],
...
) ENGINE = Hive('thrift://host:port', 'database', 'table');
PARTITION BY expr
表结构可以与原始配置单元表结构不同:
列名应该与原始配置单元表中的列名相同(推荐列名相同处理),但您可以只使用其中的一些列,并且可以按任何顺序使用,也可以使用从其他列计算的一些别名列。
列类型应与原始配置单元表中的列类型相同。
按表达式划分应该与原始Hive表一致,按表达式划分中的列应该在表结构中。
引擎参数:
thrift://host:port-配置单元元存储地址
database—远程数据库名称。
table—远程表名称。
实战案例
为远程文件系统启用本地缓存。通过官方的基准测试表明,使用缓存的速度快了近两倍。在使用缓存之前,将其添加到config.xml
<local_cache_for_remote_fs>
<enable>true</enable>
<root_dir>local_cache</root_dir>
<limit_size>559096952</limit_size>
<bytes_read_before_flush>1048576</bytes_read_before_flush>
</local_cache_for_remote_fs>
参数详解:
enable:ClickHouse将在启动后维护远程文件系统(HDFS)的本地缓存(如果为true)。
root_dir:必需。用于存储远程文件系统的本地缓存文件的根目录。
limit_size:必填。本地缓存文件的最大大小(字节)。
bytes_read_before_flush:从远程文件系统下载文件时,在刷新到本地文件系统之前控制字节数。默认值为1MB。
尽管ClickHouse在启用远程文件系统本地缓存的情况下启动时,我们仍然可以选择不使用其查询中设置为use_local_cache_for_remote_fs=0的缓存。use_local_cache_for_remote_fs默认为false。
ORC数据格式
Hive创建ORC数据格式表
CREATE TABLE `test`.`test_orc`(
`f_tinyint` tinyint,
`f_smallint` smallint,
`f_int` int,
`f_integer` int,
`f_bigint` bigint,
`f_float` float,
`