Skip to main content
Announcements
UPGRADE ADVISORY for Qlik Replicate 2024.5: Read More
cancel
Showing results for 
Search instead for 
Did you mean: 
MoeyE
Partner - Creator III
Partner - Creator III

Is there any way select the separator symbol between schema and table name?

Hi,

When Replicate creates a table in the target the convention is to separate the schema name from the table name using a "." dot symbol. e.g SchemaName.TableName. Is there any way to change the symbol that goes inbetween?

Thanks,

Mohammed

Labels (1)
2 Solutions

Accepted Solutions
john_wang
Support
Support

Hello @MoeyE ,

Thanks for the feedback. Are you mentioning the target side topic name convention, is that correct? By default the topic name will be created as SchemaName.TableName, now we need a different symbol (eg double underscores) likes SchemaName__TableName.

If yes then we may Overriding the default settings by using $topic. A sample expression:

$AR_M_SOURCE_SCHEMA ||'__'|| $AR_M_SOURCE_TABLE_NAME

john_wang_0-1707455443962.png

 

BTW, I summarized all metadata options in the Kafka target article How to add tables name in Kafka message, hope it helps in the MSK target as well.

Feel free to let me know if you need any additional information.

Regards,

John.

 

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!

View solution in original post

john_wang
Support
Support

Hello @MoeyE ,

Seems you are facing the expression issue, please take note that expression  "$AR_M_SOURCE_SCHEMA||'__'||$AR_M_SOURCE_TABLE_NAME" is problematic. I've correct my sample, the accurate expression should be as:

$AR_M_SOURCE_SCHEMA ||'__'|| $AR_M_SOURCE_TABLE_NAME

all operator symbols must be preceded by a space and followed by a space.

Please correct the expression and test again. Feel free to let me know if it works.

Good luck,

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!

View solution in original post

10 Replies
john_wang
Support
Support

Hello @MoeyE ,

Thanks for reaching out to Qlik Community!

Would you please share what's the source and target endpoint types? We'd to confirm for you.

Regards,

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
MoeyE
Partner - Creator III
Partner - Creator III
Author

Hi John,

 

thanks for the reply. It's Oracle to AmazonMSK. 

 

Regards,

Mohammed

deepaksahirwar
Creator II
Creator II

Hi Mohammed,

Welcome! We’re delighted to have you in the Qlik Community portal. Thank you for bringing your question to us.

In Qlik Replicate, the convention is to separate the schema name from the table name using a “.” dot symbol, as you mentioned. However, Qlik Replicate does not provide a direct option to change this separator symbol.

That said, you can manipulate the schema or table names using global transformation rules. For example, you can add a prefix or suffix to the schema or table names. If you want to include an underscore or other legal character to separate the prefix/suffix from the original name, you must add it as part of the character string.

Please note that these changes will not replace the “.” separator but will allow you to add additional characters to the schema or table names.

I hope this helps! Let me know if you have any other queries.

If our response has been helpful, please consider clicking "Accept as Solution". 
This will assist other users in easily finding the answer. ‌‌

Best Regards,
Deepak

john_wang
Support
Support

Hello @MoeyE ,

Thanks for the feedback. Are you mentioning the target side topic name convention, is that correct? By default the topic name will be created as SchemaName.TableName, now we need a different symbol (eg double underscores) likes SchemaName__TableName.

If yes then we may Overriding the default settings by using $topic. A sample expression:

$AR_M_SOURCE_SCHEMA ||'__'|| $AR_M_SOURCE_TABLE_NAME

john_wang_0-1707455443962.png

 

BTW, I summarized all metadata options in the Kafka target article How to add tables name in Kafka message, hope it helps in the MSK target as well.

Feel free to let me know if you need any additional information.

Regards,

John.

 

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
MoeyE
Partner - Creator III
Partner - Creator III
Author

Hi Jon,

 

Yes this is exactly what i needed thank you!

 

have a good weekend,

Regards,

Mohammed

john_wang
Support
Support

Thank you so much for the feedback Mohammed @MoeyE 

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
MoeyE
Partner - Creator III
Partner - Creator III
Author

Hi John,

After trying these I come up with an issue. I followed the steps to rename the Kafka topic name using a global transformation. I added the column, used "$topic" as the name, and this was my function "$AR_M_SOURCE_SCHEMA||'__'||$AR_M_SOURCE_TABLE_NAME"

 

This only partially worked. In the target, the topic was created as "_SourceTableName". The problem here is that the schema name is missing. After doing a bunch of different tests I discovered that if I swapped the order around so that the expression was "$AR_M_SOURCE_TABLE_NAME||'__'||$AR_M_SOURCE_SCHEMA" instead, the resultant topic name is "_SourceSchemaName". It seems that it only includes one source header and only the one on the right of the "_". I replicated this on QR November 2022 and November 2023.

I did note an assertion in the logs 

[ASSERTION ]W: Undefined header column in expression with id: '10' (expression_calc.c:443

Can you please see if you can recreate this behaviour as well? In the meantime, I'll try other things to get it working as intended.

edit: additionally, I tried 2 different source database types. Oracle and Microsoft SQL Server

edit2: I am unable to currently get Replicate to create the required topic name in my desired format (SchemaName_TableName) however my current work around is to create the topic name manually in Kafka then use the Override method to route the changes of that table to the specific topic.

Regards,

Mohammed

 

 

john_wang
Support
Support

Hello @MoeyE ,

Seems you are facing the expression issue, please take note that expression  "$AR_M_SOURCE_SCHEMA||'__'||$AR_M_SOURCE_TABLE_NAME" is problematic. I've correct my sample, the accurate expression should be as:

$AR_M_SOURCE_SCHEMA ||'__'|| $AR_M_SOURCE_TABLE_NAME

all operator symbols must be preceded by a space and followed by a space.

Please correct the expression and test again. Feel free to let me know if it works.

Good luck,

John.

Help users find answers! Do not forget to mark a solution that worked for you! If already marked, give it a thumbs up!
MoeyE
Partner - Creator III
Partner - Creator III
Author

Hi John,

 

Sorry I didn't read the documentation and hadn't realised that they had to be separated. Yes it did work. Thanks a lot!

 

Regards,

Mohammed