Table of Contents

Рефакторингові платформи даних для вищої аналітики

Рефакторинг — рефакторинг існуючого коду без зміни зовнішньої поведінки — це перевірена методика для підвищення якості програмного забезпечення. У інженерних платформах даних, де трубопроводи, щіма та моделі, що розвиваються під тиском, дисципліновані рефакторинги безпосередньо підвищує ефективність аналітики, підтримує та масштабованість. У статті досліджується, як застосовувати принципи рефакторингу для розблокування глибоких інсайтів з інженерних даних, з бетонними стратегіями, прикладами реального світу та практичними міркуваннями.

Чому рефакторингові речовини для інженерної аналітики

Інженерні платформи даних, як правило, керують читаннями датчиків часу, журнали обладнання, імітаційні виходи та потокові мережі Інтернету. Як ці дані ростуть, погано структуровані коди та дані конструкції призводять до повільних запитів, крихкі трансформації та ненадійних панелей. Захищаючи адреси цих питань на джерело, без введення нових функцій, так що аналітичні команди можуть працювати з очищувачем, швидше, і більш надійними даними.

Основні типи рефакторингу в платформах даних

Рефакторинг коду

Перенаменування змінних, вилучення функцій та спрощення умовної логіки в сценаріїх ETL покращують читабельність та зменшення помилок. Наприклад, замінюючи заплутаний 500-лінійне вилучення Python з модульними, добре названими функціями полегшує для інженерів даних для виявлення продуктивності пляшки.

Рефакторинг стеми

База даних schema змінює такі як нормалізацію надмірних таблиць, додаючи індекси, або розшифровуючи невикористані стовпчики можуть різко прискорити аналітичні запити. Поширений рефакторинг розщеплює широкий, всі таблиці в фактично та вимірюючі таблиці, що дозволяють зірчастим запитам, які виконують замовлення швидше.

Рефакторинг труб

Системи обробки даних часто накопичуються відмерлих кінцівок, незмінних етапів або крихкої залежності. Рефакторинг трубопроводу може включати в себе перемикання від пакетної обробки до незрівальних навантажень, видалення зайвих проміжних накопичувачів або переадресації кроків перетворення для зменшення споживання ресурсів.

Основні переваги системного рефакторингу

  • Query Performance: Оптимізований schemas і код очищення скорочує час виконання складних аналітичних запитів. В одній інженерній фірмі нормалізують час обробки сенсорів з обрізанням міток з хвилин до секунд.
  • Scalability: Рефакторовані платформи ручать більші обсяги даних без пропорційної вартості збільшується. Видалення приєднується до кошика та оптимізація розділення дозволяє кластерам більш ефективно масштабувати.
  • Data Quality: Стандартизація назв поля, закріплення типів, усунення дублікатів записів при рефакторингу покращує точність панелей та моделей машинного навчання.
  • Developer Продуктивність: Команди витрачають менше часу, дешифруючи код спадщини та більше часу побудови нових аналітичних функцій. Модульна база коду дозволяє паралельно розвивати та швидше на борту.
  • Tooling Flexibility: Інтерфейси Cleaner дозволяють інтегрувати нові аналітичні двигуни, такі як переміщення зі складу SQL до колонарного магазину або додавання процесора в режимі реального часу.

Стратегічні підходи до рефакторингу

Аналіз даних з лінійкою даних

Перед рефакторингом, на карті поточного стану за допомогою інструментів для лінійки даних (наприклад, OpenLineage, DataHub). Визначте, які таблиці та трансформації найбільш використовуються аналітичними командами. Перед тим як визначити зусилля рефакторингу, де найбільша технічна борг та вартість.

План Незмінні зміни

Рефакторинг повинен бути безперервним, не великий чубчик rewrite. Розірвати роботу в невеликі кроки, які можна звільнити самостійно. Наприклад, перейменувати один стовпчик на спринт, або витягти одну функцію на тиждень. Кожен крок повинен включати тести для зворотного зв'язку, щоб уникнути розбиття споживачів потоку.

Автоматизувати тестування

Автоматизовані тести та інтеграційні тести не є невідомими. Використовуйте інструменти, такі як Портус випробувальної бази або Dbt's data test, щоб перевірити, що перетворення виробляють ті ж результати після рефакторингу. Для інженерних даних розглянемо порівняння зразків на історичних даних датчика для зловживання регресивами.

Документ Інтенсивний

Написати чіткі повідомлення та оновлення документації для кожного етапу рефакторингу. Тому що рефакторинг змін внутрішньої структури, добре додано історію допомагає майбутнім інженерам (або вашому майбутньому само) зрозуміти, чому зміни були зроблені. Використовуйте вбудовані коментарі тільки для неодружнього логіки; давайте код висловить його нездатність, де можливо.

Практичні шаблони для інженерних платформ даних

Видобуток Трансформація Логіка

