Partitioned Export with COPY Generates Excessively Many Small Files within Each Partition
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start by reproducing the documented COPY command with Parquet partitioning and the FILENAME_PATTERN shown in the issue. Compare the generated files within a partition against the expected single-file output; done means the export no longer creates unnecessary small fragments for the reported workload.
Written by the indexing model from the issue text.
Description
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 :
COPY my_schema.my_table
TO '/path/to/export'
(FORMAT 'parquet', PARTITION_BY (batch_id), OVERWRITE_OR_IGNORE, FILENAME_PATTERN 'records_{i}');
- Dominant language
- C++
- Stars
- 127
- Forks
- 80
- Avg merge
- 13h 41m
- Merged PRs (30d)
- 44
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from duckdb/duckdb-java
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
duckdb/duckdb-java#832 · 2 comments ·
-
Native SIGSEGV in DuckDB JDBC when repeatedly executing queries with window functions and LIMIT 0 Open
Difficulty 4/5 3-5 days Newbie friendliness 48/100
duckdb/duckdb-java#871 · 4 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
duckdb/duckdb-java#872 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
duckdb/duckdb-java#837 ·
-
executeBatch()` on a prepared INSERT runs s are ~1–2 orders of magnitude slower than the Appender Open
Difficulty 5/5 Over a week Newbie friendliness 42/100
duckdb/duckdb-java#815 · 1 comment ·
All issues in duckdb/duckdb-java
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
games-on-whales/wolf#509 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
bug-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 76/100