BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Российские платформы современного стека хранения, обработки и анализа данных » Хранилища данных (DWH / Lakehouse) » Postgres Professional » Учебный курс: Postgres Pro для хранилищ данных (DWH) » Модуль 4. Загрузка и трансформация данных (ETL/ELT) в Postgres Pro

Модуль 4. Загрузка и трансформация данных (ETL/ELT) в Postgres Pro

После развертывания и настройки хранилища данных на базе Postgres Pro одним из ключевых этапов становится регулярная загрузка и трансформация данных. Это позволяет обеспечить актуальность информации для анализа, отчетности и принятия решений.

Современные подходы к построению процессов извлечения, трансформации и загрузки (ETL или ELT) предполагают использование оркестраторов, автоматизацию и адаптацию под архитектуру конкретной базы данных. Postgres Pro, благодаря расширенной поддержке SQL и гибкости в работе с внешними источниками, хорошо подходит как для классических ETL-сценариев, так и для более современных архитектур ELT.

 

Раздел 1. Обзор ETL и ELT процессов

1.1 Что такое ETL

ETL расшифровывается как Extract, Transform, Load — извлечение, преобразование и загрузка данных. Это классический подход, при котором:

  1. Извлечение — данные забираются из исходных систем (ERP, CRM, API, файлов).
  2. Преобразование — очищаются, стандартизируются, агрегируются, присваиваются ключи.
  3. Загрузка — результаты помещаются в хранилище данных.

 

1.2 Что такое ELT

ELT — Extract, Load, Transform. Отличие в том, что после извлечения данные сразу загружаются в хранилище, а преобразования выполняются уже внутри СУБД. Для аналитических БД это подход предпочтительнее, так как:

  • Используется мощность сервера СУБД.
  • Уменьшается объем промежуточных данных.
  • Логика хранится ближе к данным.

 

Postgres Pro отлично подходит для ELT: за счет поддержки CTE, оконных функций, materialized views, параллелизма и расширений.

 

Раздел 2. Инструменты интеграции

2.1 Apache Airflow

Apache Airflow — оркестратор рабочих процессов. Используется для планирования и автоматизации ETL/ELT.

 

Основные возможности:

  • DAG — Directed Acyclic Graph, граф задач с зависимостями.
  • Операторы (BashOperator, PythonOperator, PostgresOperator и др).
  • Поддержка retries, SLA, мониторинг.

 

Подключение к Postgres Pro:

from airflow.providers.postgres.operators.postgres import PostgresOperator

load_sales = PostgresOperator(
    task_id="load_sales",
    sql="sql/load_sales.sql",
    postgres_conn_id="pgpro_connection",
    dag=dag
)

 

Рекомендации:

  • Использовать переменные окружения для хранения паролей.
  • Делить DAG по бизнес-направлениям.
  • Хранить SQL-логику в отдельных файлах.

 

Риски:

  • При некорректной настройке может перегрузить Postgres Pro параллельными задачами.
  • Требует постоянного мониторинга состояния задач.

 

2.2 dbt (data build tool)

dbt — это инструмент для ELT, который позволяет управлять SQL-моделями как кодом.

 

Особенности:

  • SQL-файлы описываются в виде моделей.
  • Используется Jinja2 для шаблонов.
  • Поддержка зависимости моделей (ref).
  • Автоматическая генерация документации.

 

Подключение к Postgres Pro:

# profiles.yml
pgpro:
  target: dev
  outputs:
    dev:
      type: postgres
      host: localhost
      user: postgres
      password: mypass
      dbname: analytics
      schema: dbt_models
      threads: 4

 

Пример модели:

-- models/orders.sql
select
  id,
  created_at,
  total_amount,
  customer_id
from raw.orders
where created_at >= current_date - interval '30 day'

 

Команды:

dbt run          # выполняет модели

dbt test         # выполняет тесты

dbt docs generate

 

Риски:

  • Большие модели с join и агрегацией могут привести к блокировкам.
  • Не следует выполнять модели одновременно с VACUUM.

 

Раздел 3. Оптимизация загрузки данных в Postgres Pro

3.1 Команда COPY

Команда COPY — самый эффективный способ массовой загрузки данных в PostgreSQL и Postgres Pro. Используется для загрузки данных из файлов.

COPY schema.table FROM '/path/to/file.csv' DELIMITER ',' CSV HEADER;

 

Возможности:

  • Поддержка форматов: CSV, текст, бинарный.
  • Указание разделителя, кодировки, null-значений.
  • Работает быстрее, чем INSERT.

 

Оптимизация:

  • Загружайте в незаполненные таблицы без индексов.
  • После загрузки — создайте индексы.
  • Используйте временные staging-таблицы.

 

Риски:

  • Нельзя использовать при необходимости обновлений (только вставка).
  • Требует локального доступа к файлам.

 

3.2 Параллельная загрузка

Параллельная загрузка — запуск нескольких процессов или сессий для одновременного добавления данных.

 

Как реализовать:

  • Разбить большой файл на части.
  • Использовать GNU parallel или Python multiprocessing.
  • Запустить несколько процессов COPY.

 

