Fivetran: Automated Data Movement & ELT Pipeline Guide
Fivetran is the leading fully managed ELT platform that moves data from 500+ sources into your data warehouse automatically — handling schema changes, API updates, and incremental sync with zero maintenance on your end.
What is Fivetran?
Fivetran is a fully managed ELT (Extract, Load, Transform) data movement platform. It provides pre-built, pre-maintained connectors for hundreds of data sources — SaaS applications (Salesforce, HubSpot, Stripe, Google Ads), databases (Postgres, MySQL, SQL Server, Oracle), cloud storage (S3, GCS), and event platforms (Kafka, Segment). Fivetran handles all the infrastructure and maintenance: API authentication, pagination, rate limiting, schema evolution, incremental sync logic, and error recovery.
The ELT model loads raw, normalized data into your data warehouse first — Snowflake, BigQuery, Redshift, Databricks, or others — and transformations are handled separately with dbt or SQL. This gives your team access to raw data immediately and keeps transformations auditable in version control. Fivetran adds metadata columns to every synced table: _fivetran_synced (last sync timestamp) and _fivetran_deleted (soft delete flag).
Connector Setup via API
# Fivetran Python SDK — manage connectors programmatically
# pip install fivetran-connector-sdk requests
import requests
FIVETRAN_API_KEY = "your_api_key"
FIVETRAN_API_SECRET = "your_api_secret"
BASE_URL = "https://api.fivetran.com/v1"
auth = (FIVETRAN_API_KEY, FIVETRAN_API_SECRET)
# Create a Postgres source connector
connector_payload = {
"service": "postgres",
"group_id": "your_destination_group_id",
"config": {
"host": "db.example.com",
"port": 5432,
"database": "production",
"user": "fivetran_reader",
"password": "secure_password",
"schema": "public",
"update_method": "WAL", # logical replication (CDC)
"publication_name": "fivetran_pub",
},
}
resp = requests.post(
f"{BASE_URL}/connectors",
auth=auth,
json=connector_payload,
)
connector_id = resp.json()["data"]["id"]
print(f"Connector created: {connector_id}")
# Trigger a manual sync
requests.post(f"{BASE_URL}/connectors/{connector_id}/force", auth=auth)
# Check sync status
status = requests.get(
f"{BASE_URL}/connectors/{connector_id}",
auth=auth
).json()["data"]["status"]
print(f"Sync status: {status['sync_state']}") dbt Integration & Webhook Trigger
# Fivetran + dbt Cloud integration — trigger dbt after sync
# In Fivetran Dashboard: Transformations > dbt Cloud
# Or trigger via dbt Cloud API after Fivetran webhook
import requests
DBT_CLOUD_TOKEN = "your_dbt_cloud_token"
DBT_ACCOUNT_ID = "12345"
DBT_JOB_ID = "67890"
def trigger_dbt_job(event_data):
"""Called from a webhook receiver after Fivetran sync completes."""
if event_data["event_type"] != "sync_end":
return
resp = requests.post(
f"https://cloud.getdbt.com/api/v2/accounts/{DBT_ACCOUNT_ID}/jobs/{DBT_JOB_ID}/run/",
headers={
"Authorization": f"Token {DBT_CLOUD_TOKEN}",
"Content-Type": "application/json",
},
json={"cause": f"Triggered by Fivetran sync {event_data['sync_id']}"},
)
run_id = resp.json()["data"]["id"]
print(f"dbt job triggered, run_id={run_id}") Built-in Transformations with dbt Core
# Fivetran Transformations — built-in dbt Core transformations
# Configure directly in Fivetran Dashboard > Transformations
# Fivetran runs dbt Core models after each sync.
# Example dbt model in Fivetran's transformation layer:
-- models/fivetran_staging/stg_stripe_charges.sql
WITH source AS (
SELECT * FROM {{ source('stripe', 'charge') }}
),
cleaned AS (
SELECT
id AS charge_id,
amount / 100.0 AS amount_usd,
currency,
status,
created AS charged_at,
customer AS customer_id,
metadata:order_id AS order_id -- JSON field extraction
FROM source
WHERE _fivetran_deleted = FALSE -- exclude soft-deleted rows
)
SELECT * FROM cleaned;
-- Fivetran adds _fivetran_synced and _fivetran_deleted columns
-- to every table automatically — always filter on _fivetran_deleted Fivetran vs Stitch vs Airbyte vs Custom ETL
| Feature | Fivetran | Stitch | Airbyte | Custom ETL |
|---|---|---|---|---|
| Hosting | Fully managed SaaS | Fully managed SaaS | Open-source / cloud | Self-built |
| Connectors | 500+ (broadest) | ~200 | 350+ (growing fast) | Whatever you build |
| Pricing model | MAR-based (expensive) | Row-based (affordable) | Free (self-hosted) | Engineering time |
| CDC support | Yes (WAL, binlog) | Yes (limited) | Yes (Debezium) | DIY |
| Schema management | Automatic | Automatic | Automatic | Manual |
| Best for | Enterprise, reliability | Startups, budget | Cost-sensitive teams | Proprietary sources |
Frequently Asked Questions
What is Fivetran and how does it differ from traditional ETL?▼
Fivetran is a fully managed ELT (Extract, Load, Transform) data movement service. Unlike traditional ETL tools where you build and maintain extraction code, Fivetran provides hundreds of pre-built, pre-maintained connectors for SaaS tools, databases, and cloud services. You configure a source and destination in minutes — no code required. Fivetran handles schema drift, API versioning, incremental sync, and error recovery automatically. The ELT approach loads raw data into the warehouse first, then transforms it with dbt or SQL — giving analysts access to raw data and making transformations auditable.
What is the difference between Normal, History Mode, and Fivetran-managed connectors?▼
Normal mode (Standard sync) replicates current data — each sync updates changed rows and inserts new ones. This is the default and most efficient mode. History Mode preserves every version of every row by adding a valid_from / valid_to timestamp pattern (SCD Type 2), enabling point-in-time analysis of how data changed over time. It uses more storage but supports time-travel queries. Fivetran also distinguishes between Fivetran-managed connectors (fully maintained by Fivetran with automatic updates) and custom connectors (built with the Connector SDK for proprietary or long-tail sources).
How does Fivetran handle schema changes in the source?▼
Fivetran detects schema changes in the source (new columns, renamed columns, deleted columns, type changes) during each sync and propagates them to the destination automatically. New columns are added to the destination table. Deleted columns are not dropped — they remain with NULL values going forward, preserving historical data. Type changes trigger a column rename and new column to avoid data corruption. Fivetran logs all schema changes in an audit table (_fivetran_log). You can configure alerts for schema changes and optionally block syncs pending manual review.
What is Fivetran's pricing model?▼
Fivetran pricing is primarily based on Monthly Active Rows (MAR) — the number of distinct rows synced or updated in a given month. Each connector tier (Free, Starter, Standard, Enterprise) has different MAR pricing. High-volume connectors like Salesforce or Google Ads can generate millions of MAR. Fivetran also offers a Free tier with limited connectors and MAR, and an Enterprise tier with volume discounts, private deployment, and advanced security features. Estimate costs carefully before going to production — CDC (log-based replication) typically has lower MAR than full table syncs because only changed rows are counted.
What is the difference between Fivetran, Stitch, and Airbyte?▼
Fivetran is the premium managed service — broadest connector catalog, most reliable, best enterprise support, highest price. It is the default choice for enterprises prioritizing reliability and coverage over cost. Stitch (by Talend) is a simpler, more affordable managed ELT service with fewer connectors but a lower price point, good for startups and smaller teams. Airbyte is open-source and free to self-host — maximum flexibility and a large growing connector catalog, but requires infrastructure to run. For teams with engineering capacity, Airbyte's open-source model offers significant cost savings at scale versus Fivetran.
How do I set up Fivetran for a Postgres source with CDC?▼
To use Fivetran with Postgres CDC (Change Data Capture via logical replication): set wal_level=logical in postgresql.conf, create a dedicated replication user with REPLICATION privilege, grant SELECT on all tables to be synced, create a replication publication (CREATE PUBLICATION fivetran_pub FOR ALL TABLES), and configure the connector with update_method=WAL and the publication name. CDC is the preferred update method for production Postgres sources — it captures every INSERT/UPDATE/DELETE in near-real-time with minimal load on the source database, unlike full-table polling.
Related Products
on GumroadDeveloper Productivity Bundle
Stop rebuilding the same setup every project. 51 VSCode snippets, 40 Git aliases, 5 Docker Compose stacks, 5 GitHub Actions workflows, 5 README templates, and a dotfiles kit. Set up a professional dev environment in under an hour.
Buy on Gumroad →AI Prompt Engineering Toolkit
58 structured prompt templates for Claude, ChatGPT, and Gemini — organized by use case. Code Review, Debugging, Documentation, Architecture, and 10 model-specific tips. Stop writing prompts from scratch.
Buy on Gumroad →Developer Cheat Sheet Bundle
10 print-ready cheat sheets for the tools developers use every day: Git, Docker, Linux CLI, SQL, Regex, HTTP Status codes, VS Code shortcuts, Bash scripting, jq/JSON, and Markdown.
Buy on Gumroad →You Might Also Need
JSON Formatter & Validator
Format, beautify, and validate JSON online. Paste your JSON to instantly pretty-print it with 2-space, 4-space, or tab indentation. Minify JSON too. Free, runs in your browser.
Open free tool →
Regex Tester
Free regex tester. Test regular expressions against multiple strings with expected match/no-match assertions — see instant pass/fail results. Built-in presets for email, URL, IPv4, and phone. Pro: unl
Open free tool →
Base64 Encoder & Decoder
Free Base64 Encoder & Decoder. Convert text, images, and any file to Base64 and back. Supports URL-safe Base64, image data URIs, and file download from Base64. Runs 100% in your browser — no data sent
Open free tool →
More Free Tools
Related Articles
ETL vs ELT: Modern Data Pipeline Architecture Guide 2026
ETL vs ELT data pipeline comparison 2026: traditional ETL limitations, cloud ELT advantages, dbt for transformation, tools comparison (Fivetran/Airbyte/dbt), and when to use each approach.
Apache Airflow vs Prefect: Workflow Orchestration Comparison 2026
Apache Airflow vs Prefect 2026: DAG vs flow syntax, scheduling, dynamic workflows, observability, learning curve, cloud offerings, and which to choose for your data team.
Apache Kafka for Real-Time Data Pipelines: Tutorial 2026
Apache Kafka tutorial 2026: topics, partitions, consumer groups, producers/consumers in Python, Schema Registry, Kafka Connect, exactly-once semantics, and production best practices.
Apache Spark vs Flink: Stream Processing Comparison 2026
Apache Spark vs Apache Flink 2026: architecture differences, true streaming vs micro-batch, latency, exactly-once semantics, SQL support, state management, and when to choose each.
dbt Complete Guide 2026: Models, Tests, Macros & CI/CD
dbt (data build tool) complete guide 2026: SQL models, ref() function, sources, generic/singular tests, macros with Jinja2, incremental models, dbt Cloud, and CI/CD integration.
Enjoying this tool? Get more like it.
Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.
Unlock AI-Powered Dev Tools
- ⚡ AI Code Review, Doc Generator & SQL Builder
- ⚡ All premium templates & early access
- ⚡ Member discounts on Gumroad products
$9/mo after trial · Cancel anytime
Want the full toolkit?
Get DevPlaybook Pro
Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.
MIT licensed · Instant download · No subscription
See what's included → Browse all deals →