1

我正在评估 hadoop 和 hive (& impala) 的组合作为大型数据仓库的替换。我已经设置了一个版本,并且在读取访问方面表现出色。

有人可以给我任何提示,应该使用什么概念来将日常数据传递到表格?我在 hive 中有一个基于我放入 hdfs 的文件的表。但是现在我每天都有新的事务数据进来。我如何将它们添加到 hive 中的表中。插入是不可能的。HDFS 不能追加。那么我需要遵循的一般概念是什么。

对文档的任何建议或指导表示赞赏。

最好的祝福!

4

2 回答 2

3

Hive 允许将数据附加到表中——这在 HDFS 中如何发生的底层实现并不重要。您可以执行许多附加数据的操作:

  1. INSERT- 您可以将行追加到现有表中。
  2. INSERT OVERWRITE- 如果您必须处理数据,您可以执行INSERT OVERWRITE重新写入表或分区。
  3. LOAD DATA- 您可以使用它向表中批量插入数据,并且可以选择使用OVERWRITE关键字清除任何现有数据。
  4. 对数据进行分区
  5. 将数据加载到新表中并交换分区

如果您知道您将执行基于日期的搜索并让您能够在表或分区级别使用选项 1、2 和 3,那么分区非常有用。

于 2013-04-22T16:24:08.777 回答
2
 Inserts are not possible

插入是可能的,就像您可以创建一个新表并将数据从新表插入到旧表一样。

但简单的解决方案是您可以使用以下命令将文件数据加载到 Hive 表中。

load data inpath '/filepath' [overwrite] into table tablename;

如果您使用覆盖,那么只有现有数据用新数据替换,否则它只是附加。

您甚至可以通过创建 shell 脚本来安排脚本。

于 2013-04-21T03:11:26.427 回答