<?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 SAS DI Studio and delta load in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/SAS-DI-Studio-and-delta-load/m-p/274095#M7661</link>
    <description>&lt;P&gt;Hi SAS DI Studio experts,&lt;BR /&gt;&lt;BR /&gt;I have a operational/transactional database that increases by about 10m rows a year&lt;BR /&gt;but changes of a few hundret thousand rows could happen on a single day.&lt;BR /&gt;Some rows inserted years ago could also be corrected. I need to find the DELTA using&lt;BR /&gt;SAS DI Studio to update my DWH (sas datasets). I cant load every everning the whole&lt;BR /&gt;Oracle database. Oracle has a feature called Materialized Views, those keeo&lt;BR /&gt;up-to-date by themselves if correctly configured but in SAS, I dont see how its done.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Any ideas?&lt;/P&gt;</description>
    <pubDate>Tue, 31 May 2016 14:00:05 GMT</pubDate>
    <dc:creator>PhilipH</dc:creator>
    <dc:date>2016-05-31T14:00:05Z</dc:date>
    <item>
      <title>SAS DI Studio and delta load</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/SAS-DI-Studio-and-delta-load/m-p/274095#M7661</link>
      <description>&lt;P&gt;Hi SAS DI Studio experts,&lt;BR /&gt;&lt;BR /&gt;I have a operational/transactional database that increases by about 10m rows a year&lt;BR /&gt;but changes of a few hundret thousand rows could happen on a single day.&lt;BR /&gt;Some rows inserted years ago could also be corrected. I need to find the DELTA using&lt;BR /&gt;SAS DI Studio to update my DWH (sas datasets). I cant load every everning the whole&lt;BR /&gt;Oracle database. Oracle has a feature called Materialized Views, those keeo&lt;BR /&gt;up-to-date by themselves if correctly configured but in SAS, I dont see how its done.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Any ideas?&lt;/P&gt;</description>
      <pubDate>Tue, 31 May 2016 14:00:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/SAS-DI-Studio-and-delta-load/m-p/274095#M7661</guid>
      <dc:creator>PhilipH</dc:creator>
      <dc:date>2016-05-31T14:00:05Z</dc:date>
    </item>
    <item>
      <title>Re: SAS DI Studio and delta load</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/SAS-DI-Studio-and-delta-load/m-p/274110#M7662</link>
      <description>&lt;P&gt;Hi Philip&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You need a method to identify changed rows in the source table(s); this can be one of several - I won't go into all the complexities, but broadly:&lt;/P&gt;&lt;P&gt;1. use change/update timestamps on the source rows (if your application provides them) to select - you'll also need to maintain or derive a "last DW extract" timestamp as your lower bound value for selection&lt;/P&gt;&lt;P&gt;2. use Oracle's CDC feature, which may need extra licensing and requires some setup by the DBA (see &lt;A href="https://docs.oracle.com/cd/B28359_01/server.111/b28313/cdc.htm#i1025409" target="_blank"&gt;https://docs.oracle.com/cd/B28359_01/server.111/b28313/cdc.htm#i1025409&lt;/A&gt; for details); if you use this you should also be able to use DI Studio CDC transform, although I have to say I haven't used that myself&lt;/P&gt;&lt;P&gt;3. if your transactional system keeps a journal of transacted changes you could use that to build a 'delta for extract' set of keys to select against; again you'll need to time-boundary limit what you use from the journal&lt;/P&gt;&lt;P&gt;4. brute force comparison - extract the whole table and compare [which may be inefficient, as you can imagine]; either 'proc compare' or use MD5 checksum comparison&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Effort for 1 or 2 is moderate and both can be reasonably efficient (although 1 is dependent on how well the selection is processed); effort for 3 is a bit more, but is also fairly efficient - but you'll need to avoid heterogeneous queries by either preparing your extract keyset in Oracle, or loading the keys to a temporary table otherwise you risk having SAS try to do all the work itself.&lt;/P&gt;&lt;P&gt;Effort for 4 is also a bit more and it can consume more resources, both run-time and disk storage - but remember that full-table extract can be less demand on the DBMS than a complex query so your full-table extract *might* place less load on the DBMS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should also think about if and how the changes will be recorded in the DW table(s) - do you need to preserve past history? ('type 2' change recording) or is your intention just to reduce data extract volume?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope this helps&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Steve M&lt;/P&gt;</description>
      <pubDate>Tue, 31 May 2016 14:55:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/SAS-DI-Studio-and-delta-load/m-p/274110#M7662</guid>
      <dc:creator>SteveM_UK</dc:creator>
      <dc:date>2016-05-31T14:55:38Z</dc:date>
    </item>
  </channel>
</rss>

