Clickhouse系列之整合Hive数仓

本文介绍了如何将ClickHouse与Hive数据仓库进行整合,详细阐述了Hive的文本、ORC和Parquet数据格式在ClickHouse中的应用。通过Hive引擎和Thrift连接,讲解了配置参数的设置,强调了启用本地缓存以提升查询性能的重要性。还提供了各个数据格式的创建表和查询实例。
摘要由CSDN通过智能技术生成

前言
什么是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,  
`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值