Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
The target is SAP Sybase IQ. Replication latency is more than 4 hour !!!
From SAP IQ log we can see the target is not bottleneck, because SAP Sybase IQ could apply ~ 450K rows in 17 sec. (26 500 rows per sec). After SAP Sybase IQ apllied batch then SAP IQ has to wait for 6 minutes when Qlick Replicate is preparing the next batch for loading. (approx. 1250 rows per sec)
According to documentation there is HIGH-PERFORMANCE DATA LOADING FOR SAP SYBASE IQ https://www.qlik.com/us/sap-analytics/data-warehouse-solutions-for-sap-sybase-iq
But in our case average loading speed (aprrox. 1000 rows per sec) it seems doesn’t meets such claims
In which way we can improve loading speed to SAP Sybase IQ?
Some screenshots are attached
Update.
We have done some researches and can claim - the delay mainly depends on Target (SybaseIQ) performance.
When delay appears we can see several ready to use files for loading prepared by REPLICATE in the folder sorter.
After REPLICATE loaded changes into temporary table attrep_changesXXX it has to wait when those changes will be applied on the target.
Hi @sergsyb
From the screen capture it looks like Replicate is waiting for the target to apply a commit.
1. What version of Replicate are you running?
2. Is this a test task, or in production?
3. On the task's Monitoring tab, Tools drop-down menu, select Log Management.
On the screen that opens, please ensure the box "Store trace/verbose logging in memory, but if an error occurs write to the logs" is NOT checked. Scroll down to the following item and set it over one position to the right, Trace. Clik OK.
The change will take effect immediately (no need to stop/resume the task).
The task log will be fairly large so limit this to only 20-30 minutes before returning these logging levels back to Info, then zip the log file and attach it.
PERFORMANCE
If there is no apparent error or software issue after checking the log, I suggest engaging our Professional Services team as implementation/configuration/performance tuning falls under their purview.
Thanks,
Dana
1. Qlik 2022.5.0.291
2. production
3. We will do it and let you know
Could you describe more detailed in which way Replicate send changes to IQ. Is it use row-by-row (insert statements) or it uses bulk operations with help statement LOAD TABLE from external files.
Because Sybase IQ is not an OLTP engine. IQ performs best using set and bulk operations using LOAD TABLE from external files, or using INSERT LOCATION by OpenClient protocol from compatible servers.
If QR load the data into an IQ table row-by-row (INSERT-VALUES statements, even grouped in batch) then the processing will be very slow, no matter how much your IQ server is tuned. IQ is just not designed for row-by-row activity.
Following document mention that Qlik (Attunity) Click-2-Load solution for SAP Sybase IQ leverages Sybase LOAD TABLE statement to efficiently import data from external data sources and ensures that data is loaded into Sybase IQ as fast as possible.
Please clarify Replicate is using the same approach?
Hello @sergsyb , copy @Dana_Baldwin ,
You are right, Qlik Replicate uses LOAD TABLE method to get best performance. In general the options is enabled, set target_load/target_apply to Verbose will get more detailed information from the task log file.
if it's off then can be turn on by
SET OPTION PUBLIC.ALLOW_READ_CLIENT_FILE='ON';
Hope this helps.
Regards,
John.
Hi @john_wang ,
Checked Sybase website, allow_read_client_file is OFF by default.
Regards,
Desmond
Hello @sergsyb ,
Thanks for the clarification. Please follow @Dana_Baldwin suggestion to open support ticket and attach the necessary files/information, support team will investigate deeper around the 6 mins gap between two loading batches. If no error/warning/one-by-one occurs then PS engaged.
BTW, if you can set (TARGET_APPLY to Verbose , PERFORMANCE to Trace) and keep it running for 20-30 minutes then it's much better.
Best Regards,
John.
Update.
We have done some researches and can claim - the delay mainly depends on Target (SybaseIQ) performance.
When delay appears we can see several ready to use files for loading prepared by REPLICATE in the folder sorter.
After REPLICATE loaded changes into temporary table attrep_changesXXX it has to wait when those changes will be applied on the target.