<?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: Replace NULL and missing values as part of ETL for data quality? in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088115#M638331</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are different types of NULL which also needs different methods to be handled. A very good explanation could you find here: &lt;A href="https://community.qlik.com/docs/DOC-3155"&gt;NULL handling in QlikView&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Apr 2016 15:40:59 GMT</pubDate>
    <dc:creator>marcus_sommer</dc:creator>
    <dc:date>2016-04-22T15:40:59Z</dc:date>
    <item>
      <title>Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088111#M638327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry for any inconvience with posts, there were a lot of errors when trying to publish this one and you answered faster than I could repair that &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/wink.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suppose within the ETL process, I extract a table as following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="jive-image image-3" src="https://community.qlik.com/legacyfs/online/122442_pastedImage_1.png" style="max-width: 1200px; max-height: 900px;" /&gt;&lt;/P&gt;&lt;P&gt;The NULL resulted from a JOIN, the missing value in Field2 of row "b" is just empty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is: As part of ETL, are the following steps any good or do they even produce more harm later?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 1: Replace all NULLs with &amp;lt;NULL&amp;gt;; to make them selectable in Listboxes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14613344240222435 jive_text_macro" jivemacro_uid="_14613344240222435" modifiedtitle="true"&gt;
&lt;P&gt;// Treat all NULL fields as a value&lt;/P&gt;
&lt;P&gt;NullAsValue *;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;// Set the value to replace NULL. In optimized QVD-loads add the condition where 1=1 or it will not work.&lt;/P&gt;
&lt;P&gt;Set NullValue = '&amp;lt;NULL&amp;gt;';&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New Table:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="jive-image image-4" src="https://community.qlik.com/legacyfs/online/122443_pastedImage_4.png" style="max-width: 1200px; max-height: 900px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 2: Replace also the missing value with &amp;lt;NULL&amp;gt;:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="javascript" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14613344906101085 jive_text_macro" jivemacro_uid="_14613344906101085" modifiedtitle="true"&gt;
&lt;P&gt;Set NullInterpret = ''; // This will convert all blank fields to NULL in Excel files&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New Table:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="image-5 jive-image" src="https://community.qlik.com/legacyfs/online/122445_pastedImage_8.png" style="max-width: 1200px; max-height: 900px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These steps in my opinion enable advanced analyses, but I am not sure whether to implement it everywhere. Going further: Do you think it makes sense to fill all NULL or missing values in all tables already when they are extracted from the source systems?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nachricht geändert durch Georg Gottsmann&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 13:47:48 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088111#M638327</guid>
      <dc:creator>GeorgeQV</dc:creator>
      <dc:date>2016-04-22T13:47:48Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088112#M638328</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What is your question? I mean what exactly your requirement is !&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 13:50:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088112#M638328</guid>
      <dc:creator>MK_QSL</dc:creator>
      <dc:date>2016-04-22T13:50:29Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088113#M638329</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please try to avoid posting multiple times the same request.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;This makes it hard to follow a discussion.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;If you want to replace the NULL after a JOIN, you would need to perform a subsequent RESIDENT LOAD in which you check for NULL and replace it with something meaningful:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;LOAD &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Len(Trim(FIELD)), FIELD, 'Formerly known as NULL or empty') as FIELD&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;RESIDENT YourTable;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Or don't JOIN, use ApplyMap() instead:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;A href="https://community.qlik.com/qlik-blogpost/2756"&gt;Don't join - use Applymap instead&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 14:03:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088113#M638329</guid>
      <dc:creator>swuehl</dc:creator>
      <dc:date>2016-04-22T14:03:07Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088114#M638330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think he is asking if it's a good practice to replace NULL values with a "selectable" &amp;lt;NULL&amp;gt; String, but he is unsure if that will have any impact later in his application.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My opinion is that it all comes down to your own particular requirements. Do selectable nulls make sense o not in the context of your application?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 15:36:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088114#M638330</guid>
      <dc:creator>alexdataiq</dc:creator>
      <dc:date>2016-04-22T15:36:05Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088115#M638331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are different types of NULL which also needs different methods to be handled. A very good explanation could you find here: &lt;A href="https://community.qlik.com/docs/DOC-3155"&gt;NULL handling in QlikView&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 15:40:59 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088115#M638331</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2016-04-22T15:40:59Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088116#M638332</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That's a very good explanation. Thanks for the heads-up Marcus.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Apr 2016 15:48:00 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088116#M638332</guid>
      <dc:creator>alexdataiq</dc:creator>
      <dc:date>2016-04-22T15:48:00Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088117#M638333</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you, that's right. My question was:&lt;/P&gt;&lt;P&gt;"Does it generally make sense to replace all NULLs with a placeholder, say "unknown", "w/o" or "&amp;lt;NULL&amp;gt;" etc.?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I read all I could find in the community, be it "NULL and Nothing" from HIC orothers. I think that it might lead to following issues:&lt;/P&gt;&lt;P&gt;1) Aggregations like avg() will lead to wrong results because e.g ."0" instad of "NULL" is counted as a valid denominator.&lt;/P&gt;&lt;P&gt;2) When doing JOINS, rows might get duplicated, again distorting mathematical operations&lt;/P&gt;&lt;P&gt;3) Sometimes there are reasons for NULL which is not the same as a "missing value". In that case, interpretations may be effected as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So all in all, it really depends on the particular case and you have to ask questions like "What does this NULL mean?", "Why is it there"? and "Does it make sense to replace it e.g. with &amp;lt;NULL&amp;gt; as a workaround or is this the result of bad data quality in the source systems".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please correct me or add something, but I think that is everything general one can say about it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Apr 2016 05:54:24 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088117#M638333</guid>
      <dc:creator>GeorgeQV</dc:creator>
      <dc:date>2016-04-27T05:54:24Z</dc:date>
    </item>
    <item>
      <title>Re: Replace NULL and missing values as part of ETL for data quality?</title>
      <link>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088118#M638334</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think you are right that there could be no clear recommendation to replace NULL in a single field and/or all fields - it will be always depend on the particular requirements of an application if it's useful or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In my experience it's often useful to replace NULL within fields which are used as dimensions but not in fields which are measured within the expressions (whereby you could of course react on any replacing-value within the expressions).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Apr 2016 15:34:20 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Replace-NULL-and-missing-values-as-part-of-ETL-for-data-quality/m-p/1088118#M638334</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2016-04-27T15:34:20Z</dc:date>
    </item>
  </channel>
</rss>

