Forum Discussion

TheOddOne's avatar
TheOddOne
Frequent Visitor
1 year ago
Solved

Cannot create liquid clustering on existing unpartitioned table

Got this when trying to run "Alter table cluster by ()"

 

[DELTA_ALTER_TABLE_CLUSTER_BY_NOT_ALLOWED] ALTER TABLE CLUSTER BY is supported only for Delta table with clustering.

 

According to this article Use liquid clustering for Delta tables | Delta Lake, you can create clustering on existing unpartitioned table. My table is unpartitioned

 

Also this works for my other workspace last month, not sure what's happening this month

  • in theory, this should work only if:

    1. Your table is unpartitioned (which you said it is good).
    2. Clustering is supported and enabled for that table’s version/runtime.
    3. You're using a runtime version that supports liquid clustering like Databricks Runtime > 14.2, or Delta Lake 3.2+ depending on your environment.

    If your runtime is too old (pre 14.2), or if your Delta Lake version is < 3.2, or if clustering was explicitly disabled via table properties, you will get this error.

     

    But you mentioned this worked in another workspace recently. The most likely variation between the env? Databricks runtime version or Delta Lake version difference or possibly feature flag or table feature mismatch?

     

    Possible fix to try: align runtime to the minimum version supporting clustering, validate table features, and then run the ALTER TABLE

     

    Please 'Kudos' and 'Accept as Solution' if this answered your query.

3 Replies

  • in theory, this should work only if:

    1. Your table is unpartitioned (which you said it is good).
    2. Clustering is supported and enabled for that table’s version/runtime.
    3. You're using a runtime version that supports liquid clustering like Databricks Runtime > 14.2, or Delta Lake 3.2+ depending on your environment.

    If your runtime is too old (pre 14.2), or if your Delta Lake version is < 3.2, or if clustering was explicitly disabled via table properties, you will get this error.

     

    But you mentioned this worked in another workspace recently. The most likely variation between the env? Databricks runtime version or Delta Lake version difference or possibly feature flag or table feature mismatch?

     

    Possible fix to try: align runtime to the minimum version supporting clustering, validate table features, and then run the ALTER TABLE

     

    Please 'Kudos' and 'Accept as Solution' if this answered your query.

    • TheOddOne's avatar
      TheOddOne
      Frequent Visitor

      I am using Fabric runtime 1.3 (spark 3.5, delta 3.2), not databricks runtime

       

      I just realized the article says delta 3.3 or above, didn't notice Fabric is still 3.2. Kind of surprised

  • v-hjannapu's avatar
    v-hjannapu
    Community Support


    Hi TheOddOne   ,

    Thank you  for reaching out to the Microsoft fabric community forum.

    I would also like to thank Vinodh247  for actively sharing solutions in the community. Your contributions are really helpful. Adding to Vinodh247  answer, you can also follow the below link to try and resolve your issue.
    https://learn.microsoft.com/en-us/azure/databricks/delta/clustering
    https://learn.microsoft.com/en-us/azure/databricks/sql/language-manual/sql-ref-syntax-ddl-alter-table

    Hope this helps if you have any queries we are  happy to assist you further.
    Best Regards,
    Harshitha.