<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Iterative CDC issues with Qlik Sense in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501232#M103304</link>
    <description>&lt;P&gt;After testing, I agree with this statement: "&lt;SPAN&gt;I recommend that you don't use ReloadTime(). It is better to first see what the last (max) record in the qvd is, and use that as base for next data fetch. At least I would do something like that."&lt;BR /&gt;&lt;BR /&gt;How do I grab the&amp;nbsp;Max(CDC_UPDATE_DT) and set it to a variable i can use in the insert query?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LET lastReloadTime = Date(Max(CDC_UPDATE_DT); -- is not working&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;full code as of now:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;====&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LET lastReloadTime = Date(Max(CDC_UPDATE_DT);&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;QV_Table:&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`,&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_MODEL`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_YEAR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `COLOR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_CREATE_DT`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_UPDATE_DT`&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;FROM `schema`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV&gt;WHERE (CDC_UPDATE_DT &amp;gt; $(lastReloadTime));&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Concatenate LOAD CAR_ID,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_MODEL,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_YEAR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;COLOR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_CREATE_DT,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_UPDATE_DT&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE NOT Exists(CAR_ID);&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;STORE QV_Table INTO "lib://Folder_path/QLIK_CDC/qlik_cdc.qvd";&lt;/DIV&gt;
&lt;DIV&gt;=====&lt;BR /&gt;&lt;BR /&gt;my issue now is getting the max(&lt;SPAN&gt;CDC_UPDATE_DT) from the QVD&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Jan 2025 17:04:12 GMT</pubDate>
    <dc:creator>Wale</dc:creator>
    <dc:date>2025-01-14T17:04:12Z</dc:date>
    <item>
      <title>Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2498677#M102914</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;I am working on a project where I am trying to switch a bunch of Qliksense QVDs from full nightly reloads to change data capture reloads (CDC), where only new data (identified by a Primary Key) from our base table (in databricks) will be inserted/updated into a QVD where all the data is stored.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The current QVD stored via QlikSense feeds off of a base DLT&amp;nbsp;(delta live table) table from databricks. However, we now want to implement CDC and not do a FULL reload every night to save money on clusters costs.&lt;/P&gt;
&lt;P&gt;Only new data identified by a BOL_UPD_DT field from said base DLT in databricks will be loaded (added/concatenated) to the existent QVD. The BOL_UPD_DT field&amp;nbsp; is a timestamp that allows me to identify if an existing row has been newly updated or newly inserted).&lt;/P&gt;
&lt;P&gt;My goal is to use the BOL_UPD_DT and Primary Key (PK) from said base DLT table to scope out new data that will make it to the QVD. Both base table and QVD have the same named fields. My issue is - How do I carry out the following steps (via data load editor):&lt;BR /&gt;&lt;BR /&gt;1. Select new data (CDC) from base table based on "LastExecTime" and "BeginningThisExecTime" of the QVD reload.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Load the data from the existing QVD.&lt;/P&gt;
&lt;P&gt;3. Join the CDC data from the base table (in step 1) with the loaded data from QVD (in step 2) using their Primary Key (PK) and insert new data into the QVD if the data is new or update existing data in the QVD&lt;/P&gt;
&lt;P&gt;How does one script this??????&lt;/P&gt;
&lt;P&gt;Qlik-sense does a lot of things intuitively and seemingly doesn't give one refined process control per CDCs; so far for the 3 steps laid out above I the following pseudo script-wise:&lt;/P&gt;
&lt;P&gt;===============&lt;/P&gt;
&lt;P&gt;Let LastExecTime = ConvertToLocalTime(ReloadTime(), 'Place/TimeZone');&lt;BR /&gt;Let BeginningThisExecTime = ConvertToLocalTime(now(), 'Place/TimeZone');&lt;BR /&gt;Let LastExecTime = reloadtime();&lt;/P&gt;
&lt;P&gt;// Loads data from QVD&lt;/P&gt;
&lt;P&gt;LOAD&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;PK, &lt;BR /&gt;BOL_UPD_DT, &lt;BR /&gt;c, &lt;BR /&gt;d, &lt;BR /&gt;e&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;//Isolate Primary Key for join use using unqualify function&lt;/P&gt;
&lt;P&gt;qualify *;&lt;BR /&gt;unqualify PK;&lt;/P&gt;
&lt;P&gt;// Select newly updated or inserted data from base table&lt;/P&gt;
&lt;P&gt;SELECT&lt;/P&gt;
&lt;P&gt;PK, &lt;BR /&gt;BOL_UPD_DT, &lt;BR /&gt;c, &lt;BR /&gt;d, &lt;BR /&gt;e&lt;/P&gt;
&lt;P&gt;FROM base DLT&lt;BR /&gt;WHERE BOL_UPD_DT &amp;gt;= #$(LastExecTime)# &lt;BR /&gt;AND BOL_UPD_DT &amp;lt; #$(BeginningThisExecTime)#;&lt;/P&gt;
&lt;P&gt;=====================&lt;/P&gt;
&lt;P&gt;//Next for new QVD inserts I tried:&lt;/P&gt;
&lt;P&gt;Concatenate LOAD * FROM QVD&amp;nbsp;&lt;BR /&gt;WHERE NOT EXISTS(PK);&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;// did not work. QVD data load editor did not even save/compile because mistake in the script.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I need some help here....&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2024 21:49:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2498677#M102914</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2024-12-18T21:49:40Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2499043#M102944</link>
      <description>&lt;P&gt;I recommend that you don't use ReloadTime(). It is better to first see what the last (max) record in the qvd is, and use that as base for next data fetch. At least I would do something like that.&lt;/P&gt;
&lt;P&gt;You are using qualify * and that will make column names be prefixed with the table name, so when you later try to concatenate tables you will have a mess.&lt;/P&gt;
&lt;P&gt;A simpler approach for you is probably to first load data from the databse, after that concatenate the data from qvd. Don't load your qvd data until you have fetched new data. (But you could load what you need from the qvd.&lt;/P&gt;
&lt;P&gt;But it's hard to say what your exact problem is. You say that this is pseudoscript, but you also say it doesn't work when you run it. I'd like to see more of the actual script.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;At the end you say that the script did not save because of mistake in the script, but the script is always saved no matter what errors you do. (But never compiled, ever.)&lt;/P&gt;
&lt;P&gt;Are you using Qlik Sense? SaaS or on-prem? Or some other qlik product?&lt;/P&gt;</description>
      <pubDate>Sat, 21 Dec 2024 15:40:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2499043#M102944</guid>
      <dc:creator>henrikalmen</dc:creator>
      <dc:date>2024-12-21T15:40:16Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2499050#M102950</link>
      <description>&lt;P&gt;check this out for incremental loads, all 4 types:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://help.qlik.com/en-US/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/QVD_Incremental.htm" target="_blank"&gt;https://help.qlik.com/en-US/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/QVD_Incremental.htm&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 21 Dec 2024 21:45:12 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2499050#M102950</guid>
      <dc:creator>Qrishna</dc:creator>
      <dc:date>2024-12-21T21:45:12Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501225#M103298</link>
      <description>&lt;P&gt;Good afternoon and thank you for responding.&lt;/P&gt;
&lt;P&gt;I simplified the use case.&amp;nbsp; I am simply trying to use incremental loads to insert new data from Databricks tables to Qlik(sense) QVDs.&lt;/P&gt;
&lt;P&gt;I have a sample table I created in Databricks called "qlik_cdc".&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It consists of the following fields:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;CAR_ID, &lt;BR /&gt;CAR_MODEL, &lt;BR /&gt;CAR_YEAR, &lt;BR /&gt;COLOR, &lt;BR /&gt;CDC_CREATE_DT,&lt;BR /&gt;CDC_UPDATE_DT&lt;/P&gt;
&lt;P&gt;where&amp;nbsp;CDC_UPDATE_DT is a date field that will be used to track new records.&lt;/P&gt;
&lt;P&gt;I already loaded the initial data (just 5 sample records) from the "qlik-cdc" table in databricks into a QVD also called "qlik-cdc" QVD.&lt;/P&gt;
&lt;P&gt;I now want to be able to: 1) load new data incrementally without having to&amp;nbsp; reload the whole QVD. 2) Update existing data in the QVD if existing data in the&amp;nbsp;"qlik-cdc" table in databricks has been updated. Basically "Case 3: Insert and Update (No Delete)" from this page:&amp;nbsp;&lt;A href="https://help.qlik.com/en-US/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/QVD_Incremental.htm#" target="_blank"&gt;https://help.qlik.com/en-US/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/QVD_Incremental.htm#&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;So far here is what I have for incremental INSERTS only:&lt;/P&gt;
&lt;DIV&gt;---------&lt;/DIV&gt;
&lt;DIV&gt;LET lastReloadTime = ReloadTime();&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;//Let LastExecTime = ConvertToLocalTime(ReloadTime(), 'Place/TimeZone');&lt;/DIV&gt;
&lt;DIV&gt;//Let ThisExecTime = ConvertToLocalTime(now(), 'Place/TimeZone');&lt;/DIV&gt;
&lt;DIV&gt;//Let LastExecTime = reloadtime();&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;If qvdcreatetime("lib://Folder_Path/QLIK_CDC/qlik_cdc.qvd") Then&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;unqualify CAR_ID;&amp;nbsp; -- to be used in PK join for updates&lt;/DIV&gt;
&lt;DIV&gt;unqualify CDC_UPDATE_DT; -- to be used to track new data&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//load existing QVD data&lt;/DIV&gt;
&lt;DIV&gt;EXISTING_DATA:&lt;/DIV&gt;
&lt;DIV&gt;LOAD CAR_ID,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_MODEL,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_YEAR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;COLOR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_CREATE_DT,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_UPDATE_DT;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;END IF&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;CONCATENATE (EXISTING_DATA)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;[qlik_cdc]:&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`,&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_MODEL`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_YEAR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `COLOR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_CREATE_DT`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_UPDATE_DT`&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;FROM `dw_analytics_inprogress`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV&gt;WHERE (CDC_UPDATE_DT &amp;gt; $(lastReloadTime));&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;store qlik_cdc into lib://Folder_ATAP-ANALYTICSInProgress/QLIK_CDC/qlik_cdc.qvd;&lt;BR /&gt;-------&lt;BR /&gt;&lt;BR /&gt;I am about to start testing this, so i cannot tell you this second if it works, but I'll start testing in the next hr or so. I will certainly need help with the UPDATES if you have any experience with that Sir.&lt;BR /&gt;&lt;BR /&gt;Thank you so much for responding....&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Jan 2025 16:25:59 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501225#M103298</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T16:25:59Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501228#M103300</link>
      <description>&lt;P&gt;I've combed through that page for 2 months, Seems easy (Case 3: Insert and Update (No Delete)) to implement but there is a lot of pertinent info missing on that page.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2025 16:25:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501228#M103300</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T16:25:01Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501231#M103303</link>
      <description>&lt;P&gt;What you do is basically: fetch new data (based on the timestamp you have), combine data with previously fetched data in existing qvd, store the qvd under the same name (it will overwrite the old qvd).&lt;/P&gt;
&lt;P&gt;You can do it the other way around as well: load existing data from qvd, fetch new data and concatenate it into the table with old data, store the qvd with all data.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2025 16:32:52 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501231#M103303</guid>
      <dc:creator>henrikalmen</dc:creator>
      <dc:date>2025-01-14T16:32:52Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501232#M103304</link>
      <description>&lt;P&gt;After testing, I agree with this statement: "&lt;SPAN&gt;I recommend that you don't use ReloadTime(). It is better to first see what the last (max) record in the qvd is, and use that as base for next data fetch. At least I would do something like that."&lt;BR /&gt;&lt;BR /&gt;How do I grab the&amp;nbsp;Max(CDC_UPDATE_DT) and set it to a variable i can use in the insert query?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LET lastReloadTime = Date(Max(CDC_UPDATE_DT); -- is not working&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;full code as of now:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;====&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LET lastReloadTime = Date(Max(CDC_UPDATE_DT);&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;QV_Table:&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`,&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_MODEL`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_YEAR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `COLOR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_CREATE_DT`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_UPDATE_DT`&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;FROM `schema`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV&gt;WHERE (CDC_UPDATE_DT &amp;gt; $(lastReloadTime));&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Concatenate LOAD CAR_ID,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_MODEL,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_YEAR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;COLOR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_CREATE_DT,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_UPDATE_DT&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE NOT Exists(CAR_ID);&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;STORE QV_Table INTO "lib://Folder_path/QLIK_CDC/qlik_cdc.qvd";&lt;/DIV&gt;
&lt;DIV&gt;=====&lt;BR /&gt;&lt;BR /&gt;my issue now is getting the max(&lt;SPAN&gt;CDC_UPDATE_DT) from the QVD&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2025 17:04:12 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501232#M103304</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T17:04:12Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501236#M103307</link>
      <description>&lt;P&gt;This is where I am now:&lt;BR /&gt;=====&lt;/P&gt;
&lt;DIV&gt;TMP:&lt;/DIV&gt;
&lt;DIV&gt;Load date(max(CDC_UPDATE_DT)) as MaxDate&lt;/DIV&gt;
&lt;DIV&gt;From lib://Folder_path/QLIK_CDC/qlik_cdc.qvd (QVD);&lt;/DIV&gt;
&lt;DIV&gt;LET MaxDate = Peek('MaxDate',0,'TMP');&lt;/DIV&gt;
&lt;DIV&gt;DROP Table TMP;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//&lt;/DIV&gt;
&lt;DIV&gt;QV_Table:&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`,&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_MODEL`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_YEAR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `COLOR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_CREATE_DT`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_UPDATE_DT`&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;FROM `schema_name`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV&gt;WHERE (CDC_UPDATE_DT &amp;gt; $(MaxDate));&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Concatenate LOAD CAR_ID,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_MODEL,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_YEAR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;COLOR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_CREATE_DT,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_UPDATE_DT&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE NOT Exists(CAR_ID);&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;STORE QV_Table INTO "lib://Folder_ATAP-ANALYTICSInProgress/QLIK_CDC/qlik_cdc.qvd";&lt;/DIV&gt;
&lt;DIV&gt;======&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I am getting the following error:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV class="headline edc_error"&gt;The following error occurred:&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;ERROR [42K09] [Qlik][Hardy] (80) Syntax or semantic analysis error thrown in server while executing query. Error message from server: org.apache.hive.service.cli.HiveSQLException: Error running query: [DATATYPE_MISMATCH.BINARY_OP_DIFF_TYPES] org.apache.spark.sql.catalyst.ExtendedAnalysisException: [DATATYPE_MISMATCH.BINARY_OP_DIFF_TYPES] &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;Cannot resolve "(CDC_UPDATE_DT &amp;gt; ((12 / 24) / 2024))" due to data type mismatch:&lt;/STRONG&gt; &lt;/FONT&gt;the left and right operands of the binary operator have incompatible types ("DATE" and "DOUBLE"). SQLSTATE: 42K09; line 8 pos 7 at org.apache.spark.sql.hive.thriftserver.HiveThriftServerErrors$.runningQueryError(HiveThriftServerErrors.scala:49) at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.$anonfun$execute$1(SparkExecuteStatementOperation.scala:805) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at com.databricks.unity.UCSEphemeralState$Handle.runWith(UCSEphemeralState.scala:51) at com.databricks.unity.HandleImpl.runWith(UCSHandle.scala:104) at org...&lt;/DIV&gt;
&lt;DIV class="empty edc_error"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="headline edc_error"&gt;The error occurred here:&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;QV_Table: SELECT&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;`CAR_ID`,&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;`CAR_MODEL`,&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;`CAR_YEAR`,&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;`COLOR`,&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;`CDC_CREATE_DT`,&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;`CDC_UPDATE_DT`&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;FROM `dw_analytics_inprogress`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV class="edc_error"&gt;WHERE (CDC_UPDATE_DT &amp;gt; 12/24/2024)&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Jan 2025 17:44:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501236#M103307</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T17:44:42Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501244#M103308</link>
      <description>&lt;P&gt;This finally worked without erroring out, just need to make sure it did what I wanted:&lt;/P&gt;
&lt;P&gt;====================&lt;/P&gt;
&lt;DIV&gt;LastUpdateDate:&lt;/DIV&gt;
&lt;DIV&gt;Load&lt;/DIV&gt;
&lt;DIV&gt;MAX(CDC_UPDATE_DT) as max_last_update&lt;/DIV&gt;
&lt;DIV&gt;FROM lib://Folder_path/QLIK_CDC/qlik_cdc.qvd (QVD);&lt;/DIV&gt;
&lt;DIV&gt;LET vMaxLastUpdate = Date(Peek('max_last_update', 0, 'TempTable'), 'YYYY-MM-DD');&lt;/DIV&gt;
&lt;DIV&gt;DROP Table LastUpdateDate;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Incremental:&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`,&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_MODEL`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_YEAR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `COLOR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_CREATE_DT`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_UPDATE_DT`&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;FROM `dw_schema`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV&gt;WHERE CDC_UPDATE_DT &amp;gt; '$(vMaxLastUpdate)';&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Concatenate&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;LOAD CAR_ID,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_MODEL,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_YEAR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;COLOR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_CREATE_DT,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_UPDATE_DT&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM lib://Folder_path/QLIK_CDC/qlik_cdc.qvd (QVD)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE NOT Exists(CAR_ID);&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Inner Join SQL SELECT CAR_ID FROM `dw_analytics_inprogress`.`qlik_cdc`;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;STORE Incremental INTO "lib://Folder_path/QLIK_CDC/qlik_cdc.qvd";&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Drop Table Incremental;&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Jan 2025 18:13:21 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501244#M103308</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T18:13:21Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501254#M103309</link>
      <description>&lt;P&gt;Okay - i'm moving pretty quickly here. The incremental inserts work now,&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Wale_0-1736881295802.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/176451i72C8D3249B0A4FB8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Wale_0-1736881295802.png" alt="Wale_0-1736881295802.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I just need to figure out updates, how do I do updates for already existing records in the QVD if its source (in Databricks) has newly updated records (not new inserts, but new updates to existing).&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2025 19:03:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501254#M103309</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T19:03:25Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501271#M103310</link>
      <description>Hello, my dear, how are you doing today, I am Zena 24 years old girl, I saw your profile today&lt;BR /&gt;I like It, I decided to contact you because i have&lt;BR /&gt;an important issue i need to disclosed to you&lt;BR /&gt;privately, please try to contact me with my&lt;BR /&gt;email address here （ zenahammed@hotmail.com ）&lt;BR /&gt;if i hear from you i will tell you more about&lt;BR /&gt;me with my photos, thanks hoping to hear from&lt;BR /&gt;you, yours Zina.</description>
      <pubDate>Tue, 14 Jan 2025 20:04:38 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501271#M103310</guid>
      <dc:creator>Zenababy</dc:creator>
      <dc:date>2025-01-14T20:04:38Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501284#M103311</link>
      <description>&lt;P&gt;So I have figured it all out &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; Thanks for your initial reply:&lt;/P&gt;
&lt;P&gt;Final Code:&lt;/P&gt;
&lt;DIV&gt;=============================================================&lt;/DIV&gt;
&lt;DIV&gt;LastUpdateDate:&lt;/DIV&gt;
&lt;DIV&gt;Load&lt;/DIV&gt;
&lt;DIV&gt;MAX(CDC_UPDATE_DT) as max_last_update&lt;/DIV&gt;
&lt;DIV&gt;FROM lib://Folder_path/QLIK_CDC/qlik_cdc.qvd (QVD);&lt;/DIV&gt;
&lt;DIV&gt;LET vMaxLastUpdate = Date(Peek('max_last_update', 0, 'TempTable'), 'YYYY-MM-DD');&lt;/DIV&gt;
&lt;DIV&gt;DROP Table LastUpdateDate;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Incremental:&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`,&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_MODEL`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CAR_YEAR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `COLOR`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_CREATE_DT`,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; `CDC_UPDATE_DT`&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;FROM `dw_schema`.`qlik_cdc`&lt;/DIV&gt;
&lt;DIV&gt;WHERE CDC_UPDATE_DT &amp;gt; '$(vMaxLastUpdate)';&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;//for inserts and updates&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Concatenate&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;LOAD CAR_ID,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_MODEL,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CAR_YEAR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;COLOR,&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_CREATE_DT,&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CDC_UPDATE_DT&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM lib://Folder_path/QLIK_CDC/qlik_cdc.qvd (QVD)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE NOT Exists(CAR_ID);&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;// for deletes&lt;/DIV&gt;
&lt;DIV&gt;Inner Join&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;SELECT `CAR_ID`&lt;/DIV&gt;
&lt;DIV&gt;FROM `dw_schema`.`qlik_cdc`;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;STORE Incremental INTO "lib://Folder_path/QLIK_CDC/qlik_cdc.qvd";&lt;/DIV&gt;
&lt;DIV&gt;=============================================================&lt;BR /&gt;&lt;BR /&gt;It works for new Inserts and updates (tested) and should work for deletes too.&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;/DIV&gt;</description>
      <pubDate>Tue, 14 Jan 2025 21:13:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501284#M103311</guid>
      <dc:creator>Wale</dc:creator>
      <dc:date>2025-01-14T21:13:43Z</dc:date>
    </item>
    <item>
      <title>Re: Iterative CDC issues with Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501326#M103319</link>
      <description>&lt;P&gt;Great! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Jan 2025 07:37:02 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Iterative-CDC-issues-with-Qlik-Sense/m-p/2501326#M103319</guid>
      <dc:creator>henrikalmen</dc:creator>
      <dc:date>2025-01-15T07:37:02Z</dc:date>
    </item>
  </channel>
</rss>

