Stitch Data: Cloud ETL Service Setup & Integration Guide
Stitch Data is a simple, affordable managed cloud ELT service built on the open Singer protocol. Connect 130+ sources to your data warehouse in minutes — no code required — with flexible replication methods including log-based CDC.
What is Stitch Data?
Stitch Data (acquired by Talend in 2018, now part of the Qlik portfolio) is a cloud-hosted ELT service that extracts data from databases and SaaS applications and loads it into your data warehouse. It is designed for simplicity — a data analyst without engineering experience can configure a new integration in under ten minutes. Stitch supports 130+ sources including MySQL, Postgres, MongoDB, Salesforce, HubSpot, Stripe, Zendesk, Facebook Ads, and Google Analytics.
Stitch is built on the open Singer protocol — an open-source standard for data extraction scripts (taps) and loading scripts (targets). This means you can run any community Singer tap locally, inspect exactly what data is being extracted, and contribute new taps to the ecosystem. Stitch adds a managed layer on top: hosting, scheduling, monitoring, and a UI. Pricing is row-based, making it more affordable than Fivetran for moderate data volumes.
Managing Sources via Stitch Connect API
# Stitch Connect API — manage sources and destinations
# pip install requests
import requests
STITCH_TOKEN = "your_stitch_api_token"
BASE_URL = "https://api.stitchdata.com/v4"
HEADERS = {
"Authorization": f"Bearer {STITCH_TOKEN}",
"Content-Type": "application/json",
}
# 1. List all sources (integrations)
sources = requests.get(f"{BASE_URL}/sources", headers=HEADERS).json()
for s in sources:
print(f"Source: {s['display_name']} | Status: {s['current_step_type']}")
# 2. Create a new MySQL source
new_source = requests.post(
f"{BASE_URL}/sources",
headers=HEADERS,
json={
"type": "platform.mysql",
"display_name": "Production MySQL",
"properties": {
"host": "db.example.com",
"port": "3306",
"database": "production",
"username": "stitch_reader",
"password": "secure_password",
"ssl": "true",
},
},
).json()
source_id = new_source["id"]
print(f"Created source ID: {source_id}")
# 3. Trigger a manual extraction run
requests.post(
f"{BASE_URL}/sources/{source_id}/sync",
headers=HEADERS,
)
print("Manual sync triggered") Singer Protocol — Taps & Targets
# Singer Protocol — tap (source) + target (destination)
# pip install singer-tools tap-mysql target-snowflake
# 1. Configure the tap (source)
# tap_config.json
{
"host": "db.example.com",
"port": 3306,
"user": "stitch",
"password": "secret",
"database": "production"
}
# 2. Discover schema (generates catalog.json)
# tap-mysql --config tap_config.json --discover > catalog.json
# 3. Select streams to sync in catalog.json:
# Set "selected": true on each stream you want
# 4. Run the tap and pipe to the target
# tap-mysql --config tap_config.json --catalog catalog.json \
# | target-snowflake --config target_config.json
# target_config.json
{
"account": "myaccount.us-east-1",
"username": "stitch_loader",
"password": "secret",
"database": "ANALYTICS",
"warehouse": "LOADING_WH",
"schema": "stitch_mysql"
}
# Singer message format (NDJSON):
# {"type": "SCHEMA", "stream": "orders", "schema": {...}, "key_properties": ["id"]}
# {"type": "RECORD", "stream": "orders", "record": {"id": 1, "amount": 99.99}}
# {"type": "STATE", "value": {"bookmarks": {"orders": {"id": 1000}}}} Replication Methods Explained
# Replication methods — how Stitch detects changed rows # 1. FULL TABLE — re-sync entire table every run # Use when: small tables, no updated_at column, source doesn't support CDC # Pros: simple, always accurate # Cons: expensive for large tables, slow # 2. KEY-BASED INCREMENTAL — query rows WHERE updated_at > last_bookmark # Use when: table has a reliable updated_at or auto-increment id column # Pros: efficient, low source load # Cons: misses hard deletes; requires monotonically updating replication key # Configure in Stitch UI per-table: # Table Settings > Replication Method > Key-based Incremental # Replication Key: updated_at # 3. LOG-BASED (CDC) — read database transaction log # Supported sources: MySQL (binlog), Postgres (WAL), MongoDB (oplog), SQL Server # Use when: you need near-real-time sync and want to capture DELETEs # Setup for Postgres: # wal_level = logical # max_replication_slots = 5 # max_wal_senders = 5 # CREATE PUBLICATION stitch_pub FOR ALL TABLES; # Comparison summary: # Method | Captures deletes | Source load | Complexity # Full Table | Yes (via full re-sync) | High | Low # Key-based | No | Low | Low # Log-based (CDC) | Yes | Very Low | Medium
Stitch vs Fivetran vs Airbyte
| Feature | Stitch Data | Fivetran | Airbyte |
|---|---|---|---|
| Hosting | Fully managed SaaS | Fully managed SaaS | Open-source / Cloud |
| Connectors | ~130 | 500+ | 350+ (community) |
| Pricing | Row-based (affordable) | MAR-based (premium) | Free (self-hosted) |
| Open standard | Singer (open) | Proprietary | Airbyte CDK (open) |
| CDC support | Yes (Advanced plan) | Yes (all plans) | Yes (Debezium) |
| Best for | Budget-conscious teams | Enterprise / reliability | Cost-sensitive / flexibility |
Frequently Asked Questions
What is Stitch Data and what does it do?▼
Stitch Data (now part of Talend) is a fully managed cloud ETL/ELT service that extracts data from sources like databases, SaaS APIs, and files, and loads it into data warehouse destinations like Snowflake, BigQuery, Redshift, and Azure Synapse. You configure integrations in minutes through the Stitch UI — no code required for supported sources. Stitch handles scheduling, incremental sync, schema management, and error retry automatically. It is built on the open Singer specification, so you can also run taps and targets locally or extend them with custom Singer taps.
What is the Singer protocol that Stitch is built on?▼
Singer is an open-source specification for writing data extraction scripts (taps) and loading scripts (targets) that communicate via JSON messages over stdout/stdin. A tap connects to a source, discovers its schema, and emits SCHEMA, RECORD, and STATE messages as newline-delimited JSON. A target receives these messages and loads them into a destination. Because Singer is a standard protocol, any tap can be piped into any target. Stitch is a managed hosted service that runs Singer taps and targets on your behalf — but you can run any Singer tap locally without Stitch.
What are the three replication methods in Stitch?▼
Full Table replication re-syncs the entire table every run — simple and accurate, but expensive for large tables. Key-based Incremental replication queries rows where an updated_at or id column is greater than the last synced value — efficient and low-load, but misses hard DELETEs and requires a reliable replication key. Log-based Incremental (CDC) reads the database transaction log (MySQL binlog, Postgres WAL, MongoDB oplog) — captures INSERTs, UPDATEs, and DELETEs with minimal source load, but requires database configuration changes and is not available for all sources. Choose log-based CDC whenever the source supports it.
Which destinations does Stitch support?▼
Stitch supports all major cloud data warehouses: Snowflake, Google BigQuery, Amazon Redshift, Amazon S3 (data lake), Microsoft Azure Synapse Analytics, PostgreSQL, and Databricks Delta Lake. The choice of destination affects features: Snowflake and BigQuery support the widest set of data types and have the best column-level update granularity. S3 is useful for raw data lake storage at very low cost. When choosing a destination, consider query performance, cost per TB, and whether your BI tool or transformation layer (dbt) supports it natively.
How does Stitch handle schema changes?▼
When Stitch detects a new column in the source, it adds that column to the destination table on the next sync. If a column's data type changes, Stitch creates a new column with a suffix (_sdc_typed or similar) to avoid data corruption in the existing column. Dropped source columns are not removed from the destination — they remain with NULL going forward. Stitch logs all schema changes in metadata tables. You can configure notifications for schema changes in the Stitch UI. Unlike Fivetran's fully automatic schema management, Stitch may require occasional manual cleanup after significant schema changes.
What are Stitch's pricing tiers and how does billing work?▼
Stitch pricing is row-based — you pay per million rows replicated per month, with different tiers by row volume and features. The Standard plan covers most use cases with a moderate number of sources. The Advanced and Premium tiers unlock log-based replication (CDC), advanced scheduling, priority support, and a higher source limit. Row counting can be surprising with full table replication of large tables — a 10M-row table re-synced daily generates 300M rows per month. Budget carefully and prefer incremental replication to control costs. Stitch offers a 14-day free trial without a credit card.
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.
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 →