Repolode
bruin-data

bruin-data/ingestr

A command-line tool that copies data between databases, files and SaaS platforms in one command, without writing code.

Open-source alternative to:FivetranAirbyte Cloud

Stars
4,025
Forks
165
Open issues
28
Last commit
2 hours ago

What is it?

ingestr is a command-line application for moving data from a source to a destination using flags rather than custom scripts. You give it a source URI and table, a destination URI and table, and it loads the data into the target, handling the connection and transfer for you.

It supports incremental loading with append, merge and delete+insert strategies, so repeated runs can keep a destination in sync instead of reloading everything. The README lists a broad set of sources and destinations, including PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, SQL Server, MongoDB, local CSV/JSON/Parquet files, and many SaaS APIs such as HubSpot and Stripe.

The tool is distributed as a single binary via an install script and as a pip package. The pip package also offers a Python SDK that can send rows, generators or DataFrames to the CLI. The project is source-available under the Functional Source License, which restricts offering it as a competing commercial ingestion service.

Key features

  • 01Copies tables between databases and files with a single CLI command.
  • 02Supports append, merge and delete+insert incremental loading modes.
  • 03Connects to many databases, data warehouses and SaaS APIs.
  • 04Installs via a shell script or pip, with a Python SDK available.
  • 05Includes change data capture support for several databases such as MySQL, PostgreSQL and MongoDB.

Use cases

  • Loading operational database tables into a data warehouse like BigQuery or Snowflake.
  • Exporting warehouse tables back into a local DuckDB or Parquet file for analysis.
  • Pulling data from SaaS tools such as HubSpot or Stripe into a SQL database on a schedule.
  • Migrating data between two databases without writing custom ETL code.

Quick start

  1. 1

    Run the official install script from the README

  2. 2

    Or install with pip

    pip install ingestr
  3. 3

    Run an ingest command from the Quickstart, with your own source and destination URIs

    ingestr ingest --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' --source-table 'public.some_data' --dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' --dest-table 'ingestr.some_data'

Things to know

  • The license is listed as NOASSERTION, so check the repository's license terms before use.

Topics

FAQ

What is ingestr?
A command-line tool that copies data between databases, files and SaaS platforms in one command, without writing code. ingestr is a command-line application for moving data from a source to a destination using flags rather than custom scripts. You give it a source URI and table, a destination URI and table, and it loads the data into the target, handling the connection and transfer for you.
Is ingestr free to use? What license does it have?
ingestr is open source under the Other license. Check the license terms before using it in commercial products.
Is ingestr still maintained?
Actively maintained. The last commit to ingestr was on Oct 21, 2026.
What can I use ingestr for?
Loading operational database tables into a data warehouse like BigQuery or Snowflake. Exporting warehouse tables back into a local DuckDB or Parquet file for analysis. Pulling data from SaaS tools such as HubSpot or Stripe into a SQL database on a schedule. Migrating data between two databases without writing custom ETL code.
How do I install ingestr?
Run the official install script from the README Or install with pip: pip install ingestr Run an ingest command from the Quickstart, with your own source and destination URIs: ingestr ingest --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' --source-table 'public.some_data' --dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' --dest-table 'ingestr.some_data'
Where can I get ingestr?
The source code and installation instructions are on GitHub: https://github.com/bruin-data/ingestr

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects