snowpipe
branchenergy/snowpipe/snowflake
A Terraform module for creating automatically-ingesting Snowflake pipes from S3
Snowpipe This repository houses a Terraform module for creating automatically-ingesting Snowflake pipes from S3. In particular_, it implements Option 2 of the _Automating Snowpipe for Amazon S3_ Snowflake documentation, creating an SNS topic for each prefix Important Notes and Requirements The following points were hard-won lessons for us, and important to understand for working with this module. Nota bene. - Each S3 bucket can only have a single notification configuration. Look, it's right here in the docs! If you have an existing notification configuration for this bucket, this process will work, but it'll wipe out everything that already exists and you'll probably upset someone, possibly your future self. - There is a 72 hour lag between the deletion of an SNS topic subscription and bei
| Name | Type | Description | Default |
|---|---|---|---|
| prefix_tables | map( object({ table_ | A mapping from an S3 bucket prefix to the Snowflake table which it should be loa | required |
| database | string | Snowflake database name | required |
| storage_integration | string | Snowflake storage integration name | required |
| storage_aws_iam_user_arn | string | Snowflake storage integration's `STORAGE_AWS_IAM_USER_ARN` property | required |
| bucket_name | string | S3 bucket name | required |
| file_format | string | Stage file format name used for tables without a custom `file_format` set | required |
| storage_aws_external_id | string | Snowflake storage integration's `STORAGE_AWS_EXTERNAL_ID` property | required |
| snowflake_role_path | string | Snowflake role path | required |
| snowflake_role_name | string | Snowflake role name | required |
| schema | string | Snowflake database schema name | required |