Пример на Bash:

split -l 1000000 data.csv chunk_
parallel -j 4 "psql -c \"COPY table FROM '{}';\"" ::: chunk_*

 

Риски:

  • Блокировки, если таблица уже содержит данные и есть уникальные ограничения.
  • Конфликты при параллельной работе с одной таблицей.

 

3.3 Логическая репликация

Postgres Pro поддерживает логическую репликацию — механизм, при котором изменения из одной базы поступают в другую в виде логов.

 

Применение:

  • Миграция данных между экземплярами Postgres Pro.
  • Подключение внешних подписчиков.
  • Репликация изменений для витрин или архивов.

 

Пример настройки:

На источнике:

CREATE PUBLICATION my_pub FOR TABLE sales;

 

На получателе:

CREATE SUBSCRIPTION my_sub
  CONNECTION 'host=host2 dbname=analytics user=replicator password=pass'
  PUBLICATION my_pub;

 

Особенности:

  • Поддерживается с версии 10.
  • Поддерживает только INSERT, UPDATE, DELETE.
  • Не реплицирует DDL.

 

Риски:

  • Изменение схемы требует пересоздания подписки.
  • При большом потоке может потребовать настройки параметров wal_keep_segments, max_replication_slots.

 

Раздел 4. Рекомендации по проектированию процессов загрузки

  1. Используйте staging-слой для промежуточной загрузки.
  2. Разграничивайте уровни данных: raw, cleaned, mart.
  3. Делите загрузку по доменам и тематикам.
  4. Применяйте дедупликацию перед мержем в основную таблицу.
  5. Используйте транзакции при загрузке с UPSERT.
  6. Не выполняйте массовые операции в час пик.

 

Раздел 5. Примеры архитектуры ETL/ELT для Postgres Pro

Вариант 1. Классический ETL через Apache Airflow

  1. Извлечение из источника (API, FTP).
  2. Преобразование в Python.
  3. Загрузка через COPY.

 

Вариант 2. ELT через dbt

  1. Загрузка сырых данных в staging-таблицы.
  2. Преобразование в моделях dbt.
  3. Построение витрин.

 

Вариант 3. Потоковая интеграция с логической репликацией

  1. Изменения фиксируются логом WAL.
  2. Преобразуются в сообщения.
  3. Реплицируются в Postgres Pro.

 

Заключение

Загрузка и трансформация данных — неотъемлемая часть хранилища. При грамотной настройке инструментов (Airflow, dbt), выборе подходящей стратегии (ETL или ELT) и использовании оптимальных команд (COPY, параллелизм, логическая репликация), можно обеспечить стабильную, масштабируемую и прозрачную архитектуру.

В следующем модуле мы разберем оптимизацию запросов, индексацию и организацию производительного доступа к данным.

 

 

 

Postgres Professional — это российская промышленная СУБД, созданная на базе открытого PostgreSQL, но значительно расширенная для корпоративного применения. В отличие от классического PostgreSQL, решения от Postgres Professional включают в себя поддержку российских ГОСТов и сертификацию ФСТЭК, повышенную надёжность, оптимизации под высоконагруженные системы (в том числе 1С и DWH), инструменты резервного копирования, мониторинга и отказоустойчивости. За платформой стоит команда ядра PostgreSQL в России, что гарантирует актуальность, стабильность и экспертную техническую поддержку 24/7.

Для компаний, которым важно не просто использовать PostgreSQL, а внедрить его на уровне корпоративных стандартов — с гарантией, сопровождением, документированными улучшениями и адаптацией под российское законодательство — Postgres Pro Enterprise становится логичным выбором. Это не просто бесплатная база данных, а полноценный продуктовый стек, совместимый с BI, аналитикой, ERP, 1С и другими системами, в том числе импортозамещёнными.

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Модуль 3. Инфраструктура и развертывание Postgres Pro
Следующая статья →
Модуль 5. Оптимизация запросов и производительности в Postgres Pro
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Русклимат
    Русклимат — международный торгово-производственный холдинг, концентрирующий опыт ведущих мировых производителей индустрии климата, мощный потенциал конструкторских бюро и лабораторий индустриального дизайна.
     
    Компания образована в 1996 году. За более чем двадцатилетнюю историю Русклимат прошел путь от локальной компании до мощной вертикально-интегрированной многопрофильной структуры.
     
  • ПАО «Ростелеком» — российский провайдер цифровых услуг и сервисов. Предоставляет услуги широкополосного доступа в Интернет, интерактивного телевидения, сотовой связи, местной и дальней телефонной связи и др. Занимает лидирующие позиции на российском рынке высокоскоростного доступа в интернет, платного ТВ, хранения и обработки данных, а также кибербезопасности

  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • ПАО «Банк Уралсиб» (Публичное акционерное общество «Банк Уралсиб») — российский коммерческий банк. В 2020 году входил в топ-20 банков РФ по размеру активов (рэнкинг рейтингового агентства Эксперт РА), в 2021 году — в топ-25 крупнейших банков страны по расчётам агрегатора Банки.ру

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.