Using Anypoint Studio to Configure Snowflake Connector 1.2 - Mule 4
Anypoint Studio (Studio) editors help you design and update your Mule applications, properties, and configuration files.
To add and configure a connector in Studio:
When you run the connector, you can view the app log to check for problems in real time, as described in View the App Log.
If you are new to configuring connectors in Studio, see Using Anypoint Studio to Configure a Connector. If, after reading this topic, you need additional information about the connector fields, see the Snowflake Connector Reference.
Create a Mule Project
In Studio, create a new Mule project in which to add and configure the connector:
-
In Studio, select File > New > Mule Project.
-
Enter a name for your Mule project and click Finish.
Add the Connector to Your Mule Project
Add Snowflake Connector to your Mule project to automatically populate the XML code with the connector’s namespace and schema location and add the required dependencies to the project’s pom.xml
file:
-
In Mule Palette, click (X) Search in Exchange.
-
In Add Dependencies to Project, type
snowflake
in the search field. -
Click Snowflake Connector in Available modules.
-
Click Add.
-
Click Finish.
Adding a connector to a Mule project in Studio does not make that connector available to other projects in your Studio workspace.
Configure a Source
A source initiates a flow when a specified condition is met. You can configure one of these sources to use with Snowflake Connector:
-
Snowflake > On Table Row
Initiates a flow by selecting from a table at a regular interval and generating one message per obtained row -
HTTP Listener
Initiates a flow each time it receives a request on the configured host and port -
Scheduler
Initiates a flow when a time-based condition is met
For example, to configure an On Table Row source, follow these steps:
-
In Mule Palette, select Snowflake > On Table Row.
-
Drag On Table Row to the Studio canvas.
-
On the On Table Row configuration screen, optionally change the value of Display Name.
-
Click + next to Connector configuration to configure a global element that can be used by all instances of the On Table Row source in the app.
-
On the Snowflake Config window, for Required Libraries, add the required Snowflake JDBC driver by selecting Configure > Add recommended libraries or Configure > Add Maven dependency and adding the artifact ID
snowflake-jdbc
. -
On the Connection section, specify the database connection information for the connector.
-
On the Advanced tab, optionally specify connection pooling and reconnection information, including a reconnection strategy.
-
Click Test Connection to confirm that Mule can connect with the specified Snowflake database.
-
Click OK to close the window.
-
On the On Table Row configuration screen, in Table, select the name of the table to select from.
-
On the On Table Row configuration screen, in Watermark Column, select the name of the column to use for the watermark. Values taken from this column are used to filter the contents of the next poll, so that only rows with a later date than the watermark value are processed.
-
On the On Table Row configuration screen, in Id Column, select the name of the column to consider as the row ID. This parameter ensures the same row is not processed twice by concurrent polls.
For example, to configure an HTTP listener source, follow these steps:
-
In Mule Palette, select HTTP > Listener.
-
Drag Listener to the Studio canvas.
-
On the Listener configuration screen, optionally change the value of Display Name.
-
Specify a value for the Path field.
-
Click + next to Connector configuration to configure a global element that can be used by all instances of the HTTP Listener source in the app.
-
On the General tab, specify connection information for the connector.
-
On the TLS tab, optionally specify the TLS information for the connector.
-
On the Advanced tab, optionally specify reconnection information, including a reconnection strategy.
-
Click Test Connection to confirm that Mule can connect with the specified server.
-
Click OK.
Add a Connector Operation to the Flow
When you add a connector operation to your flow, you are specifying an action for that connector to perform.
To add an operation for Snowflake Connector, follow these steps:
-
In Mule Palette, select Snowflake and then select the desired operation.
-
Drag the operation onto the Studio canvas to the right of the input source.
Configure a Global Element for the Connector
When you configure a connector, configure a global element that all instances of that connector in the app can use. Configuring a global element requires you to provide the authentication credentials that the connector requires to access the target Snowflake system. Snowflake Connector supports the Snowflake Connection type to connect to Snowflake.
To configure the global element for Snowflake Connector, follow these steps:
-
Select the operation in the Studio canvas.
-
In the configuration screen for the operation, click + next to the Connector configuration field to access the global element configuration fields.
-
In the General tab, in Required Libraries, click Configure and select from the following options to install the required JDBC driver:
-
Add recommended libraries
-
Use local file
-
Add Maven dependency
-
-
In Connection, enter the following required information to configure authentication:
-
Account name
Account name that was provided when registering for the Snowflake account. -
Warehouse
Name of the virtual Snowflake warehouse to use. The specified warehouse must be an existing warehouse for which the specified account has privileges. -
Database
Snowflake database to connect to. The specified database must be an existing database for which the specified account has privileges. -
Schema
Snowflake database schema to use. The specified schema must be an existing schema for which the specified account has privileges.Either reference a configuration file that contains ANT-style property placeholders (recommended) or enter your authorization credentials in the global configuration properties. For information about the benefits of using property placeholders and how to configure them, see Anypoint Connector Configuration.
-
-
On the Advanced tab, optionally specify reconnection information, including a reconnection strategy.
-
Click Test Connection to confirm that Mule can connect with the specified server.
-
Click OK.
Configure Additional Connector Fields
After you configure a global element for Snowflake Connector, configure the other required fields for the connector. The required fields vary depending on which connector operation you use.
View the App Log
To check for problems, view the app log:
-
If you’re running the app from Anypoint Platform, the app log output is visible in the Anypoint Studio console window.
-
If you’re running the app using Mule from the command line, the app log output is visible in your OS console.
Unless the log file path is customized in the app’s log file (log4j2.xml
), you can also view the app log in the default location MULE_HOME/logs/<app-name>.log
. You can configure the location of the log path in the app log file log4j2.xml
.
Configure Bouncy Castle for Encrypted Key-Pair Authentication
If you use a Key-pair connection with an encrypted private key, you must configure the Bouncy Castle security provider, configure the BCPKIX (Bouncy Castle Public Key Infrastructure (X.509)) cryptography library, and enable the security provider for CloudHub or Runtime Fabric.
Configure the Bouncy Castle Security Provider
To configure the Bouncy Castle security provider, follow these steps:
-
Open the
AnypointStudio.ini
file and identify where the Java VM is stored. For further details, refer to How to find the Anypoint Studio .ini file. Use the-vm
command to set up a path such as `JAVA_VM_FOLDER. -
Download the
bcprov-jdk18on-<VERSION>.jar
andbcpkix-jdk18on-<VERSION>.jar
files from https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on and https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18on. -
Place the files in the
JAVA_VM_FOLDER/jre/lib/ext
folder. -
Open the
JAVA_VM_FOLDER/jre/lib/security/java.security
file. -
Add the Bouncy Castle security provider to the end of the list of security providers by inserting the following line with the correspondent number
N
:security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider
Configure the BCPKIX Cryptography Library
To configure the BCPKIX cryptography library, follow these steps:
-
In Anypoint Studio, open the Snowflake Config window.
-
For Connection, select Key-pair Connection.
-
In the Required Libraries section, add the required Bouncy Castle BCPKIX
.jar
file by selecting either of the following:-
Configure > Add recommended libraries
-
Configure > Add Maven dependency
-
-
Add the artifact ID
snowflake-jdbc
. -
Click OK.
In you are running your Mule app in a FIPS environment, add the bcpkix-fips
library.
Enable the Bouncy Castle Security Provider for CloudHub and Runtime Fabric
To use encrypted private keys in Key-pair Connection in Cloudhub and Runtime Fabric, set the mule.security.provider
property to BC
, for example:
mule.security.provider=BC
If you are running your Mule app in a FIPS environment, set the mule.security.provider
property to BCFIPS
.
For further details about the configuration, refer to https://help.mulesoft.com/s/article/Enabling-the-Bouncy-Castle-security-provider [setting up Bouncy Castle security provider] knowledge base article.