Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi Qlik Replicate Community,
We are working on a task to convert Snowflake tables into Iceberg format using Qlik Replicate. While we have successfully used Global Parameters to handle data type conversions (e.g., ensuring VARCHAR fields conform to Iceberg’s max length requirement of 16777216), we’re encountering issues related to metadata tables that are being created during the replication process.
For example, one of the problematic metadata tables looks like this:
CREATE ICEBERG TABLE "PUBLIC"."attrep_☺☺☺☺☺" EXTERNAL_VOLUME='iceberg_external_volume' BASE_LOCATION='ATTUNITY_CDC' CATALOG='SNOWFLAKE' ( "seq" INTEGER NOT NULL, "col1" VARCHAR(41), "col2" VARCHAR(41), "col3" VARCHAR(41), "col4" VARCHAR(41), "col5" VARCHAR(41), "col6" VARCHAR(41), "col7" VARCHAR(37), "col8" VARCHAR(37), "col9" VARCHAR(16777216), "col10" VARCHAR(16777216), "col11" VARCHAR(16777216) )
SQL Compilation error: For Iceberg tables, only max length (16777216) is supported for 'VARCHAR(L)/STRING(L)' or use STRING directly.
Metadata Tables in PUBLIC Schema:
attrep_☺☺☺☺☺, attrep_apply_exceptions)?Handling Data Type Conversions for Metadata Tables:
Iceberg-Specific Data Type Constraints:
TIMESTAMP with microsecond precision (scale 6). Currently, we’re handling this through Global Parameters, but this approach doesn’t extend to metadata tables. Is there a way to address this at a broader configuration level?We’d appreciate any insights or recommendations on how to address these issues, specifically around:
Hello @Ayman1 ,
Thanks for reaching out to Qlik Community!
By default, Qlik Replicate does not support creating Iceberg tables, and, in my opinion, it hasn’t been fully QAed. If you wish to test this functionality, you will need to customize the Snowflake endpoint syntax. This customization falls under the scope of Professional Services (PS). I recommend reaching out to the PS team for assistance.
Regarding the error you encountered:
SQL Compilation Error:
For Iceberg tables, only max length (16777216) is supported for 'VARCHAR(L)/STRING(L)' or use STRING directly.
As the error message indicates, Iceberg tables only support the STRING data type, rather than VARCHAR(16777216). While customizing the syntax may resolve this issue, I strongly suggest proceeding with the guidance of the PS team to ensure a proper implementation.
Hope this helps.
John.