外部表分区的最佳大小是多少?我计划按年/月/天对表进行分区,我们每天大约获得2 2GB的数据。
发布于 2016-06-02 03:08:39
最佳表分区是指与您的表使用场景相匹配。分区的选择应基于以下条件:
2 2Gb即使对于一个文件来说也不是太大,尽管它仍然取决于您的使用场景。避免不必要的复杂和冗余分区,如(年、月、日)-在这种情况下,日期就足以进行分区修剪。
发布于 2016-06-02 04:31:41
配置单元分区定义将存储在元存储中,因此太多分区将占用元存储中的大量空间。
分区将作为目录存储在HDFS中,因此许多分区键将产生层次化的目录,这使得它们的扫描速度变慢。
您的查询将作为MapReduce作业执行,因此创建太小的分区是无用的。
这取决于大小写,想一想如何查询你的数据。对于你的情况,我更喜欢一个定义为'yyyymmdd‘的键,因此我们将获得365个分区/年,表目录中只有一个级别和2G数据/分区,这对于MapReduce作业来说很好。
有关答案的完整性,如果您使用配置单元< 0.12,请键入分区键字符串,请参阅here。
使用完整博客here。
发布于 2019-07-24 18:28:51
配置单元分区在数据稀疏的情况下最有效。我所说的稀疏是指数据在内部具有可见的分区,例如按年、月或日。
在您的情况下,按日期分区没有多大意义,因为每天将有2 Gb的数据,这并不是太大而无法处理。按周或月分区更有意义,因为它将优化查询时间,并且不会创建太多小分区文件。
https://stackoverflow.com/questions/37575615
复制相似问题