(Glue-2411) Snowflake Prerequisites
High-level summary of necessary steps (more details in Snowflake documentation):
SAP Basis/Infrastructure tasks:
SAP Basis team:
Java Connector: (SM-Latest) Java Connector Setup
Creation of SNP_JAVA_CONNECTOR RFC:
Connection type: TCP/IP Connection.
Activation type: Registered Server Program.
Fill in Program ID (e.g.): SNP_JAVA_CONNECTOR.
Creation of Technical SAP user for ABAP->JCO RFC Communication:
In transport, you are provided with a template role with name /DVD/JCORFC (if you use this role, do not forget to generate the profile in transaction PFCG).
Create System user, with role /DVD/JCORFC.
Granting access for external program SNP_JAVA_CONNECTOR to SAP gateway
Check SMGW > GoTo > Expert Functions > External Security > Maintenance of ACL files > Tab Reginfo and make sure that Program Name is allowed to register (either via wildcard rule or explicit ProgramID; example: “P TP=SNP_JAVA_CONNECTOR HOST=127.0.0.1”).
Uploading Snowflake JDBC driver to the operating system of the application server:
Snowpipe connection (logic utilizing staging area):
Central Repository: net/snowflake/snowflake-jdbc (The recommendation is to use the newest version of the driver).
Snowpipe streaming connection:
Central Repository: net/snowflake/snowflake-jdbc (The recommendation is to use the newest version of the driver),
https://mvnrepository.com/artifact/net.snowflake/snowflake-ingest-sdk (The recommendation is to use the latest version of the SDK).
Networking team:
Enabling outbound communication from the SAP system to Snowflake
To enable communication between SAP systems and the Snowflake environment, a set of hosts/ports related to your Snowflake account needs to be reachable from the SAP system.
Please refer to the Allowlist output generated by the Snowflake team.
Snowflake team:
Snowflake storage: (SM-Latest) Snowflake
Creation of Snowflake database, warehouse, and schema (refer to https://docs.snowflake.com/en/index.html)
Creation of Snowflake technical role and user with necessary authorizations
The recommended privilege for the Snowflake technical user is OWNERSHIP of the Snowflake database.
The minimal requirements are:
GRANT ALL ON DATABASE <DATABASE> TO ROLE <ROLE>
GRANT USAGE ON WAREHOUSE <WAREHOUSE> TO ROLE <ROLE>
GRANT ALL ON SCHEMA <SCHEMA> TO ROLE <ROLE>
Executing
SELECT SYSTEM$ALLOWLIST();
orSELECT SYSTEM$ALLOWLIST_PRIVATELINK();
generates .csv file with a list of hosts and ports involved in the communication.
All communication is outbound from the SAP perspective. Pass generated output to the networking team.Reference to Snowflake documentation: https://docs.snowflake.com/en/user-guide/snowcd.