Hive 创建表
Hive是一个数据仓库工具,可以将大数据处理简化为类SQL的查询语言。在使用Hive时,首先需要创建表格来存储数据。下面将介绍Hive如何创建表格。
阅读更多:Hive 教程
准备工作
在创建表格之前,需要在Hive中指定数据存储路径。我们可以在Hive中使用以下命令:
hive> SET hive.metastore.warehouse.dir=/user/hive/warehouse;
以上命令将数据仓库目录设置为/user/hive/warehouse。在此目录下,可以创建Hive表格所需要的文件夹。
创建表格
使用Hive创建表格时,需要提供以下信息:
- 表格名称
- 列名称及数据类型
- 存储格式(例如:CSV文件)
- 存储位置
- 其他表格属性
以下是创建一个简单表格的示例代码:
CREATE TABLE employees(
id INT,
name STRING,
age INT,
salary FLOAT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/employees';
以上sql语句创建了一个名为employees的表格,该表格包含id,name,age和salary四个列。该表格的存储格式为逗号分隔的文本文件,存储在/user/hive/warehouse/employees文件夹中。
表格属性
在创建表格时,可以指定一些属性以控制表格的行为和特性。以下是一些常用属性:
- TBLPROPERTIES: 此属性用于将键值对添加到表格的元数据中。例如,可以将表格的注释添加到元数据中。下面是一个示例代码:
CREATE TABLE employees( id INT, name STRING, age INT, salary FLOAT ) TBLPROPERTIES("comment"="Employee Details");
- PARTITIONED BY: 此属性用于对表格进行分区。例如,可以按照时间分区存储日志。以下是一个示例代码:
CREATE TABLE log_data( ip STRING, request_time TIMESTAMP, url STRING ) PARTITIONED BY (year INT, month INT, day INT) STORED AS PARQUET LOCATION '/user/hive/warehouse/log_data';
此代码将按照日期(year, month, day)对log_data表格进行分区。此外,该表格将采用列式存储格式parquet。
-
CLUSTERED BY: 此属性用于对表格进行聚簇。例如,可以按照销售额对客户进行聚簇。以下是一个示例代码:
CREATE TABLE sales( customer_name STRING, product_name STRING, sale_date TIMESTAMP, sale_amount FLOAT ) CLUSTERED BY (customer_name) INTO 5 BUCKETS STORED AS ORC LOCATION '/user/hive/warehouse/sales';
此代码将按照customer_name对sales表格进行聚簇,并将该表格分为5个bucket。此外,该表格采用了列式存储格式ORC。
示例
以下是一个完整的Hive创建表格的示例:
CREATE TABLE store_sales(
ss_sold_date_sk INT
, ss_sold_time_sk INT
, ss_item_sk INT
, ss_customer_sk INT
, ss_cdemo_sk INT
, ss_hdemo_sk INT
, ss_addr_sk INT
, ss_store_sk INT
, ss_promo_sk INT
, ss_quantity INT
, ss_wholesale_cost DECIMAL(7,2)
, ss_list_price DECIMAL(7,2)
, ss_sales_price DECIMAL(7,2)
, ss_ext_discount_amt DECIMAL(7,2)
, ss_ext_sales_price DECIMAL(7,2)
, ss_ext_wholesale_cost DECIMAL(7,2)
, ss_ext_coupon_amt DECIMAL(7,2)
, ss_net_paid DECIMAL(7,2)
, ss_net_paid_inc_tax DECIMAL(7,2)
, ss_net_profit DECIMAL(7,2)
)
PARTITIONED BY (ss_sold_date_sk INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/store_sales'
TBLPROPERTIES ("COMMENT"="Store Sales");
以上代码是一个基于销售数据的表格,包含多个列以及分区属性,存储格式为文本文件。该表格还包括TBLPROPERTIES属性,用于在表格元数据中添加注释信息。该表格的存储路径为/user/hive/warehouse/store_sales。
结论
以上是Hive创建表格的示例和说明。通过以上内容,你应该已经了解了如何在Hive中创建表格,并了解了一些常用的表格属性。下一步,你可以使用Hive更多的功能来处理和分析大数据。