Make write.parquet.page-size-bytes and write.parquet.dict-size-bytes taking effect
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 72/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- cpp
- Bereich
- data-engineering
Rechercherichtung
Start at src/iceberg/parquet/parquet_writer.cc, especially ParquetWriter::Impl::Open, and read the declarations and defaults in src/iceberg/table_properties.h. Trace WriterProperties::FromMap and the Arrow writer-property construction, then locate existing writer-property tests. Done means defaults and overrides reach the underlying writer, invalid or non-positive values are rejected before file creation, and custom settings have write/read coverage.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The C++ Parquet writer does not apply write.parquet.page-size-bytes or write.parquet.dict-size-bytes. Both properties are already declared in TableProperties, but passing them through WriterProperties::FromMap has no effect on the underlying Parquet writer configuration.
On the current main, the ParquetWriter::Impl::Open has already configured the compression, compression level, and the row-count limit, however it builds Arrow's writer properties without setting the page or dictionary size. This prevents callers from using the standard Iceberg properties to tune these sizes.
For instance, providing the following properties should configure a 64 KiB data-page target and a 256 KiB dictionary-page limit on output parquet writer:
write.parquet.page-size-bytes=65536
write.parquet.dict-size-bytes=262144
Proposed change:
- Expose these two settings through
WriterPropertiesand apply them when constructing Arrow's Parquet writer properties. - Use the Iceberg defaults already declared in
table_properties.h: 1 MiB for data pages and 2 MiB for dictionary pages. - Reject invalid or non-positive values before creating the output file.
- Add tests for defaults, overrides, invalid values, and propagation into the underlying writer, plus write/read coverage with custom settings.
Background:
- Java resolves and validates both properties in
Parquet.WriteBuilder.Context.dataContext. - Rust applies them in
ParquetWriterBuilder::from_table_properties.
Note:
Byte-based row-group sizing (write.parquet.row-group-size-bytes) can be handled in a separate follow-up because it requires examining the buffering and flush policy.
- Vorherrschende Sprache
- C++
- Sterne
- 223
- Forks
- 127
- Ø Merge
- 1 T. 13 Std.
- Gemergte PRs (30 T.)
- 28
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/iceberg-cpp
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
apache/iceberg-cpp#973 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
apache/iceberg-cpp#959 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
apache/iceberg-cpp#955 · 3 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
apache/iceberg-cpp#946 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
apache/iceberg-cpp#944 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in apache/iceberg-cpp
Ähnliche Issues
-
Broken links in the docsOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
microsoft/onnxruntime#33018 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
customer-reported needs-triage question
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Azure/azure-sdk-for-cpp#7435 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ChromieCraft Generic Confirmed World Event
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
azerothcore/azerothcore-wotlk#27882 ·
Maintainer antworten meist innerhalb von 1 Tag
-
MacOS build failureOffenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
aristocratos/btop#1874 ·
Maintainer antworten meist innerhalb von 1 Tag