Set up Openflow - Snowflake Deployment: Create deployment¶
After configuring core Snowflake, create an Openflow deployment. A deployment is the control plane component that manages your runtimes and connectors. Each deployment can host multiple runtimes, and each runtime can run multiple connectors, giving you flexibility to isolate workloads by project, team, or environment. There is no separate charge for the deployment itself; only active runtimes consume Snowflake credits.
Create a deployment - create the deployment itself.
[Optional] Configure an Openflow-specific event table - configure an Openflow-specific event table to store Openflow logs and metrics.
Create a deployment¶
Note
To access the Openflow Runtime UI using PrivateLink as described in Setup PrivateLink UI access, ensure the PrivateLink option is enabled when creating a new Openflow - Snowflake Deployment.
Sign in to Snowsight with a role defined in Configure core Snowflake requirements.
In the navigation menu, select Ingestion » Openflow.
Select Launch Openflow.
In the Openflow UI, select Create a deployment. The Deployments tab opens.
Select Create a deployment. The Creating a deployment wizard opens.
In the Prerequisites step, ensure that you meet all the requirements. Select Next.
In the Deployment location step, select Snowflake as the deployment location. Enter a name for your deployment. Select Next.
Select Create Deployment.
Your deployment will then be created.
[Optional] Configure an Openflow-specific event table¶
Openflow generates logs and metrics and sends them to the Snowflake Event Table. For helpful queries to analyze this telemetry data, see Monitor Openflow.
By default, Openflow uses the account event table (SNOWFLAKE.TELEMETRY.EVENTS), but you can configure an Openflow-specific event table per deployment. A dedicated event table is recommended to optimize query performance, enable granular access control, and simplify Openflow monitoring and maintenance.
To store the event table outside the Openflow database, grant the OPENFLOW_ADMIN role access to the
<DATABASE>and<SCHEMA>where you want to store it:USE ROLE ACCOUNTADMIN; GRANT USAGE ON DATABASE <DATABASE> TO ROLE OPENFLOW_ADMIN; GRANT USAGE ON SCHEMA <DATABASE>.<SCHEMA> TO ROLE OPENFLOW_ADMIN;
Create the event table:
USE ROLE OPENFLOW_ADMIN; CREATE EVENT TABLE IF NOT EXISTS <DATABASE>.<SCHEMA>.EVENTS;
Get your dataplane name, which you use in the next step, from the
namecolumn:SHOW OPENFLOW DATA PLANE INTEGRATIONS;
Set the event table for this deployment, replacing
<OPENFLOW_DATAPLANE_NAME>with the value from the previous step:ALTER OPENFLOW DATA PLANE INTEGRATION <OPENFLOW_DATAPLANE_NAME> SET EVENT_TABLE = '<DATABASE>.<SCHEMA>.EVENTS';
[Optional] Create a monitoring role¶
A monitoring role lets data engineers or operations teams monitor Openflow without having the OPENFLOW_ADMIN role.
To create a monitoring role, run the following code:
USE ROLE OPENFLOW_ADMIN; -- Create a role for monitoring Openflow deployments and runtimes if it doesn't yet exist CREATE ROLE IF NOT EXISTS <OPENFLOW_MONITOR_ROLE>; GRANT MONITOR ON OPENFLOW DATA PLANE INTEGRATION <OPENFLOW_DATAPLANE_NAME> TO ROLE <OPENFLOW_MONITOR_ROLE>; -- Add to role hierarchy so administrators can manage objects owned by this role GRANT ROLE <OPENFLOW_MONITOR_ROLE> TO ROLE <OPENFLOW_ADMIN_ROLE>; -- Grant the role to the appropriate Snowflake users GRANT ROLE <OPENFLOW_MONITOR_ROLE> TO USER <SNOWFLAKE_USER>;