Configuring Connection Details
For the direction and binder name of this Micro-Integration, see Micro-Integration for Snowflake .
This section provides instructions for configuring the connection details required to establish communication between the Micro-Integration and your third-party system.
For information about configuring the connection to the event broker, see Step 1: Connecting to Your Event Broker .
For information about configuring error handling, see Step 5: Error Handling.
We recommend starting from the application.yml file provided in the samples/config directory of your downloaded archive, and updating it with the connection details described in this section, rather than building a configuration file from scratch. For more information, see Deploying Your Self-Managed Micro-Integration .
The Micro-Integration requires Snowflake key-pair authentication; username and password authentication is not supported. See Snowflake Prerequisites for Snowflake-side setup steps.
Message-to-Row Mapping
Each message that the Micro-Integration consumes from the event broker is written as a single row to the target Snowflake table, using a fixed two-column schema:
RECORD_CONTENT VARIANT -- structured payloads serialized to JSON; strings and binary passed through RECORD_METADATA VARIANT -- message headers explicitly mapped to RECORD_METADATA
The RECORD_CONTENT column contains the output of the mapping stage. Structured payloads (maps, collections, arrays) are serialized to JSON. String and binary payloads are written as-is. The RECORD_METADATA column is not populated automatically: only headers that you explicitly map appear there. If you don't map any headers, RECORD_METADATA remains empty. For information about mapping headers and payloads, see Message Headers and Mapping Message Headers and Payloads.
Snowflake Connection Details
Manual Configuration
To manually configure the application.yml file:
snowflake: url: <locator>.<region>.snowflakecomputing.com:443 username: snowflake_user role: <role> private-key-path: <private-key-path> private-key-password: <password>
Where:
-
<role>: Snowflake role, for example:ACCOUNTADMIN,SECURITYADMIN,USERADMIN,SYSADMIN,PUBLIC.For more information, see: Create Role and Overview of Access Control in the Snowflake documentation.
-
<private-key-path>: The file protocol path to the private key file, for example,'file:///C:/Users/admin/Documents/privateKeyPEM.p8'.For more information, see Key-pair authentication and key-pair rotation in the Snowflake documentation.
-
<password>: The password for the encrypted private key, if applicable.
Snowflake Binder Configuration Options
These properties must be prefixed with snowflake.
| Config Option | Type | Description |
|---|---|---|
|
|
|
The Snowflake account URL in the format:
For instance, for the Snowflake account URL |
username
|
|
The user login name for the Snowflake account. |
|
|
|
The role that the user should take while performing ingestion, for example:
For more information, see: Create Role and Overview of Access Control in the Snowflake documentation. |
|
|
|
The file protocol path to the private key to use to authenticate the user, for example, Supports both encrypted and unencrypted keys. For more information, see Key-pair authentication and key-pair rotation in the Snowflake documentation. |
|
|
|
The password for the encrypted private key, if applicable. |
Connecting to Multiple Systems
To connect to multiple systems of the same type, use the Spring Cloud Stream multiple binder syntax.
For example:
spring:
cloud:
stream:
binders:
solace1: # 1st solace binder in this example
type: solace
environment:
solace:
java:
host: tcp://localhost:55555
solace2: # 2nd solace binder in this example
type: solace
environment:
solace:
java:
host: tcp://other-host:55555
snowflake1: # The only snowflake binder
type: snowflake
environment:
snowflake:
# Add connection and binder properties here to customize behavior.
# Required for internal use
undefined:
type: undefined
bindings:
input-0:
destination: <input-destination>
binder: solace1 # Reference 1st solace binder
output-0:
destination: <output-destination>
binder: snowflake1
input-1:
destination: <input-destination>
binder: solace2 # Reference 2nd solace binder
output-1:
destination: <output-destination>
binder: snowflake1
The configuration above defines two binders of type solace and one binder of type snowflake, which are then referenced within the bindings.
Each binder above is configured independently under spring.cloud.stream.binders.<bindername>.environment.
When connecting to multiple systems, all binder configuration must be specified using the multiple binder syntax for all binders. For example, under the spring.cloud.stream.binders.<binder-name>.environment.
Do not use single-binder configuration (for example, solace.java.* at the root of your application.yml) while using the multiple binder syntax.