orc—具有不同文件格式的配置单元中的文件大小

wpx232ag  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(626)

我有一个小文件(2mb)。我在这个文件上创建了一个外部配置单元表(存储为textfile)。我创建了另一个表(存储为orc)并从上一个表复制了数据。当我检查orc表中数据的大小时,它超过2mb。
orc是一种压缩文件格式,所以数据大小不应该更小吗?

dohp0rv5

dohp0rv51#

因为你的源文件太小了。orc具有复杂的结构,内部索引、页眉、页脚、postscript、压缩编解码器还添加了一些结构等。有关详细信息,请参见此:https://cwiki.apache.org/confluence/display/hive/languagemanual+orc#languagemanualorc-orcfileformat所有这些支持结构都比数据占用更多的空间。对于这样小的文件,您确实不需要存储列的最小/最大值,也不需要blum过滤器等,因为您的文件可能适合内存。对于这种情况,最好的存储是未压缩的文本文件。您也可以尝试gzip源文件并检查其大小。太小的gzip文件可能比未压缩的文件大。文件越大,压缩和使用orc的好处就越多。

u7up0aaq

u7up0aaq2#

从hive0.14开始,用户可以通过在表或分区上发出concatenate命令来请求将小orc文件有效地合并在一起。文件将在条带级别合并而不重新序列化。
alter table istari[partition\u spec]连接;

相关问题