使用hive中的数据测量加载表的时间(可能吗?)

时间:2016-04-03 12:05:51

标签: hadoop hive

我使用以下命令从hdfs中存储的数据中创建了一个表:

create external table users
(ID INT, NAME STRING, ADRESS STRING, EMAIL STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE LOCATION '/data/tpch/users';

这个存储在hdfs中的用户表有10gb。并且create table只花了1秒来创建表并加载数据。所以这很奇怪,或者它真的很快。我的疑问是,用hive中的数据检查加载表的时间是否可以使用上面的命令与位置?或者该命令只是创建对hdfs中存储的数据的引用?

那么检查在hive表中加载数据的时间的正确方法是什么?

因为1秒似乎非常快,所以mysql或其他关系数据库可能需要30分钟或更长时间才能将10gb数据加载到表中。

1 个答案:

答案 0 :(得分:0)

您的create table语句指向表的外部存储,因此Hive不会复制数据。 documentation解释了这样的外部表:

  

外部表格

     

EXTERNAL关键字允许您创建表格并提供LOCATION   Hive不使用此表的默认位置。这来了   如果您已经生成了数据,那就派上用场了。当删除外部时   表,表中的数据不会从文件系统中删除。

     

EXTERNAL表指向其存储的任何HDFS位置   而不是存储在配置属性指定的文件夹中   hive.metastore.warehouse.dir。

这不是100%明确的,但想法是Hive指向表内容而不是直接管理它。