Huge skewed data, Need to partition and convert to parquet
我在关系数据库中有非常大的数据(近70TB未压缩),需要在s3中加载并转换为镶木地板,并按年份,月份,col1和col2对数据进行分区。
这将是日常工作,我有70Node集群,每个集群有256GB Ram,每个集群有64Vcores。我们正在尝试使用spark通过properitery连接器转储数据,并且转储数据的速度非常快。它基本上以CSV格式分多个块转储到S3中的临时位置中,数据以64 mb csv文件的1M大块转储。
不进行分区,转换成镶木地板的数据将在3个小时内完成,包括数据的卸载。
问题陈述:
基于分区的要求,我的数据高度不对称,因为近年来有70%的数据,在此范围内,col1和col2的每个也都严重偏斜。
当我将文件转换为不分区的拼花地板时,我得到了成千上万个小文件,并且多个任务失败,并出现s3-slowdown请求率错误。如果我尝试合并或重新分区数据,则会遇到重新排列/内存中断的问题。我试图避免在多次迭代中读取数据,因为转储的数据是未分区的,我可能最终每次都会读取整个1M文件进行过滤。
有没有一种方法可以在分区后重新分区(合并)文件?
感谢您的所有评论。我能够解决问题并能够达到要求。
整个过程现在将在4-5小时内完成。