Перейти до вмісту

Спроєктувала, реалізувала та адмініструвала 6 пайплайнів ETL/ELT, використовуючи Google BigQuery, MSSQL, PostgreSQL, shell‑скрипти, PL/pgSQL та Transact‑SQL, інтегрувавши дані для ефективної обробки через Python API.

6 пайплайнів ETL на трьох рушіях баз даних

Ситуація. Організації потрібно було консолідувати та обробляти великі обсяги табличних даних із віддаленого сховища даних, розташованого за IPsec VPN. Ці дані мали критичне значення для роботи внутрішніх аналітичних дашбордів і зовнішніх Python API, якими користувалися клієнти й партнери.

Завдання. Мета полягала в тому, щоб спроєктувати, реалізувати та підтримувати набір надійних автоматизованих ETL/ELT‑пайплайнів, які безпечно отримують, трансформують і завантажують дані в Google BigQuery та забезпечують точність даних, продуктивність і масштабованість у всіх системах.

Дія. Спроєктовано, реалізовано й адміністровано 6 наскрізних ETL/ELT‑пайплайнів, що охоплювали кілька технологій, зокрема Google BigQuery, MSSQL, PostgreSQL, Shell‑скрипти, PL/pgSQL і Transact‑SQL.

  • Налагоджено безпечні з’єднання з віддаленим сервером за IPsec VPN, щоб автоматизувати отримання даних.
  • Заплановано й виконано завантаження стиснутих архівів даних, що містили файли Parquet, CSV та .bak.
  • Розроблено скрипти на Bash і Python для розпакування й класифікації файлів за типом і схемою.
  • Резервні копії з файлів .bak відновлено в локальному екземплярі MSSQL Server за допомогою процедур RESTORE DATABASE і перевірено цілісність схеми.
  • Завантажено табличні дані в проміжні схеми в MSSQL і PostgreSQL за допомогою інструментів bcp, psql та SSIS, залежно від формату джерела.
  • Написано модульні та придатні для повторного використання процедури PL/pgSQL і T‑SQL для очищення, нормалізації та збагачення даних відповідно до бізнес‑логіки.
  • Експортовано впорядковані набори даних і таблиці в проміжні формати, стиснуто їх за допомогою gzip і безпечно передано в бакет Google Cloud Storage.
  • Автоматизовано процеси завантаження та зіставлення схем у Google BigQuery за допомогою bq CLI і Python‑скриптів для приймання даних.

Результат. Ці автоматизовані пайплайни суттєво скоротили обсяг ручної роботи й час обробки — з понад 3 годин ручної роботи до менш ніж 20 хвилин на весь цикл, а синхронізація даних стала щоденною замість щотижневої. Продуктивність Python API, які використовували ці дані, зросла на 30%, а краща видимість даних допомогла бізнес‑аналітикам швидше доносити висновки до зацікавлених сторін. Рішення залишається масштабованим і легко розширюваним для підключення нових джерел даних у міру зростання бізнесу.

Одна частина довшого переліку — і він увесь на цьому сайті.

Кожен запис написано однаково: ситуація, завдання, що ми зробили і що змінилося.

Переглянути весь перелік