Hive数据库表格建立的行格式详解 (数据库建表row format)
Hive是一种数据仓库工具,基于Hadoop平台运行,用于处理大规模数据集。在Hive中,数据以表格形式存储,表格的创建需要定义其行格式。本文将详细介绍Hive数据库表格建立的行格式。
一. 建立表格
Hive数据库表格的建立类似于SQL,但是有些不同之处。以下是在Hive中创建表格的示例代码:
“`
CREATE TABLE sample_table (
col1 INT,
col2 STRING,
col3 BOOLEAN
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE;
“`
以上代码会在Hive中新建一个名为sample_table的表格,其中包含三个标准的数据类型列,分别为整数,字符串和布尔型。下一步,我们需要定义表格的行格式以及在HDFS上存储数据的格式。
二. 行格式定义
Hive中最基本的格式为行格式,它确定了数据存储在Hadoop文件系统中的方式。一个表格可以有一种特定的行格式,而一个行格式定义了以下三个参数:
ROW FORMAT DELIMITED:Hive中的行格式默认情况下是被“跨行符”相隔开的列。此参数将表格的列定义为按列分隔符分隔的列,而该符号必须由代码中定义。
FIELDS TERMINATED BY:字段分隔符确定了每个字段在一行中的位置,以及它们如何分隔。本例中,分隔符是tab,’\’t’表示tab符号。
LINES TERMINATED BY:行结束序列,也就是在HDFS中Hive表格的每行的标志。因为Hive是基于Hadoop所以这个参数必须要以Hadoop的模式来写,通常是\n或者CRLF。
存储格式定义
存储格式则是定义Hive表格保存在磁盘上的方式,支持多种存储格式,例如:
SEQUENCEFILE:它将数据以二进制格式写入磁盘。这是非常高效的,因为Hadoop为了在运行时处理特定的格式而进行了优化。
RCFILE:它是一种压缩格式,它最小化了空白,非常适合大数据集。
AVRO:它是一种跨语言的数据序列化格式,可完整表示Hive中数据类型。
按照这些定义表格的参数,我们可以创建不同存储方式和文件格式的表格。在之上展示的示例代码中,STORED AS TEXTFILE参数将创建数据库样本表作为文本文件存储在Hadoop文件系统上.
三. 分隔符
在表格中指定行所使用的分隔符和每行中各列所使用的分隔符通常是非常重要的(否则数据处理就会出现问题)。在Hive中设置这些分隔符的方法如下:
ROW FORMAT DELIMITED字段是用来“分解”列分隔符的,如果不指定分隔符,Hive将无法识别列的范围。
FIELDS TERMINATED BY是用来暴露列分隔符的。如果不指定分隔符,Hive仅会将整个行视为一个字段,并将其读取为一个“ Blo ball”。当然,在这种情况下必须在数据导入时指定分隔符。
LINES TERMINATED BY用于标识新行字符,这是HDFS中的行终止符,它还是一个必需的参数。
四. 结论
本文详细介绍了Hive数据库表格建立的行格式。了解Hive表格的建立方法和存储格式可以帮助我们更好地存储和处理大规模数据集。在Hive中,语法和SQL类似,但并非SQL。如果您想在大数据平台上进行数据存储和处理,那么Hive是您的理想选择。