Hive 创建表

Hive 创建表

Hive是一个数据仓库工具,可以将大数据处理简化为类SQL的查询语言。在使用Hive时,首先需要创建表格来存储数据。下面将介绍Hive如何创建表格。

阅读更多:Hive 教程

准备工作

在创建表格之前,需要在Hive中指定数据存储路径。我们可以在Hive中使用以下命令:

hive> SET hive.metastore.warehouse.dir=/user/hive/warehouse;

以上命令将数据仓库目录设置为/user/hive/warehouse。在此目录下,可以创建Hive表格所需要的文件夹。

创建表格

使用Hive创建表格时,需要提供以下信息:

  1. 表格名称
  2. 列名称及数据类型
  3. 存储格式(例如:CSV文件)
  4. 存储位置
  5. 其他表格属性

以下是创建一个简单表格的示例代码:

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文件夹中。

表格属性

在创建表格时,可以指定一些属性以控制表格的行为和特性。以下是一些常用属性:

  1. TBLPROPERTIES: 此属性用于将键值对添加到表格的元数据中。例如,可以将表格的注释添加到元数据中。下面是一个示例代码:
    CREATE TABLE employees(
     id INT,
     name STRING,
     age INT,
     salary FLOAT
    )
    TBLPROPERTIES("comment"="Employee Details");
    
  2. 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。

  3. 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更多的功能来处理和分析大数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程