ðŸšĐGetting started

System requirements

Hand-on example

It will take about 10 minutes.

1) Install SnowDDL.

pip install snowddl

2) Create a new Snowflake Trial Account or create a new account within your organization.

Do NOT use existing production account with real data to test object management tools.

3) Generate private and public key for key-pair authentication of SnowDDL administrator user.

It is still possible to use single-factor PASSWORD authentication for testing purpose, but it is NOT recommended due to updated Snowflake security guidelines:

https://www.snowflake.com/en/blog/blocking-single-factor-password-authentification/

4) Create administration user for SnowDDL. Replace RSA_PUBLIC_KEY with contents of generated public key. It should look like a single line without header & footer and without line-breaks.

USE ROLE ACCOUNTADMIN;

CREATE ROLE SNOWDDL_ADMIN;

GRANT ROLE SYSADMIN TO ROLE SNOWDDL_ADMIN;
GRANT ROLE SECURITYADMIN TO ROLE SNOWDDL_ADMIN;

CREATE USER SNOWDDL
TYPE = SERVICE
RSA_PUBLIC_KEY = 'MIIBIjANBgkqh...'
DEFAULT_ROLE = SNOWDDL_ADMIN;

GRANT ROLE SNOWDDL_ADMIN TO USER SNOWDDL;
GRANT ROLE SNOWDDL_ADMIN TO ROLE ACCOUNTADMIN;

5) Apply first version of sample config (provided with SnowDDL installation). Replace <account_identifier> placeholder with Snowflake account identifier. Replace <path_to_private_key> with path to private key file generated in step 3.

snowddl \
-c sample01_01 \
-a <account_identifier> \
-u snowddl \
-k <path_to_private_key> \
--apply-unsafe \
apply

Check database SNOWDDL_DB in Snowflake account. Check list of warehouses and roles.

6) Apply second version of sample config (provided with SnowDDL installation).

snowddl \
-c sample01_02 \
-a <account_identifier> \
-u snowddl \
-k <path_to_private_key> \
--apply-unsafe \
apply

Check logs. Some objects will be altered, some objects will be dropped.

7) Reset Snowflake account to the original state. All objects created earlier by SnowDDL will be dropped.

snowddl \
-c sample01_02 \
-a <account_identifier> \
-u snowddl \
-k <path_to_private_key> \
--apply-unsafe \
--destroy-without-prefix \
destroy

Congratulations!

Now you are ready to create your own config and start experimenting.

Last updated