1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
source:
type: mysql
# Pass your connection string via the DATABASE_URL environment variable.
# For Docker: docker run -e DATABASE_URL="mysql://user:pass@host:3306/db"
# For local: export DATABASE_URL="mysql://user:pass@localhost:3306/db"
# On macOS/Windows Docker Desktop, use host.docker.internal instead of localhost.
url_env: DATABASE_URL
exports:
- name: users_full
query: "SELECT id, name, email, created_at FROM users"
mode: full
format: parquet
destination:
type: local
path: /output # matches -v $(pwd)/output:/output in Docker
- name: orders_incremental
query: "SELECT id, user_id, product, quantity, price, status, updated_at FROM orders"
mode: incremental
cursor_column: updated_at
format: csv
# MySQL does not expose DECIMAL precision/scale, so declare it.
columns:
price: decimal(10,2)
destination:
type: s3
bucket: my-data-lake # replace with your bucket
prefix: exports/orders/
region: us-east-1
- name: content_items_full
query: "SELECT id, title, category, status, view_count, published_at, updated_at FROM content_items"
mode: full
format: parquet
destination:
type: gcs
bucket: my-gcs-bucket # replace with your bucket
prefix: exports/content/