Partitioned Export with COPY Generates Excessively Many Small Files within Each Partition
- Vorherrschende Sprache
- C++
- Sterne
- 127
- Forks
- 80
- Ø Merge
- 13 Std. 49 Min.
- Gemergte PRs (30 T.)
- 48
Beschreibung
**Duckdb Version**: 1.1.3 and 1.2.0
When using the COPY command to export data into Parquet format with a partition key (e.g., batch_id), DuckDB produces multiple very small files (approximately 50–100KB each). In our use case—exporting around 100 million line items (1 crore) into batches of 5,000 line items each—this results in roughly 20,000 separate partition directories and small file fragments within each.
**Current output**
```
\batch_id=1000\
records_0.parquet (30kb)
records_1.parquet(70kb)
```
**Expected output**
```
\batch_id=1000\
records_0.parquet (100kb)
```
**Command used to export :**
```sql
COPY my_schema.my_table
TO '/path/to/export'
(FORMAT 'parquet', PARTITION_BY (batch_id), OVERWRITE_OR_IGNORE, FILENAME_PATTERN 'records_{i}');
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, den dokumentierten COPY-Befehl mit Parquet-Partitionierung und dem im Issue gezeigten FILENAME_PATTERN zu reproduzieren. Vergleiche die innerhalb einer Partition erzeugten Dateien mit der erwarteten Ausgabe einer einzelnen Datei; abgeschlossen ist die Aufgabe, wenn der Export für den gemeldeten Workload keine unnötigen kleinen Fragmente mehr erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- sql
- Bereich
- databases
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100