Aleksandr Zakharchenko
08/06/2026, 6:49 PMRocky
08/06/2026, 6:49 PMDELTA_LENGTH_BYTE_ARRAY Parquet encoding (Encoding = 6) was added recently to improve compatibility with data lakes (like Iceberg) that use modern Parquet v2 encodings.
Supported Versions
* StarRocks v3.4.0 and later: This feature was officially implemented via Pull Request #57954 (titled [Enhancement] support parquet DELTA_LENGTH_BYTE_ARRAY encoding).
* StarRocks v4.0.x: Support is natively included in the 4.0 release series as part of enhanced Parquet v2 support.
* Older Versions: Support is not available in versions prior to late v3.3.x. As of version 3.2.x and early 3.3.x (e.g., v3.3.3), users reported errors such as Unsupported encoding or Failed to decode parquet page header when encountering this encoding.
Context and Usage Notes
* Reason for Addition: This encoding is often used by modern writers (including Snowflake's Iceberg tables and certain Spark/Databricks configurations) to store variable-length binary or string data more efficiently than PLAIN encoding.
* Vectorized Reader: The implementation is part of StarRocks' native vectorized Parquet reader, ensuring that reading Iceberg tables using this encoding remains high-performance.
* Related Encodings: Along with DELTA_LENGTH_BYTE_ARRAY, StarRocks also added support for DELTA_BINARY_PACKED and BYTE_STREAM_SPLIT in the same timeframe (v3.4/v4.0 series) to broaden compatibility with complex Parquet files.
If you are encountering errors with this encoding on an older version of StarRocks, it is recommended to upgrade to at least v3.4.0.
References
• data_source/feature-support-data-lake-analytics.md
• data_source/catalog/deltalake_catalog.md
• sql-reference/sql-functions/table-functions/files.md
• sql-reference/data-types/semi_structured/VARIANT.md