Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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.
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.
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.
Hi John,
thanks for the reply. It's Oracle to AmazonMSK.
Regards,
Mohammed
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
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
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.
Hi Jon,
Yes this is exactly what i needed thank you!
have a good weekend,
Regards,
Mohammed
Thank you so much for the feedback Mohammed @MoeyE
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
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.
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