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

标签 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文件的实际区别是什么?

最佳答案

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

关于hadoop - 关于 Apache sqoop 的 Avrodata 文件和序列文件之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24236803/

相关文章:

java - 映射输出记录和减少输入记录之间的关系是什么

scala - Apache Spark : Get number of records per partition

scala - 如何在 Apache ignite 中缓存 Dataframe

mysql - cassandra sqoop导入自动生成timeuuid

hadoop - hadoop和sqoop可以在不同机器上分开运行吗

hadoop - 如何使用Sqoop以Parquet-Avro文件格式保存数据?

ubuntu - 创建 3 节点 Hadoop 集群

mysql - Rails 可以在没有索引的情况下处理数据库唯一性吗?

mysql - 考虑参数子集的选择

ms-access - MS Access何时比RDBMS支持的Web应用程序更好?