Hard sources — not covered by free tools
Also parsed — certify what free tools miss
Runtimes
After migration
Designer workflows (.yxmd) parsed structurally. Converted to Snowpark Python and Snowflake SQL. Orchestrated with Snowflake Tasks or Airflow.
Deterministic parsers read the estate and emit native Snowflake code — not Designer workflows wrapped in a new scheduler.
Alteryx → MigryX parser → SQL + Snowpark + Tasks
Deterministic parseAI where it helpsMigryX AI handles the logic parsers cannot resolve alone, and every change it makes goes through the same parity checks. It runs on a model you approve, air-gapped if your estate requires it.
Data moves out of the warehouse, through Alteryx, and back. Snowpark keeps processing inside Snowflake — no data movement, no memory ceiling.
Alteryx spatial tools (Trade Area, Distance, Buffer) can't process enterprise-scale geospatial data. Snowflake's GEOGRAPHY type and H3 hexagonal grids handle it natively.
Embedded R/Python tools in Alteryx have no versioning, no dependency management, and no isolation. Snowpark Python and Snowflake Cortex run in managed, versioned environments.
The Spatial Match tool calculating drive-time trade areas — converted to Snowflake's H3 hexagonal grid system for native geospatial analytics at scale.
-- Spatial Workflow: Store_Trade_Areas
-- Input: STORE_LOCATIONS (lat/lon)
-- Trade Area: 15-minute drive time
-- Spatial Match: Join CENSUS_TRACTS
-- where Trade Area contains Centroid
Input: STORE_LOCATIONS
Trade Area: Drive Time, 15 minutes
Data source: TomTom
Spatial Match: CENSUS_TRACTS
Target: Centroid
Relation: Contains
Output: STORE_CATCHMENT_AREAS
Fields: Store_ID, Tract_ID, Population,
Median_Income, Distance_Miles
-- Spatial → H3 hexagonal grid
WITH store_cells AS (
SELECT
store_id,
H3_POINT_TO_CELL(
ST_MAKEPOINT(longitude, latitude), 7
) AS h3_index
FROM store_locations
),
trade_area AS (
SELECT
s.store_id,
n.h3_index AS neighbor_cell
FROM store_cells s,
LATERAL FLATTEN(
input => H3_GRID_DISK(s.h3_index, 4)
) n
)
SELECT
t.store_id,
c.tract_id,
c.population,
c.median_income,
H3_GRID_DISTANCE(sc.h3_index, t.neighbor_cell)
AS ring_distance
FROM trade_area t
JOIN census_tracts c
ON c.h3_index = t.neighbor_cell
JOIN store_cells sc
ON sc.store_id = t.store_id;
Trade Area drive-time approximated with H3 grid rings at resolution 7 (~5.16 km²). Spatial Match becomes a join on H3 cell indices. Scales to millions of points without desktop memory constraints.
| Alteryx Component | Snowflake Equivalent |
|---|---|
| Input Data | Snowflake SELECT / Stage |
| Select | Column alias + CAST |
| Filter | WHERE clause |
| Formula | Snowpark .withColumn() / SQL expression |
| Summarize | GROUP BY / Snowpark group_by() |
| Join | Snowflake JOIN |
| Multi-Row Formula | Window functions (LAG/LEAD) |
| Spatial Match | H3 grid join / ST_CONTAINS |
| Trade Area | H3_GRID_DISK() rings |
| R/Python tools | Snowpark UDF / Snowflake Cortex |
| Batch Macro | Snowpark function + Snowflake Task |
| Server schedule | Snowflake Tasks |
Data Matching compares Alteryx output against Snowflake output — row by row, column by column. Tolerance rules handle precision differences between Alteryx numeric types and Snowflake NUMBER.
See how Data Matching works →28 regulated enterprises, including six global systemically important banks, have modernized with MigryX. Customer names are shared under NDA in a demo, with reference calls on request.
See all engagements →