bruin-data / ingestr

ingestr is a CLI tool to copy data between any databases with a single command seamlessly.
https://bruin-data.github.io/ingestr/
MIT License
2.57k stars 62 forks source link
bigquery copy-database data-ingestion data-integration data-pipeline duckdb ingestion-pipeline mssql postgresql snowflake

Copy data from any source to any destination without any code


ingestr is a command-line app that allows you to ingest data from any source into any destination using simple command-line flags, no code necessary.

ingestr takes away the complexity of managing any backend or writing any code for ingesting data, simply run the command and watch the data land on its destination.

Installation

pip install ingestr

Quickstart

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'

That's it.

This command:

Documentation

You can see the full documentation here.

Community

Join our Slack community here.

Supported sources & destinations

Source Destination
Databases
Postgres
BigQuery
Snowflake
Redshift
Databricks
DuckDB
Microsoft SQL Server
Local CSV file
MongoDB
Oracle
SAP Hana
SQLite
MySQL
Platforms
Adjust -
Airtable -
AppsFlyer -
Chess.com -
Facebook Ads -
Gorgias -
Google Sheets -
HubSpot -
Klaviyo -
Notion -
S3 -
Shopify -
Slack -
Stripe -
Zendesk -

Feel free to create an issue if you'd like to see support for another source or destination.

Acknowledgements

This project would not have been possible without the amazing work done by the SQLAlchemy and dlt teams. We relied on their work to connect to various sources and destinations, and built ingestr as a simple, opinionated wrapper around their work.