0

次の関数を使用して、2 つの CSV の内容 (「セル」) を比較し、最大値の出力を取得できます。

Compare-Object $oldfile $latestfile -Property  "UsedSize" -PassThru |  select-Object  "VolumeName", "UsedSize" | export-csv c:\kits\_write\snapshots\voldelta.csv -NoTypeInfo

ただし、セル内の値の間のデルタ/差を取得したいと考えています。

2 つの CSV の値の違いを見つけるために算術を実行することは可能ですか?

コンテキストを提供するために、NetApp ボリューム スナップショットのスケジュールを、たとえば 6 時間から 15 分に増やしています。変更を実装する前に、ボリューム上のすべてのデータ (もちろんスナップショットを含む) の推定成長率を調べるためNに、時々デルタの収集を開始したいと思います。N+15 minutesはい、snap delta既存のスナップショットに対してこれを生成するための Data ONTAP メソッドです。

ありがとう

【コメントに関して追記】

ファイル A:

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)
}
4

1 に答える 1