dagster-snowflake integration reference
This reference page provides information for working with dagster-snowflake features that are not covered as part of the Snowflake & Dagster tutorials (resources, I/O managers).
Authenticating using a private key
In addition to password-based authentication, you can authenticate with Snowflake using a key pair. To set up private key authentication for your Snowflake account, see the instructions in the Snowflake docs.
Currently, the Dagster's Snowflake integration only supports encrypted private keys. You can provide the private key directly to the Snowflake resource or I/O manager, or via a file containing the private key.
- Resources
- I/O managers
Directly to the resource
from dagster_snowflake import SnowflakeResource
from dagster import Definitions, EnvVar
defs = Definitions(
assets=[iris_dataset],
resources={
"snowflake": SnowflakeResource(
account="abc1234.us-east-1",
user=EnvVar("SNOWFLAKE_USER"),
private_key=EnvVar("SNOWFLAKE_PK"),
private_key_password=EnvVar("SNOWFLAKE_PK_PASSWORD"),
database="FLOWERS",
)
},
)
Via a file
from dagster_snowflake import SnowflakeResource
from dagster import Definitions, EnvVar
defs = Definitions(
assets=[iris_dataset],
resources={
"snowflake": SnowflakeResource(
account="abc1234.us-east-1",
user=EnvVar("SNOWFLAKE_USER"),
private_key_path="/path/to/private/key/file.p8",
private_key_password=EnvVar("SNOWFLAKE_PK_PASSWORD"),
database="FLOWERS",
)
},
)
Directly to the I/O manager
from dagster_snowflake_pandas import SnowflakePandasIOManager
from dagster import Definitions, EnvVar
defs = Definitions(
assets=[iris_dataset],
resources={
"io_manager": SnowflakePandasIOManager(
account="abc1234.us-east-1",
user=EnvVar("SNOWFLAKE_USER"),
private_key=EnvVar("SNOWFLAKE_PK"),
private_key_password=EnvVar("SNOWFLAKE_PK_PASSWORD"),
database="FLOWERS",
)
},
)
Via a file
from dagster_snowflake_pandas import SnowflakePandasIOManager
from dagster import Definitions, EnvVar
defs = Definitions(
assets=[iris_dataset],
resources={
"io_manager": SnowflakePandasIOManager(
account="abc1234.us-east-1",
user=EnvVar("SNOWFLAKE_USER"),
private_key_path="/path/to/private/key/file.p8",
private_key_password=EnvVar("SNOWFLAKE_PK_PASSWORD"),
database="FLOWERS",
)
},
)