我有一个压缩数据集列表,我需要这些数据集在未压缩时的大小
我尝试了proc内容,attrn函数但是当在压缩数据集上应用这些时,我可以获得当前状态(压缩)的数据集大小
我在网上搜索,我可以看到找到数据集近似大小的技术,但我找不到使用这些技术确切的数据集大小
与压缩数据集一样,大小为62MB,而未压缩数据集大小为629MB。现在我只有压缩数据集,我想找到未压缩数据集的大小,而不是实际解压缩数据
这可能吗?请分享你的想法。提前致谢
答案 0 :(得分:2)
运行proc contents
并计算sum(length) * nobs
,即每行的字节数乘以行数。表的真实大小稍微大一些(我认为是一些不变的字节数; 编辑 :它不是常数。但如果你需要近似数字,这种方法将)。
另一种选择是使用压缩表的大小和压缩比(在创建/修改表时,您应该在日志中看到它)。只需将压缩表大小除以百分比即可。
答案 1 :(得分:0)
我怀疑是否有可能得到一个确切的答案,但你应该能够在没有太多工作的情况下产生合理准确的估计。
SAS数据集按行逐行压缩。从压缩数据集中选择一个小的代表性行样本,生成一个新的未压缩数据集,找到它的大小,然后按采样率的倒数进行缩放,以估计完整数据集的大小。这并不准确,因为有些行比其他行压缩得更好,但您应该能够使用更大的样本获得更准确的估计。
答案 2 :(得分:0)
查找变量的长度,该长度的总和将是每一行的长度。乘以行数将得到近似值。未压缩表的大小。
E.g表具有变量x和y并且观测值总计1000000。 x的长度为10,y的长度为20,则一个观察大小将为30个字节。
所以总大小为30 * 1000000 = 3000000字节= 3 MB
请记住,未压缩表的页和观察开销较小,因此实际大小将小于3 MB。