Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
MarcBExp22
Contributor II
Contributor II

Qlik Replicate Postgres to Snowflake - Quoted Identifiers created on all Snowflake tables and columns

Hi,  when replicating from AWS Aurora Postgres to Snowflake, Qlik Replicate tasks create all objects in Snowflake with quoted identifiers.   From the source, none of our tables/columns have quoted or require quotes.

Example target table on Snowflake: 

create or replace TABLE TESTDB."testschema"."test_table" (
"test_table_id" NUMBER(38,0) NOT NULL,
"col1" VARCHAR(36) NOT NULL,
"col2" NUMBER(38,0) NOT NULL,
"created_date" TIMESTAMP_NTZ(6) NOT NULL,
"created_by" VARCHAR(100) NOT NULL,
"updated_date" TIMESTAMP_NTZ(6) NOT NULL,
"updated_by" VARCHAR(100) NOT NULL,
constraint test_table_key_PK primary key ("test_table_id")
);

This adds quite a bit of overhead when coding in Snowflake.  Is there setting or way to remove this?

 

Qlik Replicate 

2 Solutions

Accepted Solutions
shashi_holla
Support
Support

Hi @MarcBExp22 

The reason Replicate is creating tables/columns with double quotes is:

https://docs.snowflake.com/en/sql-reference/sql/create-table.html

-->
"Specifies the identifier (i.e. name) for the table; must be unique for the schema in which the table is created.

In addition, the identifier must start with an alphabetic character and cannot contain spaces or special characters unless the entire identifier string is enclosed in double quotes (e.g. "My object"). Identifiers enclosed in double quotes are also case-sensitive.".

Also use the OOB from Snowflake 'QUOTED_IDENTIFIERS_IGNORE_CASE'.

https://docs.snowflake.com/en/sql-reference/parameters.html#label-quoted-identifiers-ignore-case

Thank you,

View solution in original post

MarcBExp22
Contributor II
Contributor II
Author

Solution found:

  • Navigate to Manage Endpoint Connections
  • In your endpoint connection under the advanced tab:
    • Click on Internal Parameters
    • Search for setIgnoreCaseFlag
    • Set parameter to true by clicking on the checkbox and click OK.

Verify on Snowflake side the following ACCOUNT level parameter is set.  (research and work with your account admin to understand impacts to this setting)

ALTER ACCOUNT SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;

Stop task,  go to task settings and make sure under full load to Drop and Create tables.  Re-run task (reload target) and tables/columns in Snowflake will now be created in all caps without quotes.

 

MarcBExp22_0-1660765844024.png

 

 

View solution in original post

2 Replies
shashi_holla
Support
Support

Hi @MarcBExp22 

The reason Replicate is creating tables/columns with double quotes is:

https://docs.snowflake.com/en/sql-reference/sql/create-table.html

-->
"Specifies the identifier (i.e. name) for the table; must be unique for the schema in which the table is created.

In addition, the identifier must start with an alphabetic character and cannot contain spaces or special characters unless the entire identifier string is enclosed in double quotes (e.g. "My object"). Identifiers enclosed in double quotes are also case-sensitive.".

Also use the OOB from Snowflake 'QUOTED_IDENTIFIERS_IGNORE_CASE'.

https://docs.snowflake.com/en/sql-reference/parameters.html#label-quoted-identifiers-ignore-case

Thank you,

MarcBExp22
Contributor II
Contributor II
Author

Solution found:

  • Navigate to Manage Endpoint Connections
  • In your endpoint connection under the advanced tab:
    • Click on Internal Parameters
    • Search for setIgnoreCaseFlag
    • Set parameter to true by clicking on the checkbox and click OK.

Verify on Snowflake side the following ACCOUNT level parameter is set.  (research and work with your account admin to understand impacts to this setting)

ALTER ACCOUNT SET QUOTED_IDENTIFIERS_IGNORE_CASE = FALSE;

Stop task,  go to task settings and make sure under full load to Drop and Create tables.  Re-run task (reload target) and tables/columns in Snowflake will now be created in all caps without quotes.

 

MarcBExp22_0-1660765844024.png