page28
8
•
Data migration: Porting the application data into Snowflake and
establishing ingestion pipelines and processes.
•
Data consumption: Re-engineering the application outbound data
consumption processes.
•
Platform security: Adding security. I cover this point in great detail
in the Maturing the Snowflake Data Cloud book.
•
Performance: Optimizing Snowflake is the core subject matter of
this book.
•
Testing: Perform back-to-back testing to ensure equivalent outputs
for known inputs are delivered, along with the all-important and
expected performance benefits.
•
Documentation: No migration activity is complete without
exhaustive documentation.
The most time-consuming and difficult step to determine is code conversion; no two
applications have the same profile or migration objectives. Migrating an application for
archive legacy purposes to retain data for a specific period will be very different from
migrating an active, in-use application.
Refactoring code is expensive, and finding empirical metrics is hard. As a rough
guideline, you can expect refactoring costs to be at least four times the cost of developing
code from scratch. This guesstimate includes understanding the original code; you can
substitute your own multiplication factor taking into consideration the availability of
experienced resources and detailed documentation.
Another considerable challenge is ensuring your migrated application functionality
matches the source application. I call this out as source applications are not typically
fixed in time; enhancements and bug fixes cause divergence that must be considered
when porting to Snowflake.
Migration Guides
Snowflake offers a number of legacy RDBMS guides to help you port applications to
Snowflake. Some of these are listed here and may require your contact information
before access is enabled:
ChaptEr 1
tuning thE SnowFlakE Data ClouD