Albato → PostgreSQL → Superset

Albato → PostgreSQL → Superset

Минималистичная связка для SMB-команд на российском рынке (статья опубликована 19 июня 2025 года)


1. Почему именно Albato → PostgreSQL → Superset

Rus-friendly «Zapier» за 10 минут. Albato — российский SaaS-коннектор, который уже «из коробки» знает Bitrix24, amoCRM, Yandex Direct, VK Ads, Google Sheets и добрый десяток бухгалтерских сервисов. В отличие от Zapier (американский GDPR-шный головняк) Albato хостится в РФ, проводит платежи в рублях и подписывает ДПА с ФЗ-152 — идеален для малого и среднего бизнеса, работающего на внутреннем рынке. Сценарий «Если обновилась сделка — отправь JSON в базу» собирается мышкой за 10 минут, а цена за первые 5 000 операций — чашка кофе.

Данные живут там, где им положено жить. PostgreSQL 16 на VPS в Москва или VK Cloud остаётся «танком»: принимает INSERT через HTTPS, сжимает таблицы LZ4, отдаёт SQL и не требует гигабайт памяти. Albato умеет писать данные напрямую по JDBC или через REST‐приёмник FastAPI — без лишних CSV.

Self-service-BI без Pro-лицензий. Superset 5.1 (релиз 08 мая 2025 г.) научился импортировать схемы Postgres за один клик, подключать row-level-security и отправлять email-алерты. Для российского SMB это «Power BI без Pro-подписок»: браузерные графики, живые фильтры, тёмная тема — всё бесплатно на одном сервисе.

Типовые сценарии

Сценарий Зачем берут связку Как работает
Маркетинговое агентство Спенд из Яндекс Direct + заявки Bitrix24 Albato листает отчёты API → Postgres raw.spend; Superset считает ROMI по channel.
Кол-центр «Живой» SLA: звонок должен быть обработан < 30 сек Webhook «новый звонок» → Albato → Postgres; Superset KPI alert при SLA < 95 %.
Интегратор 1С Выгрузка счетов в BI без трений Albato берёт 1С:Фреш API → таблицу raw.invoice; Superset строит дебиторку.

2. Компоненты и роли

Компонент Роль Ответственный
Albato Cloud No-code ETL/ELT, триггеры и действия Ops-специалист
Bitrix24 CRM-источник (сделки, лиды) Маркетолог / CRM-админ
PostgreSQL 16 Хранилище (stage → mart) DBA
Superset 5.1 Self-service-дашборды, RLS, алерты BI-аналитик
(опция) dbt 1.9 SQL-модели и тесты Analytics Engineer

3. Подготовка окружения

3.1 Что понадобится

3.2 Мини-Docker-compose

version: "3.9"
services:
  postgres:
    image: postgres:16
    environment:
      POSTGRES_USER: albato
      POSTGRES_PASSWORD: albato_pwd
      POSTGRES_DB: datamart
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    ports: ["5432:5432"]

  superset:
    image: apache/superset:5.1
    env_file: superset.env
    depends_on: [postgres]
    ports: ["8088:8088"]

Запустить:

docker compose up -d

3.3 Права и сети

Ресурс Действие Примечание
Albato → Postgres открываем порт 5432 по только по Albato IP (из дока) TLS обязательно
Пользователь albato INSERT, SELECT только на схему stage безопасность
Superset bi_user SELECT на mart row-level-security через policy

4. Настройка потоков данных

4.1 Albato: сценарий «сделка обновилась → база»

  1. Создать связку

    • Триггер: Bitrix24 — «Сделка обновлена».
    • Действие: PostgreSQL — «Добавить/обновить запись».
  2. Подключить Bitrix24

    • Указываем домен, OAuth-пару или Webhook.
    • Проверяем тестовое событие (Albato покажет JSON).
  3. Подключить Postgres

    • Host, Port 5432, DB datamart, user albato, SSL ON.
  4. Mapping полей

Поле Bitrix24 Колонка Postgres
ID id
TITLE title
STAGE_ID stage_id
OPPORTUNITY amount
ASSIGNED_BY_ID manager_id
DATE_MODIFY updated_at
  1. Условия / фильтры

    • Выгружаем только стадии NEW, PREPAY, WON.

