做电商网站用什么框架,通讯设备东莞网站建设,性病医院网站优化服务商,工装效果图网站文章目录 Hive集成表引擎创建表使用示例如何使用HDFS文件系统的本地缓存查询 ORC 输入格式的Hive 表在 Hive 中建表在 ClickHouse 中建表 查询 Parquest 输入格式的Hive 表在 Hive 中建表在 ClickHouse 中建表 查询文本输入格式的Hive表在Hive 中建表在 ClickHouse 中建表 资料… 文章目录 Hive集成表引擎创建表使用示例如何使用HDFS文件系统的本地缓存查询 ORC 输入格式的Hive 表在 Hive 中建表在 ClickHouse 中建表 查询 Parquest 输入格式的Hive 表在 Hive 中建表在 ClickHouse 中建表 查询文本输入格式的Hive表在Hive 中建表在 ClickHouse 中建表 资料分享参考文章 Hive集成表引擎
Hive引擎允许对HDFS Hive表执行 SELECT 查询。目前它支持如下输入格式:
-文本:只支持简单的标量列类型除了 Binary ORC:支持简单的标量列类型除了char; 只支持 array 这样的复杂类型 Parquet:支持所有简单标量列类型;只支持 array 这样的复杂类型
创建表
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表结构有所不同:
列名应该与原来的Hive表相同但你可以使用这些列中的一些并以任何顺序你也可以使用一些从其他列计算的别名列。列类型与原Hive表的列类型保持一致。“Partition by expression”应与原Hive表保持一致“Partition by expression”中的列应在表结构中。
引擎参数 thrift://host:port — Hive Metastore 地址 database — 远程数据库名. table — 远程数据表名.
使用示例
如何使用HDFS文件系统的本地缓存
我们强烈建议您为远程文件系统启用本地缓存。基准测试显示如果使用缓存它的速度会快两倍。
在使用缓存之前请将其添加到 config.xml
local_cache_for_remote_fsenabletrue/enableroot_dirlocal_cache/root_dirlimit_size559096952/limit_sizebytes_read_before_flush1048576/bytes_read_before_flush
/local_cache_for_remote_fsenable: 开启后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 中建表
hive CREATE TABLE test.test_orc(f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_bool boolean, f_binary binary, f_array_int arrayint, f_array_string arraystring, f_array_float arrayfloat, f_array_array_int arrayarrayint, f_array_array_string arrayarraystring, f_array_array_float arrayarrayfloat)
PARTITIONED BY ( day string)
ROW FORMAT SERDE org.apache.hadoop.hive.ql.io.orc.OrcSerde
STORED AS INPUTFORMAT org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
OUTPUTFORMAT org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
LOCATIONhdfs://testcluster/data/hive/test.db/test_orcOK
Time taken: 0.51 secondshive insert into test.test_orc partition(day2021-09-18) select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, current_timestamp(), current_date(), hello world, hello world, hello world, true, hello world, array(1, 2, 3), array(hello world, hello world), array(float(1.1), float(1.2)), array(array(1, 2), array(3, 4)), array(array(a, b), array(c, d)), array(array(float(1.11), float(2.22)), array(float(3.33), float(4.44)));
OK
Time taken: 36.025 secondshive select * from test.test_orc;
OK
1 2 3 4 5 6.11 7.22 8 2021-11-05 12:38:16.314 2021-11-05 hello world hello world hello world true hello world [1,2,3] [hello world,hello world] [1.1,1.2] [[1,2],[3,4]] [[a,b],[c,d]] [[1.11,2.22],[3.33,4.44]] 2021-09-18
Time taken: 0.295 seconds, Fetched: 1 row(s)在 ClickHouse 中建表
ClickHouse中的表从上面创建的Hive表中获取数据:
CREATE TABLE test.test_orc
(f_tinyint Int8,f_smallint Int16,f_int Int32,f_integer Int32,f_bigint Int64,f_float Float32,f_double Float64,f_decimal Float64,f_timestamp DateTime,f_date Date,f_string String,f_varchar String,f_bool Bool,f_binary String,f_array_int Array(Int32),f_array_string Array(String),f_array_float Array(Float32),f_array_array_int Array(Array(Int32)),f_array_array_string Array(Array(String)),f_array_array_float Array(Array(Float32)),day String
)
ENGINE Hive(thrift://localhost:9083, test, test_orc)
PARTITION BY day
SELECT * FROM test.test_orc settings input_format_orc_allow_missing_columns 1\GSELECT *
FROM test.test_orc
SETTINGS input_format_orc_allow_missing_columns 1Query id: c3eaffdc-78ab-43cd-96a4-4acc5b480658Row 1:
──────
f_tinyint: 1
f_smallint: 2
f_int: 3
f_integer: 4
f_bigint: 5
f_float: 6.11
f_double: 7.22
f_decimal: 8
f_timestamp: 2021-12-04 04:00:44
f_date: 2021-12-03
f_string: hello world
f_varchar: hello world
f_bool: true
f_binary: hello world
f_array_int: [1,2,3]
f_array_string: [hello world,hello world]
f_array_float: [1.1,1.2]
f_array_array_int: [[1,2],[3,4]]
f_array_array_string: [[a,b],[c,d]]
f_array_array_float: [[1.11,2.22],[3.33,4.44]]
day: 2021-09-181 rows in set. Elapsed: 0.078 sec. 查询 Parquest 输入格式的Hive 表
在 Hive 中建表
hive
CREATE TABLE test.test_parquet(f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_binary binary, f_array_int arrayint, f_array_string arraystring, f_array_float arrayfloat, f_array_array_int arrayarrayint, f_array_array_string arrayarraystring, f_array_array_float arrayarrayfloat)
PARTITIONED BY ( day string)
ROW FORMAT SERDE org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
STORED AS INPUTFORMAT org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
OUTPUTFORMAT org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
LOCATIONhdfs://testcluster/data/hive/test.db/test_parquet
OK
Time taken: 0.51 secondshive insert into test.test_parquet partition(day2021-09-18) select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, current_timestamp(), current_date(), hello world, hello world, hello world, true, hello world, array(1, 2, 3), array(hello world, hello world), array(float(1.1), float(1.2)), array(array(1, 2), array(3, 4)), array(array(a, b), array(c, d)), array(array(float(1.11), float(2.22)), array(float(3.33), float(4.44)));
OK
Time taken: 36.025 secondshive select * from test.test_parquet;
OK
1 2 3 4 5 6.11 7.22 8 2021-12-14 17:54:56.743 2021-12-14 hello world hello world hello world true hello world [1,2,3] [hello world,hello world] [1.1,1.2] [[1,2],[3,4]] [[a,b],[c,d]] [[1.11,2.22],[3.33,4.44]] 2021-09-18
Time taken: 0.766 seconds, Fetched: 1 row(s)在 ClickHouse 中建表
ClickHouse 中的表 从上面创建的Hive表中获取数据:
CREATE TABLE test.test_parquet
(f_tinyint Int8,f_smallint Int16,f_int Int32,f_integer Int32,f_bigint Int64,f_float Float32,f_double Float64,f_decimal Float64,f_timestamp DateTime,f_date Date,f_string String,f_varchar String,f_char String,f_bool Bool,f_binary String,f_array_int Array(Int32),f_array_string Array(String),f_array_float Array(Float32),f_array_array_int Array(Array(Int32)),f_array_array_string Array(Array(String)),f_array_array_float Array(Array(Float32)),day String
)
ENGINE Hive(thrift://localhost:9083, test, test_parquet)
PARTITION BY daySELECT * FROM test.test_parquet settings input_format_parquet_allow_missing_columns 1\GSELECT *
FROM test_parquet
SETTINGS input_format_parquet_allow_missing_columns 1Query id: 4e35cf02-c7b2-430d-9b81-16f438e5fca9Row 1:
──────
f_tinyint: 1
f_smallint: 2
f_int: 3
f_integer: 4
f_bigint: 5
f_float: 6.11
f_double: 7.22
f_decimal: 8
f_timestamp: 2021-12-14 17:54:56
f_date: 2021-12-14
f_string: hello world
f_varchar: hello world
f_char: hello world
f_bool: true
f_binary: hello world
f_array_int: [1,2,3]
f_array_string: [hello world,hello world]
f_array_float: [1.1,1.2]
f_array_array_int: [[1,2],[3,4]]
f_array_array_string: [[a,b],[c,d]]
f_array_array_float: [[1.11,2.22],[3.33,4.44]]
day: 2021-09-181 rows in set. Elapsed: 0.357 sec. 查询文本输入格式的Hive表
在Hive 中建表
hive
CREATE TABLE test.test_text(f_tinyint tinyint, f_smallint smallint, f_int int, f_integer int, f_bigint bigint, f_float float, f_double double, f_decimal decimal(10,0), f_timestamp timestamp, f_date date, f_string string, f_varchar varchar(100), f_char char(100), f_bool boolean, f_binary binary, f_array_int arrayint, f_array_string arraystring, f_array_float arrayfloat, f_array_array_int arrayarrayint, f_array_array_string arrayarraystring, f_array_array_float arrayarrayfloat)
PARTITIONED BY ( day string)
ROW FORMAT SERDE org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
STORED AS INPUTFORMAT org.apache.hadoop.mapred.TextInputFormat
OUTPUTFORMAT org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
LOCATIONhdfs://testcluster/data/hive/test.db/test_text
Time taken: 0.1 seconds, Fetched: 34 row(s)hive insert into test.test_text partition(day2021-09-18) select 1, 2, 3, 4, 5, 6.11, 7.22, 8.333, current_timestamp(), current_date(), hello world, hello world, hello world, true, hello world, array(1, 2, 3), array(hello world, hello world), array(float(1.1), float(1.2)), array(array(1, 2), array(3, 4)), array(array(a, b), array(c, d)), array(array(float(1.11), float(2.22)), array(float(3.33), float(4.44)));
OK
Time taken: 36.025 secondshive select * from test.test_text;
OK
1 2 3 4 5 6.11 7.22 8 2021-12-14 18:11:17.239 2021-12-14 hello world hello world hello world true hello world [1,2,3] [hello world,hello world] [1.1,1.2] [[1,2],[3,4]] [[a,b],[c,d]] [[1.11,2.22],[3.33,4.44]] 2021-09-18
Time taken: 0.624 seconds, Fetched: 1 row(s)在 ClickHouse 中建表
ClickHouse中的表 从上面创建的Hive表中获取数据:
CREATE TABLE test.test_text
(f_tinyint Int8,f_smallint Int16,f_int Int32,f_integer Int32,f_bigint Int64,f_float Float32,f_double Float64,f_decimal Float64,f_timestamp DateTime,f_date Date,f_string String,f_varchar String,f_char String,f_bool Bool,day String
)
ENGINE Hive(thrift://localhost:9083, test, test_text)
PARTITION BY day SELECT * FROM test.test_text settings input_format_skip_unknown_fields 1, input_format_with_names_use_header 1, date_time_input_format best_effort\GSELECT *
FROM test.test_text
SETTINGS input_format_skip_unknown_fields 1, input_format_with_names_use_header 1, date_time_input_format best_effortQuery id: 55b79d35-56de-45b9-8be6-57282fbf1f44Row 1:
──────
f_tinyint: 1
f_smallint: 2
f_int: 3
f_integer: 4
f_bigint: 5
f_float: 6.11
f_double: 7.22
f_decimal: 8
f_timestamp: 2021-12-14 18:11:17
f_date: 2021-12-14
f_string: hello world
f_varchar: hello world
f_char: hello world
f_bool: true
day: 2021-09-18资料分享
ClickHouse经典中文文档分享
参考文章
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计ClickHouse(03)ClickHouse怎么安装和部署ClickHouse(04)如何搭建ClickHouse集群ClickHouse(05)ClickHouse数据类型详解ClickHouse(06)ClickHouse建表语句DDL详细解析ClickHouse(07)ClickHouse数据库引擎解析ClickHouse(08)ClickHouse表引擎概况ClickHouse(09)ClickHouse合并树MergeTree家族表引擎之MergeTree详细解析ClickHouse(10)ClickHouse合并树MergeTree家族表引擎之ReplacingMergeTree详细解析ClickHouse(11)ClickHouse合并树MergeTree家族表引擎之SummingMergeTree详细解析ClickHouse(12)ClickHouse合并树MergeTree家族表引擎之AggregatingMergeTree详细解析ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析ClickHouse(14)ClickHouse合并树MergeTree家族表引擎之VersionedCollapsingMergeTree详细解析ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析ClickHouse(16)ClickHouse日志引擎Log详细解析ClickHouse(17)ClickHouse集成JDBC表引擎详细解析ClickHouse(18)ClickHouse集成ODBC表引擎详细解析