Data Analyst Professional · Модуль 9 · Урок 32 із 51

Параметри, оновлення й контроль помилок

Production-ready query не просто працює один раз. Вона має керовані параметри, відтворюваний refresh, видимі errors, privacy boundaries і контрольні показники, що доводять повноту результату.

120 хвRefresh contractМінітест: 3 питання

Параметризуйте те, що справді змінюється

ParameterTypeПриклад
pFolderPathtextenvironment-specific source location
pStartDatedateinclusive reporting boundary
pEndDatedateexclusive reporting boundary
pEnvironmentallowed listdev / test / prod

Parameter має name, type, description, allowed/suggested values і current value. Пароль або access token — не parameter у workbook; credentials належать connection settings/secure store.

Refresh contract

AvailabilityЧи доступні source, gateway і network route?
IdentityЯкі credentials і мінімальні permissions використовуються?
FreshnessКоли source закриває період і яка допустима latency?
SuccessЯкі row/error/reconciliation gates мають пройти?

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.

Практична перевірка · урок 32 з 51

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Для чого Power Query parameter?
2. Які boundaries краще для reporting window?
3. Чому Desktop refresh не гарантує Service refresh?