Sqoop,Avro和Hive

时间:2013-04-19 16:44:22

标签: hive sqoop avro

我目前正在使用Avro格式的Sqoop从Mysql导入HDFS,这非常有用。然而,将这些文件加载​​到HIVE的最佳方法是什么?

由于avro文件包含模式,我可以将文件拉到本地文件系统,使用avro工具并使用提取的模式创建表,但这似乎过多了?

此外,如果从mysql中的表中删除一列,我仍然可以将旧文件加载到使用新avro架构创建的新HIVE表中(丢失已丢弃的列)吗?

1 个答案:

答案 0 :(得分:3)

在9.1版本之后,Hive已经与Avro Hive SerDe打包在一起。这允许Hive直接从Avro文件中读取,而Avro仍“拥有”架构。

对于第二个问题,您可以使用列默认值定义Avro架构。添加新列时,请确保指定默认值,所有旧Avro文件只能在新的Hive表中找到。

要开始使用,您可以找到文档here,并且 Programming Hive (可在Safari Books Online上找到)中有一个section on the Avro HiveSerde,您可能会发现它更具可读性。