Нажимаем «Запустить». Albato создаст таблицу deal (если нет) и начнёт стримить строки.

4.2 Построение схемы в Postgres

CREATE SCHEMA stage;
ALTER TABLE public.deal SET SCHEMA stage;

-- Индекс по дате обновления для инкрементов
CREATE INDEX IF NOT EXISTS ix_deal_updated
    ON stage.deal(updated_at DESC);

(если Albato пользуется CamelCase, лучше переименовать столбцы через VIEW)

4.3 (опция) dbt-слой

models/stg_deal.sql

{{ config(materialized='view') }}

SELECT
    id::bigint,
    title,
    stage_id,
    amount::numeric(14,2),
    manager_id,
    updated_at
FROM stage.deal;

models/fct_deal_funnel.sql

{{ config(materialized='table') }}

SELECT
    date_trunc('month', updated_at)::date AS month,
    stage_id,
    COUNT(*)                              AS deals,
    SUM(amount)                           AS pipeline
FROM {{ ref('stg_deal') }}
GROUP BY 1,2;

Cron-команда:

dbt run --select fct_deal_funnel

5. Трансформации и моделирование

Зона Схема Содержимое
Stage stage Albato-сырьё
Staging views stg_* Чистые типы, UUID → bigint
Mart mart Агрегаты для Superset/BI

Лайфхак: если данных < 1 млн строк, можно пропустить dbt и писать VIEW напрямую в Superset.


6. Визуализация в Superset

  1. Database → +

    • URI postgresql://superset:pwd@postgres:5432/datamart.
  2. Dataset → + — выбираем mart.fct_deal_funnel (или stage.deal).
  3. Chart → Time Series Bar

    • Time = month, Metric = pipeline, Series = stage_id.
  4. Dashboard «CRM Pipeline».
  5. Alert & Report

    • SQL SELECT sum(amount) FROM mart.fct_deal_funnel WHERE month=current_date
    • Rule: если сумма < плана — письмо директору.
Читай также:  Albato → PostgreSQL → Yandex DataLens

7. Мониторинг и автоматизация

Что Где смотреть Красная зона
Albato usage Личный кабинет Albato > 85 % лимита
Ошибки выгрузки Albato Logs > 10 шт/сутки
Postgres size pg_database_size > 70 % диска
Superset /health Prometheus exporter latency > 500 мс
Бэкапы pg_dump nightly → S3 пропуск > 1 сутки

Albato умеет постить Webhook при ошибке сценария — подключите Slack или Telegram.


8. Типичные ошибки и лайфхаки

  1. «SSL handshake failed» — Убедитесь, что sslmode=require в настроеке подключения Albato.
  2. Дубликаты PK — В действии Albato включите режим Update if record exists по id.
  3. Superset не видит новые колонкиDataset → Sync columns from source.
  4. Albato превысил QPS Bitrix24 (2 req/s) — Ставьте окно 500 мс, или делайте сценарий «пакет запросов».
  5. Имена столбцов с кириллицей ломают dbt — Создайте промежуточное VIEW с Latin snake_case.

9. Заключение

Albato → PostgreSQL → Superset — путь к быстрому запуску BI без тяжёлого DevOps-парохода:

Плюсы Минусы
Сценарий до данных в таблице — < 10 мин Albato тарифицирует операции (много событий — платим)
Российский хостинг и рублевые платежи API-лимит Bitrix24 2 req/s остаётся
Superset бесплатен, открытый код, RLS Нет .pbix файла для офлайн отчётов

Когда апгрейдить?

  • 5 млн строк/день — ставим TimescaleDB или ClickHouse реплику.

  • Realtime < 60 с — Kafka Connect + Debezium.
  • Требуется CI/CD — dbt + GitHub Actions и Airflow.

Полезные ссылки

Пусть ваши маркетологи кликают в CRM, Albato шлёт строки в Postgres, а Superset мгновенно рисует графики. Всё просто, быстро и по-русски!