PutSnowpipeStreaming 2025.10.9.21

Bundle

com.snowflake.openflow.runtime | runtime-snowpipe-processors-nar

Description

Streams records into a Snowflake table. The table must be created in the Snowflake account beforehand.

Tags

connection, database, jdbc, openflow, snowflake, snowpipe streaming

Input Requirement

REQUIRED

Supports Sensitive Dynamic Properties

false

Properties

PropertyDescription
AccountSnowflake Account Identifier with Organization Name and Account Name formatted as [organization-name]-[account-name]
Authentication StrategyStrategy for authenticating Snowflake connections
Client LagThe maximum amount of time that the client will wait before flushing records to Snowflake. A larger value can increase latency while sending to Snowflake, but for tables that are not constantly updated it can result in queries that are faster and more cost efficient.
Concurrency GroupAllows specifying a ‘Concurrency Group’ that a given FlowFile belongs to, so that the number of Concurrent Tasks that write to tables in a given group can be limited.
Connection StrategyStrategy for connecting to Snowflake Snowpipe Streaming services
DatabaseSnowflake Database destination for processed records
Delivery GuaranteeSpecifies the delivery guarantee for the records being sent to Snowflake.
Iceberg EnabledSpecifies whether the processor ingests data into an Iceberg table. The processor fails if this property doesn’t match the actual table type.
Max Batch SizeMaximum number of records to ingest in a single call. Multiple ingest calls will be made if the number of records exceeds the max batch size. Current guidance recommends batch sizes less than 16MB. The Max Batch Size can be tuned based on the average record size such that batches are generally less than 16MB.
Max Tasks Per GroupThe maximum number of channels to create for a given Snowpipe Channel Prefix. This allows limiting the number of concurrent tasks that can be writing to a given Snowflake table.
Private Key ServiceRSA Private Key Service for authenticating connections
Record OffsetThe Expression Language expression to use to determine the offset of the first record in a FlowFile.
Record Offset Record PathThe Record Path expression to use to determine the offset of the first record in a FlowFile.
Record Offset StrategySpecifies the strategy for determining the offset of each record.
Record ReaderThe Record Reader to use for reading the input
RoleSnowflake Role the user will assume when authenticating connections
SchemaSnowflake Schema destination for processed records
Snowpipe Channel IndexThe index to use for the Snowpipe channel name. The full channel name will be constructed as openflow.[prefix].[index]. This is necessary in order to provide Exactly Once delivery to Snowflake, as any retry must be tried against the same channel as was previously used.
Snowpipe Channel PrefixThe prefix to use for the Snowpipe channel name. The full channel name will be constructed as openflow.[prefix].[index]. The default value is ${hostname(false)}, which ensures that each NiFi node in the cluster writes to a unique channel by incorporating the hostname of the NiFi instance into the channel name.
TableSnowflake Table destination for processed records
UserSnowflake User for authenticating connections

Relationships

NameDescription
failureFor FlowFiles that failed to upload to Snowflake
successFor FlowFiles successfully uploaded to Snowflake

Use cases

Write record-oriented data to a Snowflake table as fast as possible, accepting the possible of occasional duplicates.