Eliezer Talker
07/14/2026, 6:22 AMRocky
07/14/2026, 6:22 AMREFRESH EXTERNAL TABLE <table_name> is usually required, although some bugs prevented this from working correctly in versions prior to 4.0.6/4.1.
3. Column Sequencing and "Corruption" (#53494)
There is a known issue when reading Iceberg tables where different Parquet files have different column sequences (schema evolution).
* Effect: StarRocks might fail to decode the Parquet page header or return errors like Corruption: Failed to decode parquet page header. While the data isn't physically deleted, it becomes unreadable by StarRocks until the layout is unified.
4. Support for UPDATE and MERGE INTO
It is important to note that native UPDATE and MERGE INTO support for Iceberg tables is not available in current stable versions (up to v4.1).
* Users typically perform updates via INSERT OVERWRITE or by using external engines like Spark.
* StarRocks v4.1 added support for DELETE on Iceberg, but UPDATE is currently targeted for v4.2.
5. Fixed I/O Sink Errors (#46979)
In earlier versions (fixed in v3.2.15), there was a bug in how StarRocks handled I/O errors during a sink (INSERT INTO) to Iceberg.
* Effect: If a network or storage error occurred during the write, the metadata commit might fail or become inconsistent, potentially leading to data that was written but not tracked, or vice versa.
Summary of Recommendations:
* Check your version: Ensure you are on at least v3.2.15 (for 3.x) or v4.0.6+ (for 4.x) to avoid fixed sink and caching bugs.
* Refresh Metadata: If you see "missing" or "old" data after an external update, run REFRESH EXTERNAL TABLE <table_name>.
* Avoid Equality Deletes on Partitioned Tables: Until bug #73901 is fully resolved in your version, be cautious with Iceberg tables that rely heavily on equality deletes across different partitions.
If you are experiencing specific "modified but not how asked" behavior (e.g., wrong values in columns), this is less common and often related to schema mapping issues during an INSERT INTO where columns are mapped by position rather than by name. Ensure your SELECT statement in an INSERT matches the Iceberg table's column order exactly.Rocky
07/14/2026, 6:23 AMIcebergEqualityDeleteRewriteRule in some versions lacks proper partition scoping.
2. Stale Data due to Data Cache
If you update or overwrite an Iceberg table using an external engine (like Spark) and then query it in StarRocks, you might see "incorrect" (old) values if the Data Cache is enabled.
* The Cause: StarRocks uses file names and modification times to manage its cache. Since Iceberg files are immutable and the metadata modification time can sometimes be reported as 0, StarRocks may incorrectly treat a new manifest/data file as a cached version of an old one.
* Fix/Workaround: Disable the Data Cache (SET enable_scan_datacache = false;) or manually run REFRESH EXTERNAL TABLE <table_name>;.
3. Duplicate Data Bug (#44753)
Users have reported seeing duplicate records in Iceberg v2 tables when using upsert or merge logic from Spark. This is often related to how StarRocks handles the "Merge-on-Read" (MoR) delete files. If the delete files (position or equality) are not interpreted correctly by the StarRocks scanner, both the original "deleted" row and the new "updated" row may be returned simultaneously.
4. DML Support Limitations
It is important to note that UPDATE and MERGE INTO for Iceberg were historically not supported or were highly experimental in StarRocks.
* In older versions, users were forced to use INSERT OVERWRITE (which replaces entire partitions) or a manual DELETE followed by an INSERT.
* DELETE support for Iceberg was only fully introduced in more recent versions (e.g., v4.1). Using these operations in older versions often required specific configurations and had known edge cases where column mappings could fail if the schema had evolved.
5. NULL values in Equality Deletes (#67321)
There were instances where rows deleted using an equality condition on a column containing NULL values were not correctly masked, causing deleted data to reappear in query results.
Recommendation
If you are experiencing data integrity issues:
1. Check your version: Many of these fixes (especially for over-deletion and NULL handling) are in v3.2.10+, v3.3.3+, and v4.x.
2. Verify the Cache: Try running SET enable_scan_datacache = false; to see if the "incorrect" data is actually just a stale cache.
3. Inspect Metadata: Use the metadata tables to see if the delete files exist:
sql
SELECT * FROM <catalog>.<db>.<table>$files WHERE content != 'DATA';
4. Community Support: For specific "wrong value" bugs where columns seem swapped or values are mutated, these are often linked to Schema Evolution mismatches. Ensure your StarRocks catalog is fully refreshed.
References
• data_source/feature-support-data-lake-analytics.md
• data_source/catalog/iceberg/DML.md
• data_source/catalog/iceberg/iceberg_catalog.mdRocky
07/14/2026, 6:23 AM