{"id":1226,"date":"2023-11-19T23:52:03","date_gmt":"2023-11-19T23:52:03","guid":{"rendered":"https:\/\/craftcookcode.com\/?p=1226"},"modified":"2024-05-06T05:18:32","modified_gmt":"2024-05-06T05:18:32","slug":"qlik-replicate-the-million-row-challenge-with","status":"publish","type":"post","link":"https:\/\/craftcookcode.com\/?p=1226","title":{"rendered":"Qlik Replicate &#8211; The million row challenge with"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1226\" class=\"elementor elementor-1226\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-77e55a04 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"77e55a04\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7f8668e8\" data-id=\"7f8668e8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6b7845c elementor-widget elementor-widget-text-editor\" data-id=\"6b7845c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>It seems every new project; the project teams come with new and innovative ways to make my life \u201cinteresting\u201d while managing Qlik Replicate.<\/p>\n<p>The latest idea they have is to pretty much request that one of our major Qlik Replicate tasks that is sucking data our of a DB2 database and delivering data to AWS S3 be duplicated and deliver pretty much the same data to GCS.<\/p>\n<p>When I got wind of this proposal it was already too far into the solution design to propose another solution; like copying the data from GCS to AWS S3.\u00a0 So, it was left up to me to go and tell the owners of the DB2 system that there is another massive feed will be built of their database \u2013 basically doing the same thing.<\/p>\n<p>With some persuasion I could get internal funding to research and implement Log Streaming to consolidate our reads from the DB2 system.\u00a0 Hardware wise this required adding more memory and disk space to the QR servers to handle the log streaming.\u00a0<\/p>\n<p>As for the Log stream component of the solution, I started looking into the settings.\u00a0 Since we are drawing a lot of data from DB2 \u2013 I am concerned about disk space and what performance impact the compression setting has on the task.<\/p>\n<p>To test the impact; I set up the following test scenario:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a23c8d elementor-widget elementor-widget-heading\" data-id=\"1a23c8d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">The \"Million row\" challenge<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff609b1 elementor-widget elementor-widget-text-editor\" data-id=\"ff609b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>To test \u2013 I created a very wide table in a test MS-SQL (a database I had access to); which contained integers and varchars.<\/p>\n<p>With a python script, a million rows were inserted into the table in batches of 10,000.\u00a0 In the end the million rows equated to about 1.3Gb on the database.<\/p>\n<p>I did ten test runs, increasing the compression in the log stream endpoint with each individual run.<\/p>\n<p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7037c1d elementor-widget elementor-widget-image\" data-id=\"7037c1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"740\" height=\"219\" src=\"https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_1.png\" class=\"attachment-large size-large wp-image-1229\" alt=\"\" srcset=\"https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_1.png 841w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_1-300x89.png 300w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_1-768x227.png 768w\" sizes=\"(max-width: 740px) 100vw, 740px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f3f9b74 elementor-widget elementor-widget-text-editor\" data-id=\"f3f9b74\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Using Qlik Replicate\u2019s analytics I could then get the metrics for the Log Stream\u2019s task; and a task that is reading from the log stream and outputting the data to a NULL endpoint.<\/p>\n<p>I also grabbed the file sizes that the log stream created on the server&#8217;s drive.<\/p>\n<p>Here are the results:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c315ac7 elementor-widget elementor-widget-text-editor\" data-id=\"4c315ac7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<figure class=\"wp-block-table alignleft\">\n<table>\n<thead>\n<tr>\n<th style=\"text-align: center;\">\u00a0<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">Log Stream File Size (Mb)<\/th>\n<th style=\"text-align: center;\">LS &#8211; CPU %<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">LS &#8211; Memory (MB)<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">LS &#8211; Source latency (sec)<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">LS &#8211; Target latency (sec)<\/th>\n<th style=\"text-align: center;\">Target &#8211; CPU %<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">Target &#8211; Memory (MB)<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">Target &#8211; Source latency (sec)<\/th>\n<th class=\"has-text-align-right\" style=\"text-align: center;\" data-align=\"right\">Target &#8211; Target latency (sec)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">No compression<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1,974<\/td>\n<td style=\"text-align: right;\">7<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">134<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td style=\"text-align: right;\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">126<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">4<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 2<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">718<\/td>\n<td style=\"text-align: right;\">15<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">169<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">2<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">4<\/td>\n<td style=\"text-align: right;\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">105<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 3<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">690<\/td>\n<td style=\"text-align: right;\">14<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">156<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">0<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td style=\"text-align: right;\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">118<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">2<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">2<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">683<\/td>\n<td style=\"text-align: right;\">16<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">155<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">2<\/td>\n<td style=\"text-align: right;\">6<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">127<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">2<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">2<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 5<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">675<\/td>\n<td style=\"text-align: right;\">21<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">281<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">5<\/td>\n<td style=\"text-align: right;\">6<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">156<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 6<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">665<\/td>\n<td style=\"text-align: right;\">24<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">224<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td style=\"text-align: right;\">5<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">176<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">4<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 7<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">663<\/td>\n<td style=\"text-align: right;\">23<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">182<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">3<\/td>\n<td style=\"text-align: right;\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">160<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">4<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 8<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">657<\/td>\n<td style=\"text-align: right;\">38<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">394<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">9<\/td>\n<td style=\"text-align: right;\">4<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">181<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">9<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">9<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Level 9<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">657<\/td>\n<td style=\"text-align: right;\">46<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">345<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">1<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">10<\/td>\n<td style=\"text-align: right;\">6<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">189<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">12<\/td>\n<td class=\"has-text-align-right\" style=\"text-align: right;\" data-align=\"right\">12<\/td>\n<\/tr>\n<tr>\n<td>\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<td>\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<td class=\"has-text-align-right\" data-align=\"right\">\u00a0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p><\/p>\n<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e488d3b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e488d3b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-da10094\" data-id=\"da10094\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b70fb45 elementor-widget elementor-widget-image\" data-id=\"b70fb45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"740\" height=\"614\" src=\"https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_2-1024x849.png\" class=\"attachment-large size-large wp-image-1228\" alt=\"\" srcset=\"https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_2-1024x849.png 1024w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_2-300x249.png 300w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_2-768x637.png 768w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_2-1536x1273.png 1536w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_2.png 1630w\" sizes=\"(max-width: 740px) 100vw, 740px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fe46b79 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fe46b79\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3dc3feb\" data-id=\"3dc3feb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8d8e1ba elementor-widget elementor-widget-image\" data-id=\"8d8e1ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"740\" height=\"611\" src=\"https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_3-1024x846.png\" class=\"attachment-large size-large wp-image-1227\" alt=\"\" srcset=\"https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_3-1024x846.png 1024w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_3-300x248.png 300w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_3-768x634.png 768w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_3-1536x1268.png 1536w, https:\/\/craftcookcode.com\/wp-content\/uploads\/2023\/11\/code_cdc_compression_3.png 1630w\" sizes=\"(max-width: 740px) 100vw, 740px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9e6fed2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9e6fed2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0eaab78\" data-id=\"0eaab78\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fc025d7 elementor-widget elementor-widget-heading\" data-id=\"fc025d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Some notes on the results<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbc75d3 elementor-widget elementor-widget-text-editor\" data-id=\"dbc75d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>The run was done on a shared server; so other processes on the server running at the same time could impact the CPU and memory metrics<\/li>\n<li>Analytics only takes a snapshot of the metrics every 5min and the million rows are inserted into the database in less than &lt;10min so we can only get one snapshot of the metrics for the run.\u00a0 Depending where the run was up to; this could impact the metrics<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cefa0f7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cefa0f7\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-11c0ef7\" data-id=\"11c0ef7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8a6b9d4 elementor-widget elementor-widget-heading\" data-id=\"8a6b9d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Conclusions<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-60490a4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"60490a4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f40626\" data-id=\"2f40626\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-42dc648 elementor-widget elementor-widget-text-editor\" data-id=\"42dc648\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Like most things in IT; there is no magical setting that will cover all scenarios.\u00a0 Everything is a compromise, and the settings will need to be adjusted to meet one\u2019s particular source endpoint, nature of the data being replicated, and the latency can be tolerated to disk space usage.<\/p>\n<p>Here is what I learnt.<\/p>\n<ul>\n<li>If you require absolute minimum latency as possible \u2013 log steaming is not your answer for a couple of reasons.\u00a0\n<ol>\n<li>There is an inherited one second delay writing batches from the source system to the log stream.<\/li>\n<li>All the data is written to disk and then read by the target QR task.\u00a0 This means that the changes do not reside in memory and need to be read from disk.<\/li>\n<\/ol>\n<\/li>\n<li>Level 2 significantly reduces disk space usage with little compromise to speed and resource usage.<\/li>\n<li>Level 4 is the best compromise of disk space, speed, and resource usage.\u00a0 Anything above level 4 starts to strain the speed and resource usage with little improvement to disk space.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-216dc9b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"216dc9b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7e3824a\" data-id=\"7e3824a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3218afd elementor-widget elementor-widget-heading\" data-id=\"3218afd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Implementing Log streaming plan<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-975b3dd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"975b3dd\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f6b7725\" data-id=\"f6b7725\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-116971a elementor-widget elementor-widget-text-editor\" data-id=\"116971a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>For my scenario \u2013 I think Level 2 is the way to go and will stem my testing out from there.\u00a0<\/p>\n<p>My implementation plan is to implement the log streaming task into production and let it run by itself for a couple of weeks.<\/p>\n<p>During that time, I will monitor how the log stream task behaves with large batches and how much data it writes to disk as we cannot generate that amount data in our performance testing environments.<\/p>\n<p>Once the log stream task is settled; then I will start migrating the existing Qlik Replicate tasks to read from the log stream task stream instead of directly from the database.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>It seems every new project; the project teams come with new and innovative ways to make my life \u201cinteresting\u201d while managing Qlik Replicate. The latest idea&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":1076,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[16],"tags":[],"class_list":["post-1226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qlik-replicate"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/posts\/1226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1226"}],"version-history":[{"count":4,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/posts\/1226\/revisions"}],"predecessor-version":[{"id":1233,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/posts\/1226\/revisions\/1233"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=\/wp\/v2\/media\/1076"}],"wp:attachment":[{"href":"https:\/\/craftcookcode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/craftcookcode.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}