<?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 Creating our QVD's in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314060#M1197915</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Rob, I will it give a go.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Mar 2011 15:09:09 GMT</pubDate>
    <dc:creator>hopkinsc</dc:creator>
    <dc:date>2011-03-17T15:09:09Z</dc:date>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314050#M1197905</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We are having problems getting our QVD's created as our data has got too big. I have been asked to try and find the best way to load in our data and save to QVD's.&lt;/P&gt;&lt;P&gt;We load in our data everyday at around 1am which previously was taking arond 5 hrs to complete. The problem we are getting now is that it fails everynight as the server runs out of memory.&lt;/P&gt;&lt;P&gt;The process of creating our QVD's is to first load in the days worth of data then save each table as a TMPQVD.&lt;/P&gt;&lt;P&gt;then we combine the TMPQVD with the FULL QVD&lt;/P&gt;&lt;P&gt;I have been thinking of maybe trying the QUALIFY statement to stop the relations between the fields, which i think would speed up the process - Is this right??&lt;/P&gt;&lt;P&gt;But how then would i save my FULL QVD's unqualified?&lt;/P&gt;&lt;P&gt;Can anyone help?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2011 10:57:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314050#M1197905</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-16T10:57:35Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314051#M1197906</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can You post your increametal load script ?.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2011 11:05:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314051#M1197906</guid>
      <dc:creator>suniljain</dc:creator>
      <dc:date>2011-03-16T11:05:42Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314052#M1197907</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sunil, thanks for your reply. Attached is our load script...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2011 11:12:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314052#M1197907</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-16T11:12:09Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314053#M1197908</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2011 12:19:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314053#M1197908</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-16T12:19:40Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314054#M1197909</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;any ideas ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2011 16:37:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314054#M1197909</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-16T16:37:07Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314055#M1197910</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;anyone have any ideas?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2011 21:51:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314055#M1197910</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-16T21:51:06Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314056#M1197911</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The qualify wouldn't help even if you could unqualify later. So far as I know, QlikView only works out the relationships between tables at the very end of the script. This is where you see synthetic keys being created, for instance.&lt;/P&gt;&lt;P&gt;Creating temp QVDs and combining them into a full QVD using only QVD loads is also, so far as I know, the most memory-efficient way to do what you're doing.&lt;/P&gt;&lt;P&gt;If there's any way to reduce the size of your fields and how many fields are being loaded, that might help.&lt;/P&gt;&lt;P&gt;If there are text values that could be reduced to codes with the text in a separate QVD, that would help, though it would also be annoying to deal with when loading in the QVD data.&lt;/P&gt;&lt;P&gt;You could perhaps just never build a full QVD. Perhaps the user applications could load from MyData*.qvd (QVD) or something along those lines.&lt;/P&gt;&lt;P&gt;You could split it into a couple QVDs, like with half the fields in one and half in the other, or half the rows in one and half in the other. Either way, you wouldn't have to have the full data set in memory at once.&lt;/P&gt;&lt;P&gt;But I honestly wouldn't do any of that. The BEST answer, I think, is to throw RAM at the problem. Don't waste expensive man hours making a more complicated and error-prone process when cheap hardware can solve the problem faster and better.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 00:26:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314056#M1197911</guid>
      <dc:creator>johnw</dc:creator>
      <dc:date>2011-03-17T00:26:50Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314057#M1197912</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure about your memory problem, but I'll bet that&lt;/P&gt;&lt;P&gt;LOAD DISTINCT *&lt;/P&gt;&lt;P&gt;against your full QVD is a performance killer. I understand you are trying to avoid creating duplicates if a tmp file comes in more than once. It would be better to build a Primary Key field for each file which would be a combination of fields, the set of fields may vary for each file. For example, it looks like&lt;/P&gt;&lt;P&gt;StoreId &amp;amp; '|' &amp;amp; TransId as PK&lt;/P&gt;&lt;P&gt;may work for severalof the files. Then you can use a WHERE NOT EXISTS(PK) in the full qvd load insead of distinct.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 05:08:53 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314057#M1197912</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2011-03-17T05:08:53Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314058#M1197913</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks both for your replies...&lt;/P&gt;&lt;P&gt;John, unfortunately more RAM isn't an option at the moment as we are already on the maximum capacity for our server. A new server has been passed for next years budget, but obviously that doesn't solve our problem in the meantime.&lt;/P&gt;&lt;P&gt;Rob, The reason we used LOAD DISTINCT * was because that would allow the QVD's to be optimised. Would it still be optimised if we used WHERE NOT EXISTS (PK)?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 09:51:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314058#M1197913</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-17T09:51:58Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314059#M1197914</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="jive_text_macro jive_macro_quote" jivemacro="quote"&gt;&lt;BR /&gt;hopkinsc wrote:The reason we used LOAD DISTINCT * was because that would allow the QVD's to be optimised. Would it still be optimised if we used WHERE NOT EXISTS (PK)?&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;P&gt;Yes, EXISTS(PK) will be optimized.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 14:35:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314059#M1197914</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2011-03-17T14:35:46Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314060#M1197915</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Rob, I will it give a go.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 15:09:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314060#M1197915</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-17T15:09:09Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314061#M1197916</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rob, I have tried your suggestion but the script keeps failing when it reaches the WHERE statement.&lt;/P&gt;&lt;P&gt;Can you tell me where the WHERE statement should go in the script and what it should replace please?&lt;/P&gt;&lt;P&gt;Should i replace both LOAD DISTINCT * and CONCATENATE LOAD DISTINCT * statements?&lt;/P&gt;&lt;P&gt;Here is my script..&lt;/P&gt;&lt;P&gt;SET cFileName =$(vcRetailDailyAPIQVD)TMPstoreproduct.QVD;&lt;BR /&gt;IF QvdCreateTime('$(cFileName)') &amp;gt;= 0 THEN&lt;BR /&gt; StoreProduct:&lt;BR /&gt; LOAD DISTINCT *&lt;BR /&gt; FROM $(cFileName) (qvd);&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt; SET cFileName =$(vcRetailQVD)StoreProduct.QVD;&lt;BR /&gt; IF QvdCreateTime('$(cFileName)') &amp;gt;= 0 THEN&lt;BR /&gt; StoreProduct:&lt;BR /&gt; CONCATENATE LOAD DISTINCT *&lt;BR /&gt; FROM $(cFileName) (qvd);&lt;BR /&gt; ENDIF&lt;BR /&gt;&lt;BR /&gt; IF NoOfRows('StoreProduct') &amp;gt; 0 THEN&lt;BR /&gt; STORE * FROM StoreProduct INTO $(vcRetailQVD)StoreProduct.QVD;&lt;BR /&gt; DROP TABLE StoreProduct;&lt;BR /&gt; ENDIF&lt;BR /&gt;ENDIF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks very much.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Mar 2011 15:46:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314061#M1197916</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-18T15:46:10Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314062#M1197917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="jive_text_macro jive_macro_quote" jivemacro="quote"&gt;&lt;BR /&gt;hopkinsc wrote:Should i replace both LOAD DISTINCT * and CONCATENATE LOAD DISTINCT * statements?&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;P&gt;If I understand your script correctly, the first LOAD is from the tmp qvd that was created from the csv file. If you can only load the csv once, then you shouldn't need the DISTINCT. However, I'm guessing the tmp qvd is a small volume so the DISTINCT shouldn't make much difference one way or the other.&lt;/P&gt;&lt;P&gt;Now as to updating the master qvd in the second load. Assume a primary key field named "PK" exists or you created one as a composite of several fields. Then your second load should look like this:&lt;/P&gt;&lt;P&gt;SET cFileName =$(vcRetailQVD)StoreProduct.QVD;&lt;BR /&gt; IF QvdCreateTime('$(cFileName)') &amp;gt;= 0 THEN&lt;BR /&gt; StoreProduct:&lt;BR /&gt; CONCATENATE LOAD *&lt;BR /&gt; FROM $(cFileName) (qvd)&lt;BR /&gt; &lt;STRONG&gt;WHERE NOT EXISTS(PK)&lt;BR /&gt;&lt;/STRONG&gt;;&lt;BR /&gt; ENDIF&lt;/P&gt;&lt;P&gt;The CONCATENATE is only required if you can have differenct field names between the tmp qvd and the master qvd, such as when adding new fields. If the field names will always be the same, leave off the CONCTENATE.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Mar 2011 06:19:54 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314062#M1197917</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2011-03-20T06:19:54Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314063#M1197918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Rob, That was very helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Mar 2011 08:13:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314063#M1197918</guid>
      <dc:creator>hopkinsc</dc:creator>
      <dc:date>2011-03-21T08:13:43Z</dc:date>
    </item>
    <item>
      <title>Creating our QVD's</title>
      <link>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314064#M1197919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ooops. I forgot to remove the DISTINCT from the example. It should be:&lt;/P&gt;&lt;P&gt;StoreProduct:&lt;BR /&gt; CONCATENATE LOAD *&lt;BR /&gt; FROM $(cFileName) (qvd)&lt;BR /&gt; &lt;STRONG&gt;WHERE NOT EXISTS(PK)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Mar 2011 17:49:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Creating-our-QVD-s/m-p/314064#M1197919</guid>
      <dc:creator>rwunderlich</dc:creator>
      <dc:date>2011-03-21T17:49:28Z</dc:date>
    </item>
  </channel>
</rss>

