Для каждого поля в приложениях Qlik можно посмотреть плотность информации, что может служить инструментов оценки качества данных в приложении. Например: в таблице Клиенты, только у 75,8% клиентов есть факсы, что может быть сигналом для отдела маркетинга в выборе способа коммуникации с клиентами. Это лишь один из примеров. Здесь может быть и другой пример: нам нужно точно знать, что все поля заполнены в данной колонке, а мы видим другое значение, то значит далее, мы имеем возможность точно определить, в чем причина некорректного заполнения таблиц.
QlikView: качество данных и проверка ошибок ввода
Чтобы проверить каждое поле на качество заполнения вручную, понадобится очень много времени, поэтому воспользуемся готовым инструментом Data Profiler от quickintelligence.co.uk. Он поможет увидеть все нулевые значения по полю.
Возьмем ситуацию, когда у нас в модели данных несколько факт-таблиц, и нам важно знать корректность заполнения полей (то есть плотность заполнения информации должна составлять 100%).
Так посмотрим на таблицу выше, с данными по продажам региона А:
- Плотность по продажам: 100%
- Годовой план: 100%
- Стоимость закупок: 0%
Причиной такого значения стоимости закупок может быть ошибка операционного ввода. Для того чтобы разобраться в причинах такого значения, нам нужно знать источник, откуда пришло такое значение.
Таблица фактов должна иметь такой вид:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Facts: load *, 'Sales' as Soure from/resident Sales; concatenate (Facts) load *, 'Plan Yearly' as Soure from/resident Plan Yearly; concatenate (Facts) load *, 'Procurement Cost' as Soure from/resident [Procurement Cost]; |
Далее скрипт должен принять такой вид:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
//config let tFactTableName = 'Facts'; let tSourceTable_Field = 'Source'; //Generate Fields that are in Facttable let vAggregations = ''; for i = 1 to nooffields('$(tFactTableName)') let vField = Fieldname($(i),'$(tFactTableName)'); if (vField <> '$(tSourceTable_Field)') then let vAggregations = vAggregations & 'nullcount([$(vField)]) as [$(vField)] ,'; end if next trace *************** Check for fields: $(vAggregations); ttFactsInfo: load $(tSourceTable_Field), $(vAggregations) 1 as dummy resident $(tFactTableName) group by $(tSourceTable_Field); drop field dummy; //Transform table to get all Fieldnames in a single column tFactsInfo: CrossTable (FieldName,NullCount,1) load * resident ttFactsInfo; drop table ttFactsInfo; //Check how many rows each "Source Table" has MappingFactsSourceCount: mapping load $(tSourceTable_Field), count($(tSourceTable_Field)) as AllCount resident $(tFactTableName) group by $(tSourceTable_Field); //Generate FactsInfo FactsInfo: load $(tSourceTable_Field), FieldName, applymap('MappingFactsSourceCount',$(tSourceTable_Field), -99) as AllCount, NullCount, applymap('MappingFactsSourceCount',$(tSourceTable_Field), -99)-NullCount as FoundCount resident tFactsInfo; drop table tFactsInfo; //optional drop table Facts; let tFactTableName = ; let tSourceTable_Field = ; |
Скрипт создаст новую таблицу с полями с информацией по факт таблице, с нулевыми значениями. Так, мы сможем понять плотность информации для каждой таблицы. Вот пример для Qlik Sense.
Колонка показывает итоговую информационную по плотности. Для легко навигации по полученной таблице предлагаю воспользоваться сортировкой данных по значению плотности и отсортировать название полей в алфавитном порядке:
Свежие комментарии