0
点赞
收藏
分享

微信扫一扫

hive数据库里创建数据表

芷兮离离 2024-01-12 阅读 18

Hive数据库里创建数据表

Hive是基于Hadoop的数据仓库基础设施,允许使用类似SQL的查询语言HiveQL来查询和分析大规模的数据。在Hive中,数据表是存储结构化数据的基本单元。本文将介绍如何在Hive数据库里创建数据表,并提供相应的代码示例。

创建数据表的语法

在Hive中,可以使用CREATE TABLE语句来创建数据表。创建数据表的语法如下所示:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
  (column_name data_type [COMMENT column_comment], ...)
  [COMMENT table_comment]
  [PARTITIONED BY (column_name data_type [COMMENT column_comment], ...)]
  [CLUSTERED BY (column_name, column_name, ...) [SORTED BY (column_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [ROW FORMAT row_format]
  [STORED AS file_format]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]
  • EXTERNAL关键字表示创建的数据表是外部表,数据存储在Hive之外。
  • IF NOT EXISTS关键字表示如果表已经存在,则不执行创建操作。
  • table_name表示要创建的数据表的名称。
  • (column_name data_type [COMMENT column_comment], ...)定义了数据表的列及其数据类型。
  • COMMENT table_comment表示数据表的注释。
  • PARTITIONED BY关键字定义了数据表的分区列。
  • CLUSTERED BY关键字定义了数据表的聚簇列。
  • SORTED BY关键字定义了数据表的排序列。
  • ROW FORMAT关键字定义了数据表的行格式。
  • STORED AS关键字定义了数据表的存储格式。
  • LOCATION关键字定义了数据表存储在HDFS上的路径。
  • TBLPROPERTIES关键字定义了数据表的属性。

创建数据表的示例

下面是一个创建名为employees的数据表的示例:

CREATE TABLE employees (
  id INT COMMENT 'Employee ID',
  name STRING COMMENT 'Employee Name',
  age INT COMMENT 'Employee Age',
  salary FLOAT COMMENT 'Employee Salary'
)
COMMENT 'Employee Information'
PARTITIONED BY (department STRING COMMENT 'Employee Department')
CLUSTERED BY (id) INTO 4 BUCKETS
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/employees';

在上面的示例中,创建了一个名为employees的数据表,包含了idnameagesalary四个列。每个列的数据类型和注释都已经指定。数据表的注释为"Employee Information"。数据表还根据department列进行了分区,并根据id列进行了聚簇。数据表的行格式为分隔符分隔的文本格式,字段之间使用逗号分隔。数据表的存储格式为文本文件,存储在HDFS上的/user/hive/warehouse/employees路径下。

数据表的类图

下面是一个使用mermaid语法标识的数据表的类图示例:

classDiagram
    Table <|-- Employees
    class Table {
        -name: String
        -columns: List<Column>
        -comment: String
        -partitionedBy: List<Column>
        -clusteredBy: List<Column>
        -sortedBy: List<Column>
        -rowFormat: RowFormat
        -storedAs: FileFormat
        -location: String
        -properties: Map<String, String>
        +addColumn(column: Column): void
        +addPartitionColumn(column: Column): void
        +addClusterColumn(column: Column): void
        +addSortedColumn(column: Column): void
        +setRowFormat(rowFormat: RowFormat): void
        +setStoredAs(fileFormat: FileFormat): void
        +setLocation(location: String): void
        +setProperty(name: String, value: String): void
    }
    class Employees {
        -id: int
        -name: String
        -age: int
        -salary: float
        -department: String
        +getId(): int
        +getName(): String
        +getAge(): int
        +getSalary(): float
        +getDepartment(): String
        +setId(id: int): void
        +setName(name: String): void
        +setAge(age: int): void
        +setSalary(salary: float
举报

相关推荐

0 条评论