Processing semantic model with source as Snowflake on AWS
To process the semantic model with source as Snowflake on AWS,
Set AWS_SECRET_KEY as user ACCESS_KEY and AWS_KEY_ID as user SECRET_KEY, in semantic model advance properties.
-or-Configure a Snowflake storage integration to access Amazon S3.
Important
Refer to Snowflake documentation for configuring a Snowflake storage integration to access Amazon S3. Ensure that before creating an external stage, as per Snowflake documentation, the URL should be: s3://<your bucket name>/<kvyso work directory>/temp/
For example, 's3://kyvos-qa/user/engine_work/temp/'
Note
This requires AWS console access and Snowflake account administrators (users with the ACCOUNTADMIN role) or a role with the global CREATE INTEGRATION.
Execute the GRANT USAGE ON STAGE <stagename> TO ROLE <role_used_on_Kyvos_SF_Connection>; query on Snowflake with the role used in Snowflake connection in Kyvos.
Add the kyvos.connection.snowflake.stage = @mydb.myschema.mystage property on Snowflake connection.
NOTE: Here, mydb is the database name, myschema is the schema name, and mystage is the stage name.Update the IAM role in your bucket policy that you created while configuring a Snowflake storage integration to access Amazon S3 in the above step.
Processing semantic model with source as Snowflake on GCP
Below are the steps to create the stage before triggering any semeantic model:
CREATE STORAGE INTEGRATION <storage_integration_name>
TYPE = EXTERNAL_STAGE
STORAGE_PROVIDER = 'GCS'
ENABLED = TRUE
STORAGE_ALLOWED_LOCATIONS = ('gcs://<bucket_name>')GRANT USAGE ON INTEGRATION <storage_integration_name> TO ROLE ACCOUNTADMIN;
CREATE STAGE <stage_name>
URL = 'gcs://<bucket_name>/user/engine_work/temp/'
STORAGE_INTEGRATION = <storage_integration_name>
FILE_FORMAT = (TYPE=<file_format_type>);GRANT USAGE ON DATABASE <DB_name> TO ROLE ACCOUNTADMIN;
GRANT USAGE ON SCHEMA <DB_name>.<Schema_name> TO ROLE ACCOUNTADMIN;
GRANT CREATE STAGE ON SCHEMA <DB_name>.<Schema_name> TO ROLE ACCOUNTADMIN;Add below property in Snowflake connection
kyvos.connection.snowflake.stage = @<DB_name>.<Schema_name>.<stage_name>
example: kyvos.connection.snowflake.stage = @automationtables.public.teststage4July
For further details about configuring an integration for Google Clous Storage, see Snowflake documentation.