Багато інженерних трубопроводів змішувати, трансформувати та завантажувати в один скрипт. Рефактор ізолюючим логікою перетворення в чисті функції, які можна перевірити самостійно. Наприклад, окремі часові перетворення в спеціальний модуль замість повторення їх у багатьох SQL запитів.

Вступ проміжних шарів

Додайте ст старіння або очищають шари між сирою загартуванням і споживанням. Це створює буфер, який збиває аналітику від перепадів схеми. У прямій платформі можна створювати колекції, які виступають як сторожові столи, що дозволяють інженерам трансформувати сирі дані без впливу на існуючі кінцеві точки API.

Нормалізація метаданих

Дані інженерних даних часто включають повторне метадані —сенсорні ідентифікатори, контрольні константи, координати розташування. Рефакторинг окремих метаданих в таблиці виміру зменшує навантаження накладної і полегшує оновлення. Наприклад, коли датчик відреабраний, тільки один ряд в таблиці виміру необхідно змінити, а не мільйона фактичних рядків.

Прийняти Idempotent труби

Рефакторні трубопроводи так, що працюють їх багаторазово врожують тим самим результатом. Це важливо для видалення та обробки даних, що запускається. Використовуйте шаблони, логіку дедукціонування та послідовне замовлення для забезпечення тадемпотенції. У прямій можна важети можливість API до upsert items для очищення репроцесингу.

Case Study: Рефакторинг предиктного обслуговування трубопровід

Виробнича компанія використовувала Директиву для управління даними датчиків для аналізу вібрації. Їх оригінальний трубопровод, що заглиблюється сирими файлами CSV, виконувала десятки трансформацій в монолітному Python скрипт, і завантажили результати в єдиний широкий стіл. Аналітика вимагає від таблиці, що знаходилися протягом 30 секунд, і відключення несправностей, необхідних для відстеження через 800 ліній коду.

За три місяці команда надала вступну рефакторію:

  • Спліц таблиці] в таблицю (зразок одного датчика = один раз читання) і розміри таблиць (сенсорів, машин, локація).
  • Вилучені функції перетворення для віконного з'єднання, виявлення зовнішнього середовища та частотного аналізу. Кожна функція була задана на основі відомих вхідних/виходових пар.
  • Введення шару стогеризації в Директиві, що зберігають сирі дані перед перетворенням, що дозволяє переробити без втрати даних.
  • Заміня монолітного сценарію з DAG легких завдань, що скріплюються Apache Airflow.

Результати: скорочені терміни кварцових робіт до 2 секунд, збій трубопроводів зменшилися на 70%, а дані вчених можуть самостійно протестувати нові трансформації без впливу на виробництво. Компанія пізніше додала функцію сповіщення про час на реальному часі шляхом багаторазового очищення таблиці факту.

Загальні виклики і як перезмагати Them

Технічна дебютна акумуляція

Команда інженерів часто передує нові аналітичні функції над очищенням. Для цього виділяють 20% кожного Спринту для рефакторингу (або «право на роздачу»: залиште засіб для очищення, ніж ви його знайшли). Заборонити те, що безпосередньо для виконання КПІ, які зацікавлені у догляді за сторонами, наприклад, на приладах або свіжості даних.

Тестування комплексності

Рефакторинг без тестів небезпечний. Почати додавати інтеграційні тести, які порівнювати до / після результатів для репрезентаційного зразка даних. Використовуйте тести знімків (наприклад, з великими видатками) для складних трансформацій. Згодом, будувати тести для нових функцій.

Статиснення від команди аналітики

Учені та інженери можуть турбуватися, що рефакторинг переламує свої запити або прилади. Причасть змін рано за допомогою виписки або зміни журналів. Пропонуйте пільговий період, де старий і новий кодувальника версій. Наприклад, зберігайте вигляд спадщини або кінцеву точку API протягом двох тижнів після зміни схеми.

Інтеграція рефакторингу з CI / CD

Рефакторинг є найбільш ефективним при інтегрованих в безперервну інтеграцію та поставки трубопроводів. Запуск schema linting (наприклад, тестування контракту dbt) на кожному ударному запиті. Використовуйте CLI Directus до програми тематично застосувати зміни схеми під час розгортання. Автоматично інтегрувати тести з регресивації продуктивності, які порівнювати час запиту до і після кожного з'єднання. Це робить рефакторинг безпечним, звичним для розвитку, а не ризикованим після того, як.

Зовнішні ресурси для глибокого навчання

Висновок

Рефакторинг не одноразовий чистийап, - це дисциплінована практика, яка зберігає платформи інженерних даних, адаптовані та надійні. За систематично покращуючи код, схеми та трубопроводи, аналітичні команди набирають більші запити, дані для очищення та свободу для інновації. Старт невеликий: підібрати одну пляшку, планувати внутрішньочасні зміни та автоматизувати перевірку. Згодом, переваги з'єднання зроблять вашу платформу для даних потужним двигуном для інженерних інсайтів.