Data Analyst Professional · Модуль 9 · Урок 32 із 51
Параметри, оновлення й контроль помилок
Production-ready query не просто працює один раз. Вона має керовані параметри, відтворюваний refresh, видимі errors, privacy boundaries і контрольні показники, що доводять повноту результату.
Параметризуйте те, що справді змінюється
| Parameter | Type | Приклад |
|---|---|---|
| pFolderPath | text | environment-specific source location |
| pStartDate | date | inclusive reporting boundary |
| pEndDate | date | exclusive reporting boundary |
| pEnvironment | allowed list | dev / test / prod |
Parameter має name, type, description, allowed/suggested values і current value. Пароль або access token — не parameter у workbook; credentials належать connection settings/secure store.
Refresh contract
Desktop success не гарантує Service refresh: local path, personal credentials або відсутній gateway зламають scheduled run. Після publish налаштуйте source mapping, credentials, privacy levels, gateway і schedule; виконайте test refresh.
Помилка — data, а не сміття
Power Query має step-level і cell-level errors. try повертає record із HasError, Value або error details. Не робіть глобальне «Replace errors with 0»: воно змішує справжній zero з невідомим значенням.
ParsedAmount = Table.AddColumn(Source, "amount_try",
each try Number.FromText([amount_uah], "en-US")),
WithFlag = Table.AddColumn(ParsedAmount, "has_error",
each [amount_try][HasError], type logical),
Errors = Table.SelectRows(WithFlag, each [has_error]),
Valid = Table.SelectRows(WithFlag, each not [has_error])Quarantine table повинна зберігати source file, row/key, field, raw value, reason і refresh timestamp. Виправляйте source або documented mapping, а не вручну cell у preview.
QA gates кожного refresh
- Source files і latest source date відповідають очікуванню.
- Raw rows = valid + quarantined + documented exclusions.
- Order key uniqueness і required fields проходять contract.
- Amount total до/після merge не змінився.
- Unmatched lookup values мають owner і threshold.
- Error count/ratio не перевищує limit; examples збережені.
- Refresh duration, folding status і row volume не деградували різко.
Privacy levels — функціональна межа
Power Query класифікує sources як Private, Organizational або Public і може ізолювати їх, щоб уникнути небажаної передачі даних. Не вмикайте Ignore Privacy/Fast Combine для confidential sources лише заради швидкості.
Параметризація не замінює безпеку
Dynamic path або query text треба валідовувати. Не конкатенуйте untrusted values у native query; використовуйте supported parameter mechanisms і least privilege.
Практика
- Створіть typed folder/start/end parameters і half-open date filter.
- Відокремте дві deliberate parsing errors у quarantine.
- Порахуйте blank status і unmapped channel окремо від parse errors.
- Зберіть QA summary: rows, keys, amount, errors, unmatched, source max date.
- Складіть refresh runbook: source, credentials owner, gateway, schedule, SLA, rollback.
Офіційні джерела
Модуль завершено
Ви перетворюєте Power Query з набору кліків на керований pipeline: parameters, reusable transforms, privacy, refresh contract, quarantine і доказові QA gates.
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.