Hard sources — not covered by free tools
Also parsed — certify what free tools miss
Designer workflows (.yxmd) parsed structurally. Converted to BigQuery SQL and Dataform models. Orchestrated with Dataform schedules or Cloud Composer.
Deterministic parsers read the estate and emit native Google Cloud code — not Designer workflows wrapped in a new scheduler.
Alteryx → MigryX parser → BigQuery + Dataform + Composer
Deterministic parseAI optionalAI is an optional add-on, off by default — the conversion runs end to end without it, air-gapped if your estate requires it.
Alteryx is bounded by machine memory. BigQuery processes petabyte-scale data serverlessly — no cluster sizing, no capacity planning.
300 Alteryx macros (.yxmc) embedded across workflows with no dependency tracking. Dataform macros are Git-versioned, testable, and have declared dependencies.
Embedded R and Python tools share a single runtime with no dependency management. Cloud Functions provide isolated, version-pinned execution per model.
A Multi-Row Formula calculating running totals with row offsets — the tool that forces analysts to think in terms of row pointers instead of SQL.
-- Multi-Row Formula: Running_Balance
-- Input: DAILY_TRANSACTIONS (sorted by Date)
-- Row-1 expression for running balance
-- with conditional reset on month boundary
GroupBy: [Account_ID]
Expression: [Running_Balance] =
IF DateTimeDiff(
[Row-1:Date], [Date], "month") != 0
THEN [Amount]
ELSE [Row-1:Running_Balance] + [Amount]
ENDIF
Num Rows: 1
-- Multi-Row Formula → window function
SELECT
account_id,
date,
amount,
SUM(amount) OVER (
PARTITION BY account_id,
FORMAT_DATE('%Y-%m', date)
ORDER BY date
ROWS BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW
) AS running_balance
FROM daily_transactions
ORDER BY account_id, date;
Row-1 offset becomes a window function with PARTITION BY for the month boundary reset. Row pointer logic becomes declarative SQL. Scales from thousands to billions of rows without memory constraints.
| Alteryx Component | GCP Equivalent | Notes |
|---|---|---|
| Input Data | SELECT from BigQuery table / external table | Connection strings parsed |
| Select | Column alias + SAFE_CAST | Type mappings preserved |
| Filter | WHERE clause | Expression syntax converted |
| Formula | SQL expression / BigQuery UDF | Functions mapped to BigQuery equivalents |
| Multi-Row Formula | Window functions (LAG/LEAD/SUM OVER) | Row offsets become window frames |
| Summarize | GROUP BY + aggregate functions | All aggregate types supported |
| Join | BigQuery JOIN | All join types preserved |
| Union | UNION ALL | Schema alignment handled |
| Sort | ORDER BY | Multi-key sort preserved |
| Batch Macro | Dataform macro + BigQuery script | Parameterized execution |
| R/Python tools | Cloud Functions + Remote Functions | Isolated, version-pinned runtimes |
| Output Data | BigQuery table / Dataform model | Partitioning and clustering mapped |
| Server schedule | Dataform schedule / Cloud Composer | DAG orchestration preserved |
Data Matching compares Alteryx output against BigQuery output — row by row, column by column. Differences flagged with root-cause analysis before sign-off.
See how Data Matching works →1,100 Alteryx workflows converted to BigQuery SQL and Dataform — including 300 macros to Dataform macros and 180 R/Python tools packaged as isolated Cloud Functions. Multi-hour Alteryx runs now complete in under 20 minutes. 47 client environments modernized with VPC Service Controls.
Read the full case study →