mysql hive 建表_HIVE建表

[参考link]

[参考link]

[参考link]

[参考link]

1. 表类型MANAGED_TABLE、EXTERNAL_TABLE、INDEX_TABLE、VIRTUAL_VIEW

MANAGED_TABLE

-- MANAGED_TABLE 建表语句

-- table

create table test_mamaged_table

(

context string

)

;

这种表也被称作Internal Table.这是Hive中的默认的类型.如果你在创建表的时候没有指明Managed或者External,那么默认就会给你创建Managed Table。

Managed Table的数据,会存放在HDFS中的特定的位置中,通常是/user/hduser/hive/warehouse.当然,也不一定,看你的Hive的配置文件中是如何配置的。

EXTERNAL_TABLE

-- EXTERNAL_TABLE 建表语句

-- external table

create external table test_external_table

(

Name String,

Sal Int

)

row format delimited

fields terminated by ','

;

External Table特别适用于想要在Hive之外使用表的数据的情况.当你删除External Table时,只是删除了表的元数据,它的数据并没有被删除。

INDEX_TABLE

VIRTUAL_VIEW

2. 分隔符设置

ROW FORMAT DELIMITED

分隔符设置开始语句

FIELDS TERMINATED BY

设置字段与字段之间的分隔符

COLLECTION ITEMS TERMINATED BY

设置一个复杂类型(array,struct)字段的各个item之间的分隔符

MAP KEYS TERMINATED BY

设置一个复杂类型(Map)字段的key value之间的分隔符

LINES TERMINATED BY

设置行与行之间的分隔符

3. 压缩存储格式

TEXTFILE

SEQUENCEFILE

RCFILE

ORCFILE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hive 建表的语法和 MySQL建表语法类似,但是有些细节上的差异。 下面是一个 Hive 建表的例子: ``` CREATE TABLE example_table ( id INT, name STRING, age INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE; ``` 这个例子中,首先指定了表的名称 `example_table`,然后指定了表的列及其数据类型。在 Hive 中,每个列都必须指定其数据类型,否则会报错。 接下来,使用了 `ROW FORMAT DELIMITED` 来指定数据行的分隔符,这里使用的是制表符 `\t`。然后使用了 `FIELDS TERMINATED BY` 来指定列之间的分隔符,这里同样使用了制表符。 最后,使用 `STORED AS` 来指定数据存储格式,这里使用的是文本格式 `TEXTFILE`。在 Hive 中还支持其他的存储格式,例如 ORC、Parquet 等。 ### 回答2: Hive建表MySQL是有一些相似之处的,主要体现在以下几个方面: 数据模型:HiveMySQL都支持使用关系型数据模型来建立和管理数据。在两者中都可以定义表,表中有行和列,可以对表进行增删改查等操作。 数据类型:在HiveMySQL中都有一些相似的数据类型,例如整数、浮点数、字符串等。这些数据类型可以用来定义表中的列。 表结构定义:在HiveMySQL中,都可以通过CREATE TABLE语句来定义表的结构。定义时需要指定表名、列名、数据类型等信息,这些定义的方式在两者中非常相似。 数据存储:在HiveMySQL中,表的数据都是存储在文件或者目录中。Hive将数据存储在Hadoop分布式文件系统(HDFS)中,而MySQL存储在本地的文件系统中。 查询语言:在HiveMySQL中,都可以使用SQL来进行查询。虽然Hive的查询语言稍有不同,需要通过HiveQL来进行,但是也能够进行类似于MySQL的查询操作。 然而,HiveMySQL之间也存在一些差异,主要体现在以下几个方面: 底层架构:Hive是建立在Hadoop生态系统之上的,而MySQL是一个独立的关系型数据库管理系统。因此,Hive在底层架构和数据存储上与MySQL有着显著的差异。 数据处理方式:Hive是为大规模数据处理而设计的,通常用于数据仓库和批量处理。而MySQL是一个面向在线事务处理(OLTP)的数据库系统,适用于实时性要求较高的应用。 性能差异:由于底层架构和数据处理方式的不同,Hive在查询性能方面通常不如MySQLHive的查询需要通过将SQL转化为MapReduce任务来完成,而MySQL可以直接在索引上进行查询,因此在小规模和实时性要求较高的情况下,MySQL的性能更优。 综上所述,虽然Hive建表MySQL有一些相似之处,但是在底层架构、数据处理方式和性能方面存在较大差异。因此,在选择使用哪种数据库系统时,需要根据具体的需求场景来做出决策。 ### 回答3: Hive建表MySQL在某些方面是一致的,但也存在一些不同之处。 首先,两者都使用结构化查询语言(SQL)来创建表和定义表的结构。无论是在Hive还是MySQL中,都可以使用类似的语法来声明列的名称、数据类型和约束。 其次,HiveMySQL都可以用来创建具有主键、外键、索引和唯一约束等约束条件的表。这些约束条件可以保证数据的完整性和一致性,确保表中的数据满足特定的要求。 然而,Hive建表MySQL在以下几个方面存在一些区别。 首先,Hive是为大数据处理而设计的分布式数据仓库解决方案,而MySQL是一种关系型数据库管理系统。Hive建表时,可以选择将表存储在Hadoop分布式文件系统(HDFS)上,而MySQL则将表存储在磁盘上。这种底层存储的差异导致了HiveMySQL在数据处理和查询性能上的差异。 其次,Hive建表的语法更加灵活,支持分区、分桶和存储格式的自定义。分区可以提高查询性能,并允许根据数据的某个属性对表进行分割。分桶则可以进一步细分分区,提高查询效率。此外,Hive还支持不同的存储格式,如文本、Parquet和ORC等,根据数据类型和查询需求进行存储优化。 最后,Hive建表时可以使用HiveQL,这是类似SQL的查询语言,但不是完全兼容。它具有自己的特定语法和函数,用于处理大规模数据和分布式计算。相比之下,MySQL使用标准SQL语法,更适合于小型和中型数据库的管理和查询。 综上所述,虽然Hive建表MySQL在某些方面是一致的,但也存在一些区别。这取决于数据处理需求和规模,可以根据具体情况选择使用Hive还是MySQL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值