Split-Array
PowerShell-SkriptSequenzielle Verarbeitung großer Datenmengen kann lange dauern — gerade bei Cloud-APIs. Die Lösung ist Parallelisierung, und dafür müssen die Daten zuerst in Portionen (Chunks) zerlegt werden.
Damit dieses Rad nicht in jedem Skript neu erfunden wird, übernimmt Split-Array genau diesen Schritt: Es teilt ein Array in ein Array von Arrays — wahlweise nach maximaler Chunk-Größe oder in eine feste Anzahl von Chunks.
Klein, aber fein: Edge Cases sind berücksichtigt, die Eingabe funktioniert als Argument ebenso wie über die Pipeline.
Installation
Das Skript lässt sich per Dot-Sourcing direkt in der PowerShell-Sitzung oder im Profil laden:
. ./Split-Array.ps1 Die Bereitstellung als PowerShell-Modul ist für das nächste Release geplant.
Nutzungsbeispiele
1. Aufteilen nach maximaler Chunk-Größe (-ChunkSize)
Bestimmt, wie viele Elemente maximal in einem Unter-Array liegen dürfen. Ideal für API-Batches.
# Greedy-Verteilung (Standard): Füllt Chunks maximal auf
Split-Array -InputObject 1..10 -ChunkSize 3
# Ergebnis: (1,2,3), (4,5,6), (7,8,9), (10)
# Even-Verteilung: Verteilt den Rest gleichmäßig
Split-Array -InputObject 1..10 -ChunkSize 3 -Distribution Even
# Ergebnis: (1,2,3), (4,5,6), (7,8), (9,10) 2. Aufteilen in genau N Chunks (-MaxChunk)
Teilt das Array in eine feste Anzahl von Chunks auf.
# Even-Verteilung (Standard): Erzeugt exakt 4 ausgeglichene Chunks
Split-Array -InputObject 1..10 -MaxChunk 4
# Ergebnis: (1,2,3), (4,5,6), (7,8), (9,10) Verteilungsstrategien
| Strategie | Verhalten | Standard für |
|---|---|---|
Greedy | Füllt jeden Chunk bis zum Maximum; der letzte Chunk erhält den verbleibenden Rest. | -ChunkSize |
Even | Verteilt den Rest elementweise auf die ersten Chunks; erzeugt immer exakt die gewünschte Anzahl an Chunks. | -MaxChunk |