Как переливать данные между базами одной командой без кода и боли

04 Jun, 2026

Знакомая ситуация: нужно быстро перебросить таблицу из MongoDB в Postgres или выгрузить данные из Google Analytics в BigQuery для аналитики. Обычно это превращается в написание очередного Python-скрипта на коленке, возню с библиотеками-коннекторами и отладку типов данных. А если данных много, приходится думать об инкрементальной загрузке, чтобы не гонять гигабайты по кругу.

Недавно наткнулся на ingestr. Это CLI-утилита, которая делает ровно одну вещь: берет данные из точки А и кладет их в точку Б. Без написания кода, без настройки сложных ETL-платформ и без лишних сущностей.

Что это вообще такое

Разработчики из Bruin создали инструмент, который работает по принципу «указал источник — указал цель». Внутри это обертка над мощными движками передачи данных, но для нас она выглядит как простая консольная команда.

Проект написан на Go, но тесно дружит с Python-экосистемой. Его можно поставить через обычный pip install ingestr или коротким bash-скриптом. Это удобно, если нужно быстро закинуть инструмент на сервер или в CI/CD пайплайн.

Как это работает на практике

Самый простой пример — перенос таблицы из локального Postgres в облачный BigQuery. Команда выглядит так:

Реклама
ingestr ingest \
    --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' \
    --source-table 'public.users_data' \
    --dest-uri 'bigquery://my-project?credentials_path=/path/to/key.json' \
    --dest-table 'analytics.users_data'

Инструмент сам разберется со схемами, типами колонок и созданием таблицы в месте назначения. Если таблица уже есть, ingestr предложит варианты, как именно обновлять данные.

Что умеет ingestr

Инструмент закрывает большинство типовых задач по синхронизации данных, с которыми я сталкиваюсь в работе.

Разные стратегии загрузки

Просто копировать всё подряд — плохая идея для больших объемов. В ingestr встроено три режима:

  • Append: просто дописывает новые строки в конец.
  • Merge: обновляет существующие записи и добавляет новые (нужен первичный ключ).
  • Delete+Insert: очищает целевую таблицу перед заливкой свежих данных.

Огромный список источников

Меня зацепило количество поддерживаемых коннекторов. В списке не только классические базы вроде MySQL, Postgres, Oracle или MS SQL Server. Там есть MongoDB, ClickHouse, Snowflake и даже экзотика типа Cassandra или DuckDB.

Отдельный плюс за интеграцию с платформами. Можно в одну команду вытянуть данные из:

  • Маркетинговых сервисов: Facebook Ads, Google Ads, TikTok Ads.
  • Таск-трекеров и CRM: Jira, Notion, HubSpot, Salesforce, Airtable.
  • Платежек: Stripe, Wise.
  • И даже из GitHub или Slack.

Производительность

Разработчики заявляют о неплохой скорости. Например, в их бенчмарках переливка из MongoDB в Postgres проходит довольно бодро.

Кому это пригодится

Я вижу несколько сценариев, где ingestr экономит кучу времени.

Во-первых, это быстрая аналитика. Когда маркетологи просят «выгрузить данные из Stripe в нашу базу», вместо того чтобы копаться в API Stripe, вы просто запускаете одну команду.

Во-вторых, миграции. Если вы переезжаете с одной базы на другую или делаете реплику для тестов, ingestr справится с этим быстрее, чем самописный скрипт.

В-третьих, автоматизация. Команду легко запихнуть в cron или GitHub Actions. Никаких зависимостей, кроме самого бинарника или python-пакета.

Нюансы и лицензия

Стоит обратить внимание на лицензию. Проект использует Functional Source License 1.1. Это значит, что вы можете свободно использовать его внутри компании, для тестов, разработки и личных нужд. Но нельзя построить на базе ingestr свой платный сервис по переливке данных и продавать его как конкурента. Через два года после релиза каждой версии код переходит под Apache 2.0.

Документация у проекта вполне вменяемая, есть Quickstart и описание всех флагов. Если чего-то не хватает, разработчики активно общаются в Slack и принимают пул-реквесты.

Если вам надоело писать однотипные скрипты для импорта CSV или синхронизации таблиц между базами, попробуйте ingestr. Это тот случай, когда CLI-инструмент делает жизнь проще, заменяя собой часы рутинного кодинга.

Для старта достаточно:

pip install ingestr
ingestr --help

Проект активно растет, и если вашей любимой базы еще нет в списке, скорее всего, она там скоро появится. Либо можно завести issue — авторы охотно идут на контакт.