hive的external
时间: 2023-08-15 07:55:45 浏览: 46
Hive的EXTERNAL关键字用于创建外部表。外部表是指Hive中的表,其数据存储在Hive之外的存储系统中,例如HDFS、S3等。使用EXTERNAL关键字创建的表,Hive不会管理其数据的生命周期,也不会在删除表时删除数据。这意味着外部表的数据可以在Hive表被删除后仍然保留。
创建外部表的语法如下:
```sql
CREATE EXTERNAL TABLE table_name
(
column1 data_type,
column2 data_type,
...
)
LOCATION 'external_table_location';
```
其中,table_name是表的名称,column1、column2等是表的列名和对应的数据类型,'external_table_location'是外部表数据在存储系统中的位置。
使用EXTERNAL关键字创建外部表后,可以通过加载数据或者指定数据的位置来访问外部表的数据。
相关问题
解释一下hive 里创建表时external
在Hive中,创建表时可以选择使用EXTERNAL关键字来指定表的类型为外部表(External Table)。外部表是一种特殊的表,它的数据存储在Hive外部,即不受Hive的管理。具体解释如下:
1. 数据存储位置:创建外部表时,需要通过LOCATION关键字指定数据的存储位置。这意味着数据可以存储在HDFS、本地文件系统或其他支持的存储系统中。
2. 表的元数据:外部表的元数据(表结构、列名、数据类型等)会被Hive管理,但实际的数据文件不会由Hive管理。这意味着删除外部表时,只会删除元数据,而不会删除实际存储的数据文件。
3. 数据的共享与访问:由于外部表的数据存储在Hive外部,所以其他系统或工具也能够直接访问这些数据文件。这使得可以在其他工具中进行数据处理或分析,而不仅限于Hive。
4. 数据的维护和备份:由于外部表的数据不受Hive管理,因此需要手动维护和备份数据文件。如果删除了外部表,则不会删除实际的数据文件。
总结来说,创建外部表时使用EXTERNAL关键字可以告诉Hive该表是一个外部表,数据存储在Hive外部。这样可以方便地与其他工具共享数据,并且不会受到Hive删除表操作的影响。
impala连接hive
Impala可以通过JDBC或ODBC连接到Hive,从而实现与Hive的数据交互。连接Hive的步骤如下:
1. 在Impala中创建一个Hive元数据仓库的快照,以便Impala可以访问Hive表的元数据。
2. 在Impala中创建一个外部表,该表指向Hive中的表。
3. 在Impala中查询该外部表,以便访问Hive中的数据。
具体来说,可以按照以下步骤连接Impala和Hive:
1. 在Impala中创建一个Hive元数据仓库的快照,以便Impala可以访问Hive表的元数据。可以使用以下命令创建快照:
```
invalidate metadata;
```
2. 在Impala中创建一个外部表,该表指向Hive中的表。可以使用以下命令创建外部表:
```
CREATE EXTERNAL TABLE impala_table
LIKE hive_table
LOCATION '/user/hive/warehouse/hive_table';
```
其中,impala_table是Impala中的表名,hive_table是Hive中的表名,LOCATION指定了Hive表的存储位置。
3. 在Impala中查询该外部表,以便访问Hive中的数据。可以使用以下命令查询外部表:
```
SELECT * FROM impala_table;
```
这样就可以在Impala中访问Hive中的数据了。