Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,48 +9,73 @@ description_list: true

## Introduction

Mendix has several options available for users who want to integrate their app with Snowflake in order to create data-driven enterprise applications.
You can combine the AI capabilities offered by Menidx and Snowflake to enable the development of low-code agentic enterprise solutions. The integration works in both directions, that is, Snowflake Cortext Agents can invoke Mendix business logic, while Mendix AI agents can connect to Snowflake MCP servers.

## Snowflake Integration Options

The integration between Mendix and Snowflake is available in either direction. That is, you can use data from Snowflake in your Mendix app with the External Database connector or the Snowflake AI Data connector, but you can also ingest your Mendix data into Snowflake by using the Mendix Data Loader. For more information, refer to the sections below.
In addition to AI-driven applications, the integration also includes the capability to build data-driven applications. That is, you can use data from Snowflake in your Mendix app with the External Database connector or the Snowflake AI Data connector, as well as ingest your Mendix data into Snowflake by using the Mendix Data Loader.

The following diagram outlines the available integration options:

{{< figure src="/attachments/appstore/platform-supported-content/modules/snowflake-ai-data-connector/Snowflake Architecture slide.png" >}}

### Building Mendix Apps on Top of Snowflake
For more information, refer to the sections below.

Mendix provides real-time interaction with Snowflake through the [External Database connector](https://marketplace.mendix.com/link/component/219862) and the [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717). These connectors can enable you to perform the following tasks:
## Snowflake AI and Data Integration Options

* Read, write, and use data from Snowflake in your application.
* Execute Java [stored procedures](https://docs.snowflake.com/en/developer-guide/stored-procedure/stored-procedures-overview).
* Leverage [Cortex Machine Learning](https://docs.snowflake.com/en/guides-overview-ml-functions) and [Cortex Large Language Model](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions) functions.
The integration between Mendix and Snowflake offers several options for building AI-driven applications.

For a comparison of the functions of the connectors, refer to the sections below.
### AI-Assisted Development

#### External Database Connector
Mendix supports the [Model Context Protocol](https://modelcontextprotocol.io/introduction), which is an open protocol that standardizes how Large Language Models (LLMs) can autonomously connect to apps. For more information about the available options, refer to the following topics:

* [Integrate a Mendix MCP Server with a Snowflake Cortex Agent](/appstore/modules/snowflake/connect-snowflake-ai-agent-to-mendix/)
* [Connect a Mendix AI Agent to a Snowflake-Managed MCP Server](/appstore/modules/snowflake/connect-ai-agent-to-snowflake-mcp/)
* [Bring Your Own Snowflake LLM](/appstore/modules/snowflake/bring-your-own-snowflake-llm/)

The [External Database connector](https://marketplace.mendix.com/link/component/219862) is the recommended option that you can use to integrate your Mendix app with Snowflake. It offers a premium developer experience where you can test connections and queries during design time by using a view of all schemas and objects to which you can connect. It makes use of the JDBC protocol and the usage of Python stored procedures in addition to Java.
### Building AI-Powered Applications

The External Database connector only supports system-level authentication. It can authenticate in Snowflake by using the username and password of a single Snowflake user. It also offers key-pair authentication with a private key. The connector does not support role-based access control (RBAC) per end user.
The [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717) is the recommended, purpose-built method of integrating Mendix with Snowflake for the purpose of developing AI-powered Mendix apps.

The External Database connector has GA support for Snowflake from [Studio Pro 10.12](/releasenotes/studio-pro/10.12/) (Beta versions are available from [Studio Pro 10.10](/releasenotes/studio-pro/10.10/)). Some Cortex functionalities are currently limited when using the External Database connector, but they are on the roadmap.
You can also use the [External Database connector](https://marketplace.mendix.com/link/component/219862) to trigger some Cortex AI functions through SQL queries. For a comparison of the functions of the connectors, refer to the sections below.

#### Snowflake AI Data Connector

The [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717), available from the Mendix Marketplace, supports the 9.24 LTS version of Mendix. It offers key-pair authentication with a private key file according to PKCS #8 standard and OAuth.
The [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717) is the recommended option for building AI-driven applications. It enables you to perform the following tasks:

* Trigger a number of [Snowflake Cortex ML functions](https://docs.snowflake.com/en/guides-overview-ml-functions). For a more detailed list, refer to [Snowflake AI Data Connector: Typical Use Cases](/appstore/connectors/snowflake/snowflake-ai-data-connector/#use-cases).
* Use [Snowflake Cortex Analyst](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst).
* Execute synchroneous calls.
* Query your Cortex Search services.

#### External Database Connector

The [External Database connector](https://marketplace.mendix.com/link/component/219862) can also be used to support AI-driven applications by allowing you to run SQL queries that call upon some Cortex AI functions, such as *sentiment*. For more information, see [External Database Connector: Using Cortex AI functions](/appstore/modules/snowflake/external-database-connector/).

### Building Data-Driven Applications {#data-driven}

The [External Database connector](https://marketplace.mendix.com/link/component/219862) and the [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717) can also be used to build data-driven applications. For a comparison of the functions of the connectors, refer to the sections below.

#### External Database Connector

The [External Database connector](https://marketplace.mendix.com/link/component/219862) is the recommended option for building data-driven applications. It offers a premium developer experience where you can test connections and queries during design time by using a view of all schemas and objects to which you can connect. It makes use of the JDBC protocol and the usage of Python stored procedures in addition to Java.

The External Database connector has GA support for Snowflake from [Studio Pro 10.12](/releasenotes/studio-pro/10.12/) (Beta versions are available from [Studio Pro 10.10](/releasenotes/studio-pro/10.10/)).

#### Snowflake AI Data Connector

With the Snowflake AI Data Connector, authentication can be done either on system or on end-user level, and the connector supports role-based access control (RBAC) per end user as well.
The [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717) is primarily used for AI-driven applications, but it can also be used to perform small-scale data updates. This may be useful in cases where you are already using this connector for its AI functionalities, and you would like to do a limited amount of data processing without having to install a new connector for this purpose. However, for reading or writing large amounts of data, it is recommended to use the External Database connector instead.

The Snowflake AI Data Connector requires an additional step to transform data rows received from the REST SQL API into Mendix objects. For more information, see [Snowflake AI Data Connector](/appstore/connectors/snowflake/snowflake-ai-data-connector/).

#### Loading Mendix Data into Snowflake

The [Mendix Data Loader](https://app.snowflake.com/marketplace/listing/GZTDZHHIE0/mendix-mendix-data-loader/), available from the [Snowflake Marketplace](https://app.snowflake.com/marketplace), aids in ingesting Mendix data into Snowflake. The application is deployed in your Snowflake environment and interacts with the configured Mendix apps to ingest data that is exposed using an [Published OData Service](/refguide/published-odata-services/).

### Security and Governance

##### Role Base Access Control (RBAC)

For information about using Snowflake's role-based access control in a Mendix application, see [Role-based Access Control](/appstore/modules/snowflake/snowflake-rbac/).

### Loading Mendix Data into Snowflake
## Documents in This Category

The [Mendix Data Loader](https://app.snowflake.com/marketplace/listing/GZTDZHHIE0/mendix-mendix-data-loader/), available from the [Snowflake Marketplace](https://app.snowflake.com/marketplace), aids in ingesting Mendix data into Snowflake. The application is deployed in your Snowflake environment and interacts with the configured Mendix apps to ingest data that is exposed using an [Published OData Service](/refguide/published-odata-services/).

## Documents in This Category
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ weight: 20

The [Snowflake AI Data Connector](https://marketplace.mendix.com/link/component/225717) allows you to use data from Snowflake in your Mendix application and enrich your app with the AI capabilities that Snowflake provides.

### Typical Use Cases
### Typical Use Cases {#use-cases}

The Snowflake AI Data Connector supports the following:

Expand All @@ -37,8 +37,8 @@ The Snowflake AI Data Connector supports the following:
* [EMBED_TEXT_1024](https://docs.snowflake.com/en/sql-reference/functions/embed_text_1024-snowflake-cortex) – Given a piece of text, returns a vector embedding of 1024 dimensions that represents that text.

* Use [Snowflake Cortex Analyst](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-analyst) – This Snowflake Cortex feature is used to get information/insights out of structured data sets using natural language instead of sql. Cortex Analyst works with semantic models or semantic model views that define how your data should be interpreted.
* Synchronous execution of calls
* Query your Cortex Search services
* Execute synchroneous calls.
* Query your Cortex Search services.

For more use cases and examples for [Snowflake Cortex LLM functions](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions), written by the Head of Snowflake Tech Consulting, see [Karthik S Raman's Medium profile](https://medium.com/@karthiksraman).

Expand Down Expand Up @@ -74,6 +74,8 @@ To use the capabilities of Snowflake in a Mendix app with the Snowflake AI Data
* RSA key-pair authentication (KEYPAIR_JWT)
* Programmatic Access Token (PAT)

With the Snowflake AI Data Connector, authentication can be done either on system or on end-user level, and the connector supports role-based access control (RBAC) per end user as well.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Mendix.CompoundWords] Use 'end-user' instead of 'end user'


#### Configuring OAUTH Authentication {#setup-OAUTH-snowflake}

To find out how configure the OAUTH Authentication method, see [Role-based Access Control](/appstore/modules/snowflake/snowflake-rbac/).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ This how-to describes the steps required to enable your app to use the External

## Configuring the Connection Between Your Mendix App and Snowflake

The External Database connector only supports system-level authentication. It can authenticate in Snowflake by using the username and password of a single Snowflake user. It also offers key-pair authentication with a private key. The connector does not support role-based access control (RBAC) per end user.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Mendix.CompoundWords] Use 'end-user' instead of 'end user'


To configure connect your Mendix application to Snowflake with the External Database connector, follow these steps:

1. [Install the External Database connector](/appstore/modules/external-database-connector/#installation). If you are using Studio Pro 10.12, please make sure to use the latest version 3.0.0 [External Database Connector](https://marketplace.mendix.com/link/component/219862).
Expand Down Expand Up @@ -314,7 +316,7 @@ To execute and test the query in Studio Pro, follow these steps:

{{< figure src="/attachments/appstore/platform-supported-content/modules/external-database-connector/sample-snowflake-query-replication-grid.png" >}}

## Using Cortex AI functions
## Using Cortex AI functions {#cortex-ai-query}

Snowflake comes with built in AI functionality that you can leverage in your Mendix applications. This section provides an example of a query that calls the *sentiment* function to analyze the sentiment of a piece of text.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.