Migration
Mainframe COBOL and JCL migration to cloud data platforms
Novuz converts mainframe batch logic, COBOL programs and copybooks, JCL job streams and procedures, DB2 SQL, and VSAM and sequential file layouts, into data pipelines on Databricks (on AWS, Azure or Google Cloud), Microsoft Fabric, Snowflake, Google BigQuery, Apache Iceberg or Delta Lake. Every converted job ships with a reconciliation report against the mainframe output on the same inputs. CICS online transactions are not in scope.
Scope
What kind of mainframe migration is this?
Most mainframe tools refactor whole applications into another language. AWS Transform, for example, describes refactoring COBOL workloads into Java applications. Google Cloud’s tools assess the code, convert EBCDIC data for Cloud Storage and BigQuery, and run the mainframe and Google Cloud side by side.
Novuz does something narrower. It moves the batch data logic, the nightly jobs that read files and tables, apply business rules and write results, into the data platform where that data now belongs. Online CICS screens and transactions stay out of scope.
Coverage
What does Novuz convert in a mainframe estate?
Every element below is converted by rule and reconciled. Final coverage for your estate is confirmed object by object in the assessment.
| Mainframe element | What it becomes |
|---|---|
| Batch COBOL programs | SQL or PySpark jobs, set-based where the logic allows and record by record where order matters |
| Copybooks, including REDEFINES and OCCURS | Table schemas, with redefined and repeating fields mapped explicitly |
| Packed decimal (COMP-3), binary (COMP) and zoned decimal fields | Exact decimal and integer types, so totals do not drift |
| EBCDIC data | Decoded to the target’s encoding, with sort-order differences handled |
| JCL jobs, PROCs, steps and condition codes | Workflows with the same steps, dependencies and failure branches |
| Generation data groups (GDGs) | Tables keyed by generation date, so references such as (0) and (-1) still resolve to the right data |
| DFSORT or SyncSort steps | SQL sorts, merges, joins and filters |
| Embedded DB2 SQL and DB2 tables | Target SQL and tables |
| VSAM and sequential files | Tables on the target, loaded from the copybook layouts |
| CICS online transactions and BMS screens | Not in scope |
Risks
What breaks in a mainframe batch migration?
These are the problems that change the numbers if nobody plans for them.
- Packed decimals and rounding. COMP-3 fields and COBOL’s rounding rules must map to exact decimal types, or totals drift by cents.
- EBCDIC sort order. EBCDIC sorts lowercase letters before uppercase and letters before digits, the reverse of ASCII, so a job that relies on sorted input can change its output on a new platform.
- One record, several shapes. REDEFINES and OCCURS DEPENDING ON let a single record layout hold different structures, and the program decides which at run time.
- Condition codes and restart logic in the JCL decide which steps run after a failure, and they are rarely documented.
- Generation data groups. Jobs refer to files by relative generation, so the meaning of “yesterday’s file” lives in the JCL.
- Old date logic. Two-digit years and date windows written decades ago still sit inside the programs.
By target
How does mainframe batch map to each target?
The patterns are agreed in the assessment before anything is converted.
| Mainframe | Databricks (AWS, Azure or Google Cloud) | Microsoft Fabric | Snowflake | Google BigQuery | Apache Iceberg or Delta Lake |
|---|---|---|---|---|---|
| COBOL batch logic | PySpark or Databricks SQL | Fabric notebooks or Warehouse SQL | Snowflake SQL or Snowpark | GoogleSQL and stored procedures | Spark SQL or PySpark |
| JCL job streams | Databricks Workflows | Fabric Data Factory pipelines | Snowflake tasks | The orchestrator agreed in the assessment | The orchestrator agreed in the assessment |
| Files and GDGs | Delta tables keyed by generation date | Lakehouse tables keyed by generation date | Tables keyed by generation date | Tables partitioned by generation date | Open tables keyed by generation date |
| DB2 SQL | Databricks SQL | Warehouse T-SQL | Snowflake SQL | GoogleSQL | Spark SQL |
Other tools
Which mainframe tools do what?
- AWS Transform for mainframe analyzes COBOL, PL/I, JCL, CICS, Db2 and VSAM, and refactors COBOL workloads into Java applications.
- Google Cloud offers the Mainframe Assessment Tool for analysis and business-rule extraction, Mainframe Connector to convert mainframe data such as EBCDIC for Cloud Storage and BigQuery, and Dual Run to run the mainframe and Google Cloud in parallel and compare results.
- Partner platforms such as LeapLogic list mainframe COBOL and JCL among their sources.
- When to choose which: refactor to Java when the application, screens included, must keep running as an application. Choose Novuz when the batch jobs exist to produce data, and that data now belongs on the data platform.
How it runs
How does a mainframe batch migration with Novuz run?
- Export the source: COBOL members, copybooks, JCL and PROC libraries, DB2 DDL and a set of input files. The assessment reads code, not the live mainframe.
- The $3,000 assessment counts every object in three business days, bands each one by complexity, lists dead code with the evidence, confirms coverage object by object and fixes the price.
- The First Domain takes one domain of up to 1,500 components and 25 TB to reconciled, cutover-ready output in your environment in 5 to 6 weeks, for $25,000 to $40,000, credited against the full estate.
- Each converted job runs on the same input files as the mainframe job, and the outputs are compared on record counts, totals and sampled records, with each miss listed by line.
- Jobs are switched off on the mainframe domain by domain, once their pipelines are cut over and reconciled.
Next question
Where to read next
Moving mainframe batch data to BigQuery or Databricks on Google Cloud? The Google Cloud page covers both.
FAQ
Frequently asked questions
Can Novuz migrate COBOL and JCL to Databricks, Snowflake, Fabric or BigQuery?
Yes, for batch. Novuz converts batch COBOL programs and copybooks, JCL job streams and procedures, DB2 SQL, and VSAM and sequential file layouts into data pipelines on Databricks on AWS, Azure or Google Cloud, Microsoft Fabric, Snowflake, Google BigQuery, Apache Iceberg or Delta Lake. Coverage is confirmed in the assessment.
Does Novuz convert CICS?
No. CICS online transactions and BMS screens are out of scope. Novuz converts the batch side: COBOL programs, copybooks, JCL, DB2 SQL and file layouts. If the online application must keep running, an application refactoring tool is the better fit for that part.
How is packed decimal data handled?
Copybook fields in packed decimal (COMP-3), binary (COMP) and zoned decimal formats are mapped to exact decimal and integer types on the target, and COBOL’s rounding rules are kept, so totals do not drift. Reconciliation compares the totals with the mainframe output on the same inputs.
How do you prove a converted batch job matches the mainframe?
Each converted job runs on the same input files as the mainframe job. The outputs are compared on record counts, totals and sampled records, and every difference is listed by line with its cause. The job is marked pass, fail or review.
Is this the same as refactoring COBOL to Java?
No. Java refactoring keeps the program as an application. Novuz turns batch data logic into SQL or PySpark pipelines on the data platform, where reports and AI workloads can use the results directly.
Does our mainframe code or data leave our network?
No. Novuz runs as a Docker container or VM inside your own environment, next to the target. The code and the data stay where they are, and no outbound connection is required.
- 1 Vendor facts on this page come from each vendor’s own documentation, checked 14 November 2026.
Sources and further reading
Written by Ted Ghose, Co-founder and CTO, Novuz
Last reviewed:
Find out what your logic debt is costing you.
Every object counted, lineage, dead code and a fixed price in three business days. $3,000, credited.
Not sure which door? The scorecard takes ten minutes and tells you.