EXTERNAL table是什么
时间: 2023-10-02 20:05:20 浏览: 42
在Hive中,EXTERNAL table是一种表类型,用于关联HDFS中的数据文件。与内部表不同,EXTERNAL table并不直接存储数据,而是通过关联HDFS中的数据文件来访问数据。因此,当删除EXTERNAL table时,不会删除关联的数据文件。
EXTERNAL table的创建方式与内部表类似,但是需要指定LOCATION参数来关联HDFS中的数据文件。例如,以下是一个创建EXTERNAL table的示例:
```
CREATE EXTERNAL TABLE table_name
(column1 data_type1, column2 data_type2, …)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’
LOCATION ‘hdfs://path/to/file’;
```
其中,table_name为您想要创建的EXTERNAL table名称;column1, column2等为表中的列名,data_type1, data_type2等为列的数据类型;FIELDS TERMINATED BY ‘,’表示数据中列之间的分隔符为逗号,您也可以根据实际情况进行调整;LOCATION ‘hdfs://path/to/file’表示关联HDFS中的数据文件路径。
使用EXTERNAL table的好处是,您可以直接访问HDFS中的数据文件,无需将数据导入到Hive仓库中,从而提高数据访问和查询效率。另外,您可以在HDFS中使用其他工具和框架来处理和管理数据,而不必局限于Hive。
相关问题
create external table
创建外部表
创建外部表是指在数据库中创建一个表,但是该表的数据并不存储在数据库中,而是存储在外部存储系统中,例如HDFS、S3等。外部表可以让我们在数据库中查询和操作外部存储系统中的数据,而无需将数据导入到数据库中。
创建外部表的语法如下:
CREATE EXTERNAL TABLE table_name
(
column1 data_type,
column2 data_type,
...
)
LOCATION 'external_location';
其中,table_name是要创建的外部表的名称,column1、column2等是表的列名和数据类型,LOCATION是外部存储系统中数据的路径。
例如,我们可以创建一个外部表来查询HDFS中的数据:
CREATE EXTERNAL TABLE sales
(
id INT,
product_name STRING,
price DOUBLE
)
LOCATION '/user/hadoop/sales_data';
这个语句将在数据库中创建一个名为sales的外部表,该表包含三列:id、product_name和price。数据存储在HDFS的/user/hadoop/sales_data路径下。我们可以使用SELECT语句来查询该表中的数据:
SELECT * FROM sales;
这将返回外部表sales中的所有数据。
create external table 和create table 的区别
create external table和create table的区别在于数据存储的位置不同。create table用于在关系型数据库中创建一个表,数据会存储在数据库中;而create external table用于在Hadoop分布式文件系统中创建一个表,数据存储在HDFS中。
另外,create external table可以将已经存在于HDFS中的数据文件(如txt、csv等格式)直接映射为一个表,无需将数据加载到数据库中,这对于大数据处理和分析非常有用。
总之,create table用于关系型数据库中创建表,而create external table用于在Hadoop分布式文件系统中创建表。