我能够区分两个 CSV 的内容(“单元格”)并使用以下函数获得最大值的输出:
Compare-Object $oldfile $latestfile -Property "UsedSize" -PassThru | select-Object "VolumeName", "UsedSize" | export-csv c:\kits\_write\snapshots\voldelta.csv -NoTypeInfo
但是,我希望获得单元格中值之间的增量/差异。
是否可以执行算术来查找两个 CSV 中值的差异?
为了提供背景信息,我们正在增加 NetApp 卷快照计划,例如,从 6 小时增加到 15 分钟。我想不时开始收集增量,N
以N+15 minutes
在我们实施更改之前找出卷上数据(当然包括快照)的估计总体增长率。是snap delta
的,Data ONTAP 方法是为现有快照生成此内容。
谢谢
[关于评论的更新]
档案一:
VolumeName,TotalSize,AvailableSize,UsedSize
netapp_vol1,375809648400,101430421264,274379237136
文件 B:
VolumeName,TotalSize,AvailableSize,UsedSize
netapp_vol1,375809638400,101430456320,274379182080
我通过使用以下内容找到了“线索”:
$combocsv = $oldfile + $latestfile
$combocsv | group VolumeName | select name,@{Name="Totals";Expression={($_.group | Measure-Object -sum UsedSize).sum}}
除了我需要执行差异而measure-object
不是求和。我很难找到如何做到这一点。
根据下面选择的答案解决!
$oldfilecsv = @{}
$oldfile = import-csv "C:\kits\_write\snapshots\filera_version.csv" | foreach-object { $oldfilecsv[$_.VolumeName] = [long]$_.UsedSize }
$latestfilecsv = @{}
$latestfile = import-csv "C:\kits\_write\snapshots\filera_latest.csv" | foreach-object { $latestfilecsv[$_.VolumeName] = [long]$_.UsedSize }
$deltas = @{}
foreach ( $volume in $latestfilecsv.keys ) {
$delta = $latestfilecsv[$volume] - $oldfilecsv[$volume]
$deltas.add($volume, $delta)
}