Openflow Snowflake 部署成本和扩展注意事项¶
When running Openflow - Snowflake Deployment you must be aware of the cost considerations associated with multiple Snowflake components, including, but not limited to the following cost categories:
Compute pool costs
Snowpark Container Services 基础设施
Data Ingestion
Telemetry Data Ingestion
Other costs not explicitly mentioned in this topic
Using and scaling Openflow involves understanding these costs. The following sections describe Openflow costs in general, and provide a number of examples of scaling Openflow runtimes and associated costs.
Openflow - Snowflake Deployment 成本¶
When using Openflow - Snowflake Deployment, you can incur costs from multiple Snowflake components that Openflow uses. These cost categories are described in the following sections.
However, your actual costs may vary based on your specific environment. See 计算 Openflow - Snowflake Deployment 使用量的示例 for examples of different cost consumption scenarios.
Openflow compute pool costs¶
备注
This cost category is shown as Openflow Compute Snowflake on your Snowflake bill.
The total costs for running Openflow are based on the number and types of instances used by Snowpark Container Service compute pools in your Snowflake account.
Openflow uses compute pools for two different purposes:
Openflow Management Services
Openflow Management Services run as part of an Openflow deployment. They use a compute pool to manage the Openflow deployment. This compute pool begins running as soon as you create a deployment. It continues to run as long as the deployment is active.
- caution:
The compute pool associated with the Openflow Management Services continues to run and incurs costs, even if there are no runtimes running.
Openflow runtimes
Openflow uses compute pools to run the Openflow runtimes. The number of compute pools required and the number of nodes within each compute pool are scaled based on the number of runtimes that are currently running.
When all runtimes associated with a runtime are stopped, the compute pool associated with the runtimes is scaled down to 0 nodes. No costs are incurred for a runtime compute pool when it is not in use.
Credits are billed per-second with a 5 minute minimum. For information on the rate per Snowpark Container Services Compute Instance Family per hour, refer to Table 1(d) in the Snowflake Service Consumption Table.
The following views in the Account Usage schema provide additional details on Openflow compute costs:
Compute pool costs related to Openflow appear under SERVICE_TYPE as OPENFLOW_COMPUTE_SNOWFLAKE.
备注
The OPENFLOW_USAGE_HISTORY view currently does not
contain records for the OPENFLOW_COMPUTE_SNOWFLAKE service type.
For more information on compute costs in Snowflake, see 了解计算成本.
Snowpark Container Services infrastructure costs¶
In addition to compute pool costs, there are costs associated with additional Snowpark Container Services infrastructure, including storage and data transfer.
For additional information, see Snowpark Container Services 成本.
Data ingestion costs¶
Costs are incurred when loading data into Snowflake using services such as Snowpipe or Snowpipe Streaming. These costs are based on the volume of data ingested.
备注
These costs appear on your Snowflake bill under their respective ingestion services line items.
Additionally, some connectors may require a warehouse and will incur warehouse costs. For example, database CDC connectors require a warehouse for both the initial snapshots and ongoing incremental Change Data Capture (CDC).
Telemetry data ingestion costs¶
When using an event table to store telemetry data for Openflow, Snowflake charges for sending logs and metrics to Openflow deployments. There are also charges for sending runtime telemetry data to your event table within Snowflake.
The rate for credits per GB of telemetry data is specified in Table 5 in the Snowflake Service Consumption Table This item is referred to as Telemetry Data Ingest.
Reducing Openflow credit consumption¶
If you have runtimes that are not actively in use, you can suspend them to reduce costs. Suspending a runtime stops credit consumption for the associated runtime compute pool. When a runtime is suspended, its compute pool scales down to 0 nodes and no longer incurs charges.
Openflow - Snowflake Deployment costs associated with runtimes and scaling behavior¶
How you choose to configure and scale runtimes is important for managing costs effectively. Openflow supports different runtime types, each with its own scaling characteristics and associated costs.
将运行时映射到 Snowflake 计算池¶
The runtime type you choose determines the runtime pods that are scheduled on the associated compute pool. Using a larger runtime type will result in a larger compute pool being used, which will incur higher costs.
The runtime sizes and their scaling behavior are described in the following table:
运行时类型 |
vCPUs |
可用内存 (GB) |
Snowflake 计算池实例系列 |
Snowflake 计算池 |
实例系列 – vCPUs |
实例系列 – 内存 (GB) |
|---|---|---|---|---|---|---|
小 |
1 |
2 |
CPU_X64_S |
INTERNAL_OPENFLOW_0_SMALL |
4 |
16 |
中 |
4 |
10 |
CPU_X64_SL |
INTERNAL_OPENFLOW_0_MEDIUM |
16 |
64 |
大 |
8 |
20 |
CPU_X64_L |
INTERNAL_OPENFLOW_0_LARGE |
32 |
128 |
Openflow scales the underlying Snowflake Compute Pools when additional compute pool nodes need to be scheduled, based on CPU consumption, and up to the maximum node setting set during runtime creation.
Compute pools are configured with a minimum size of 0 nodes and a maximum of 50 nodes. The required size is dynamically adjusted depending on the CPU and memory requirements of the runtimes.
If there are no resource demands, for example, if the runtime is not running, a compute pool scales down to 0 nodes after 600 seconds (10 minutes).
运行时 |
Activity 页面 |
Snowflake 成本 |
云成本 |
|---|---|---|---|
无运行时 |
无 |
Openflow Control Pool x 1 node = 1 CPU_X64_S instance-hour |
无 |
1 small runtime (1vCPU) (min=1 max=2) |
活跃 1 小时。 运行时不会扩展到 2。 |
Openflow Control Pool x 1 node + Small Openflow Compute Pool (CPU_X64_S) x 1 node = 2 CPU_X64_S instance-hours |
无 |
2 个小型运行时 (1 vCPU)(最小/最大 = 2)1 个大型运行时 (8 vCPU)(最小/最大 = 10) |
小型运行时:4 个大规格节点活跃 1 小时:10 个节点激活 1 小时 |
Openflow Control Pool x 1 node + Small Openflow Compute Pool (CPU_X64_S) x 2 node + Large Openflow Compute Pool (CPU_X64_L) x 4 nodes = 3 CPU_X64_S instance-hours + 4 CPU_X64_L instance-hours |
无 |
1 medium (4vCPU) (min=1 max=2) |
前 20 分钟运行 1 个节点。20 分钟后,扩展到 2 个节点。40 分钟后,缩减回 1 个节点。总计 1 小时 |
Openflow Control Pool x 1 node + Medium Openflow Compute Pool (CPU_X64_SL) x 1 node = 1 CPU_X64_S instance-hour + 1 CPU_X64_SL instance-hour |
无 |
1 个中型运行时 (4vCPU)(最小/最大 = 2) |
前 30 分钟运行 2 个节点。30 分钟后暂停 |
Openflow Control Pool x 1 node + Medium Openflow Compute Pool (CPU_X64_SL) x 1 node x 1/2 hour = 1 CPU_X64_S instance-hour + 1/2 CPU_X64_SL instance-hour |
无 |
计算 Openflow - Snowflake Deployment 使用量的示例¶
- You created an Openflow Snowflake Deployment and have not created any runtimes.
Openflow_Control_Pool_0 计算池正在运行一个 CPU_X64_S 实例
Total Openflow consumption = 1 CPU_X64_S instance-hour
- You created one small runtime with Min Nodes = 1 and Max Nodes = 2. Runtime stays at 1 node for 1 hour.
Openflow_Control_Pool_0 计算池正在运行 1 个 CPU_X64_S 实例
INTERNAL_OPENFLOW_0_SMALL 计算池正在运行 1 个 CPU_X64_S 实例
Openflow 总使用量 = 2 CPU_X64_S 实例小时
- You created two small runtimes with min/max of two nodes each, and one large runtime with min/max of 10 nodes. These Runtimes are active for one hour.
Openflow_Control_Pool_0 计算池正在运行 1 个 CPU_X64_S 实例
Two small runtimes at two nodes = INTERNAL_OPENFLOW_0_SMALL Compute Pool is running with 2 CPU_X64_S instances = 2 CPU_X64_S instance-hours
One large runtime at 10 nodes = INTERNAL_OPENFLOW_0_LARGE Compute Pool is running with 4 CPU_X64_L instances = 4 CPU_X64_L instance-hours
Total Openflow consumption = 3 CPU_X64_S instance-hours + 4 CPU_X64_L instance-hour
- You created one medium runtime with one node. After 20 minutes, it scales to two nodes. After 20 minutes, it scales back down to one node and runs for another 20 minutes.
Openflow_Control_Pool_0 计算池正在运行 1 个 CPU_X64_S 实例
One medium runtime scaling up to two medium runtimes = INTERNAL_OPENFLOW_0_MEDIUM Compute Pool is running with 1 CPU_X64_SL instance = 1 CPU_X64_SL instance-hour
Openflow 总使用量 = 1 CPU_X64_S 实例小时 + 1 CPU_X64_SL 实例小时
- You created one medium runtime with two nodes, then suspended it after 30 minutes.
Openflow_Control_Pool_0 计算池正在运行 1 个 CPU_X64_S 实例
One medium runtime at one node = INTERNAL_OPENFLOW_0_MEDIUM Compute Pool is running with 1 CPU_X64_SL instance
30 分钟 = 1/2 小时
Openflow 总使用量 = 1 CPU_X64_S 实例小时 +1/2 CPU_X64_SL 实例小时