page31
11
In general, across many legacy RDBMSs, you will also find these differences:
•
Date functions, format specifiers, and time zones, in common with
other legacy RDBMSs.
•
Absence of index support in Snowflake for standard tables (though
forthcoming Unistore hybrid tables do use indexes).
•
Cluster key terminology and usage are not the same across legacy
RDBMSs and Snowflake.
•
Declared but not enforced constraints except for
NOT NULL
in
Snowflake.
I offer these as a short and incomplete list to give you an idea of the differences
between legacy RDBMSs and Snowflake.
The ACID tests are whether data correctly loads into the Snowflake objects migrated
from the source and all regression tests run clean.
Functionality Lift and Shift
Assuming the schema has been ported to Snowflake, the task of porting functional
components remains. Tools like SnowConvert claim to port stored procedures to
JavaScript equivalents, and I have no evidence to suggest otherwise.
My concerns relate to the quality of SQl ported from source.
Do not expect unmodified SQL statements to be optimally performant in a
Snowflake environment. Experience has proven that you must tune all SQL code for the
platform and not assume everything will run “just fine” in Snowflake.
Typically, you will see a performance boost because of the massively parallel
processing (MPP) capability Snowflake brings. You must not be complacent in lifting
and shifting code and then accepting the new MPP performance benefit as evidence of
success.
Instead, I suggest identifying the top 10 longest running queries and then optimizing
their performance using the techniques outlined in this book. A note of caution: you are
looking for repeating SQL statements; one-off data loads should be excluded.
ChaptEr 1
tuning thE SnowFlakE Data ClouD