Hi @Gilk,
Before the how, can I ask what is driving the wish to turn it off? For most pipeline tables predictive optimization is doing useful work, running OPTIMIZE, VACUUM, and ANALYZE on serverless compute so file sizes, storage, and statistics stay healthy without you scheduling maintenance jobs. If the concern is cost, a conflict with your writes, or time-travel retention, there is often a more targeted solution than switching predictive optimization off entirely. Happy to point at the right one if you can share what you are seeing.
To answer your question... there is no toggle to turn off predictive optimization on the streaming table object itself. ALTER TABLE is not allowed on streaming tables, and neither ALTER STREAMING TABLE nor CREATE OR REFRESH exposes a PREDICTIVE OPTIMIZATION clause, so the per-table syntax you found for Delta managed tables has no direct equivalent here.
What you can do is control it one level up. Streaming tables and materialized views created by a Lakeflow pipeline are Unity Catalog managed tables, and predictive optimization uses an inheritance model across account, catalog, schema, and table. Since the table level is not settable for a streaming table, disable it at the schema or catalog that contains it, and the table inherits that.
ALTER SCHEMA my_catalog.my_schema DISABLE PREDICTIVE OPTIMIZATION;
or more broadly at catalog level..
ALTER CATALOG my_catalog DISABLE PREDICTIVE OPTIMIZATION;
PRedictive Optimization docs do not call out pipeline-managed tables as a special case, so I would verify it actually took effect on your object rather than assume. Both of these show the setting and whether it is inherited.
DESCRIBE SCHEMA EXTENDED my_catalog.my_schema;
DESCRIBE TABLE EXTENDED my_catalog.my_schema.my_streaming_table;
You can also confirm whether predictive optimzation is still touching the table by querying the predictive optimization system table, system.storage.predictive_optimization_operations_history.
If you would rather keep predictive optimization on but shape its behaviour instead of turning it off:
- Control VACUUM retention with the delta.deletedFileRetentionDuration table property, set in your pipeline definition. Just remember to set it before predictive optimization is enabled, and VACUUM FULL still enforces a 7-day minimum even if you configure a shorter value.
- If you are using automatic liquid clustering, predictive optimization may select or evolve clustering keys. Specifying explicit clustering columns in your pipeline definition avoids that.
- If predictive optimization is causing concurrency conflicts with active streaming writes, that is worth raising a support ticket.
Hope that helps.
If this answer resolves your question, could you mark it as โAccept as Solutionโ? That helps other users quickly find the correct fix.
Regards,
Ashwin | Delivery Solution Architect @ Databricks
Helping you build and scale the Data Intelligence Platform.
***Opinions are my own***