Avrodata文件和序列文件之间关于Apache sqoop的区别

时间:2014-06-16 04:49:36

标签: hadoop rdbms sqoop

在sqoop的角度来看,将关系表导入序列文件之间的区别是什么 -

sqoop import --connect connectionString \  
--username userName  –P --table tableName \ 
--as-sequencefile

并将其导入为avrodata文件,如 -

sqoop import --connect connectionString \  
--username userName  –P --table tableName \ 
--as-avrodatafile

序列文件和avrodata文件之间的实际区别是什么?

1 个答案:

答案 0 :(得分:11)

SequenceFiles是一种二进制格式,用于将各个记录存储在自定义记录特定的数据类型中。此格式支持二进制表示中所有数据的精确存储,适用于存储二进制数据(例如,VARBINARY列),或者主要由自定义MapReduce程序操作的数据(从SequenceFiles读取的性能高于从文本文件中读取,因为不需要解析记录)。

Avro数据文件是一种紧凑的,高效的二进制格式,可提供与其他编程语言编写的应用程序的互操作性。 Avro还支持版本控制,因此当例如在表中添加或删除列时,可以处理先前导入的数据文件以及新的数据文件。

这是Doug Cutting自己的比较:

http://www.quora.com/What-are-the-advantages-of-Avros-object-container-file-format-over-the-SequenceFile-container-format