Partitioned Export with COPY Generates Excessively Many Small Files within Each Partition
- Lingua principale
- C++
- Stelle
- 127
- Fork
- 80
- Merge medio
- 13h 49m
- PR unite (30g)
- 48
Descrizione
**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}');
```
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia riproducendo il comando COPY documentato con il partizionamento Parquet e il FILENAME_PATTERN mostrato nell’issue. Confronta i file generati all’interno di una partizione con l’output atteso in un singolo file; il lavoro è completato quando l’esportazione non crea più frammenti piccoli non necessari per il workload segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- sql
- Ambito
- databases
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100