Integrate data from eXtremeDB to Snowflake using Matillion

Our eXtremeDB to Snowflake connector seamlessly transfers your data to Snowflake within minutes, ensuring it remains current without the need for manual coding or complex ETL scripting.

eXtremeDB
Snowflake
eXtremeDB to Snowflake banner

Extracting data from eXtremeDB to Snowflake

Extracting data from eXtremeDB is a key prerequisite for many organizations seeking to leverage advanced analytics or integrate operational data into modern cloud data platforms such as Snowflake. While eXtremeDB is renowned for its high-performance in-memory database capabilities, porting data into a scalable analytical ecosystem like Snowflake can unlock new efficiencies and insights. This article guides you through the essential steps to successfully extract data from eXtremeDB and load it into Snowflake. We will begin by discussing how to create an identity in eXtremeDB, which is fundamental for secure and authorized access. Next, for Matillion ETL users, we will explain how to verify or obtain the necessary JDBC driver, ensuring seamless data connectivity. The article will also cover crucial network considerations to enable reliable source-to-target connectivity. Finally, we will explore methods for querying data from eXtremeDB, both for initial data loads and for efficient ongoing incremental updates. By following these steps, you can streamline the data migration process and ensure your eXtremeDB data is readily available for analysis in Snowflake.


What is eXtremeDB?

eXtremeDB is an embedded, high-performance, and in-memory database management system (DBMS) designed primarily for resource-constrained and performance-demanding applications, such as those found in real-time embedded systems, IoT devices, telecommunications, and financial platforms. Developed by McObject, eXtremeDB combines a small footprint and low-latency in-memory architecture with persistent storage capabilities and ACID compliance, ensuring both fast data access and reliability. The database supports multiple data models, including relational, object-oriented, and hybrid approaches, enabling robust schema flexibility. Advanced features such as native APIs for C/C++, SQL support, distributed clustering, replication, encryption, and real-time transaction processing further equip developers to tailor eXtremeDB to a wide range of high-throughput, mission-critical environments.

matillion logo x eXtremeDB

What is Snowflake?

Snowflake is a cloud-native data platform designed to deliver highly scalable, performant, and elastic data warehousing solutions. Architected with a unique multi-cluster shared data approach, Snowflake decouples compute from storage, allowing seamless and near-instantaneous scaling to accommodate varied workloads without resource contention. The platform supports ANSI SQL and provides features for secure data sharing, native semi-structured data handling (such as JSON, Avro, ORC, Parquet), and automatic performance optimization, reducing the need for manual tuning. Its serverless model abstracts traditional database administration and streamlines integration with a wide ecosystem of analytics and data engineering tools, making it well-suited for modern data lake, data warehouse, and data sharing use cases.

Why Move Data from eXtremeDB into Snowflake

Unlocking Analytical Power: The Case for Moving eXtremeDB Data into Snowflake

A data engineer or architect might choose to copy data from eXtremeDB into Snowflake for several compelling reasons. Firstly, eXtremeDB maintains sets of data that are potentially valuable for advanced analytics, reporting, or business intelligence; however, this value can often be maximized only when the data is combined with information from other sources across the organization. By migrating eXtremeDB data into Snowflake, it becomes possible to integrate and correlate it with data from disparate systems in a centralized data platform, unlocking deeper insights and facilitating cross-functional analysis. Furthermore, performing integration and analytics workloads within Snowflake offloads resource-intensive processes from the operational eXtremeDB environment, helping to avoid performance degradation and ensuring that eXtremeDB remains focused on its primary transactional or real-time responsibilities.

Creating a User in eXtremeDB

eXtremeDB supports multiple deployment models, including in-memory, persistent, and client/server architectures. User and authentication management is primarily relevant in the client/server variant, where database security and access control are managed by the server.

Below are the steps to create a user (identity) in an eXtremeDB database, using the SQL interface available with eXtremeSQL.

1. Connect to the eXtremeDB Server

Start by connecting to the eXtremeDB SQL server using a suitable SQL command-line tool or a database client.

```ell

Example using mcsql (eXtremeDB SQL command-line tool)

mcsql -h -u -p ```

2. Use the
CREATE USER
Statement

You can create new database users with the

CREATE USER
SQL command. Only users with appropriate privileges (such as a user with the DBA role) can execute this command.

CREATE USER USERNAME IDENTIFIED BY 'password';

  • Replace
    USERNAME
    with the desired username.
  • Replace
    'password'
    with a suitably strong password for the user.

Example

CREATE USER analyst IDENTIFIED BY 'Tr0ub4dor&3';

3. Assigning Privileges

After creating a user, you should grant the necessary privileges.

For example, to allow the user to read data from all tables:

GRANT SELECT ON ALL TO analyst;

Or to grant more comprehensive privileges:

GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TO analyst;

4. Verify User Creation

To list all existing users (if your configuration permits):

SELECT * FROM systable_users;

Note: System catalog views and their names may vary based on the eXtremeDB SQL version and configuration.

Example: Full Script

``` -- Connect as DBA or another highly-privileged user first.

CREATE USER appuser IDENTIFIED BY 'securePassword1!'; GRANT SELECT, INSERT, UPDATE ON ALL TO appuser; ```


For further details, please refer to your version of the eXtremeDB SQL Reference Guide or contact your database administrator.

Installing the JDBC driver

This document outlines the process of downloading and installing the eXtremeDB JDBC driver for integration with Matillion Data Productivity Cloud. Because of licensing or redistribution restrictions, the eXtremeDB JDBC driver is not included with Matillion Data Productivity Cloud by default. To use this driver, you must manually acquire and install it as described below.

Step 1: Download the eXtremeDB JDBC Driver

  1. Visit the official eXtremeDB product page: https://www.mcobject.com/products/extremedb/
  2. Locate the JDBC driver section, and ensure you download a Type 4 JDBC driver. Type 4 drivers are preferred as they provide direct connectivity between Java applications and databases over standard network protocols, which ensures optimal compatibility with Matillion.
  3. Follow any prompts to register or accept licensing terms as required by McObject before downloading the driver package.

Step 2: Prepare the Driver for Installation

Once you have downloaded the eXtremeDB Type 4 JDBC driver archive (typically a

.jar
file), verify that you have the required permission to redistribute and utilize the driver in your environment, observing any license requirements from the eXtremeDB provider.

Step 3: Install the Driver into Matillion Data Productivity Cloud

Matillion Data Productivity Cloud requires manual upload of third-party JDBC drivers. Please refer to Matillion’s guide for uploading external drivers: Uploading External Drivers.

  1. Access your Matillion Data Productivity Cloud Agent environment where you wish to install the eXtremeDB JDBC driver.
  2. Follow the documented procedure to upload the downloaded JDBC driver
    .jar
    file into the platform.
  3. If prompted, restart the Matillion Agent service to complete the driver registration process.

Step 4: Configure and Use the Driver

After successful installation, you are ready to use the eXtremeDB JDBC driver within your Data Productivity Cloud environment. For details on connecting and querying databases with your newly uploaded driver, follow the official usage documentation: Database Query.

Be sure to supply the correct connection details (such as JDBC URL, user credentials, and any necessary advanced properties) for your eXtremeDB instance, as required in the Matillion configuration interfaces.

Checking network connectivity

To enable successful integration between Matillion Data Productivity Cloud and your eXtremeDB database, you must ensure that the eXtremeDB instance is configured to accept incoming connections, according to your deployment model:

Additionally, if your eXtremeDB database is referenced by a DNS hostname, ensure that either the Full SaaS agent or the Hybrid SaaS agent—depending on your deployment—can resolve the DNS address used. This is essential for establishing successful connections to the database.

Querying Data from an eXtremeDB Database

This guide provides technical instructions for querying data from an eXtremeDB database, including examples of SQL queries, data type conversion considerations between eXtremeDB and Snowflake, and best practices for initial and incremental data loads.

Querying eXtremeDB with SQL SELECT Statements

eXtremeDB supports a subset of SQL for querying data. Here are some sample queries:

``` -- Retrieve all rows from the Customers table SELECT * FROM Customers;

-- Retrieve specific columns from the Orders table SELECT OrderID, CustomerID, OrderDate FROM Orders;

-- Retrieve rows with a WHERE clause SELECT * FROM Products WHERE Category = 'Electronics';

-- Aggregate function usage SELECT Category, COUNT(*) AS ProductCount FROM Products GROUP BY Category; ```

Note: The actual SQL capabilities and syntax may depend on your eXtremeDB deployment and configuration. eXtremeDB also supports powerful native APIs in C/C++ and other languages if needed.

Data Type Conversion between eXtremeDB and Snowflake

When transferring data from eXtremeDB to Snowflake, be aware of possible datatype conversions. eXtremeDB uses its own set of types (e.g.,

int4
,
double
,
utf8_varchar
), which may require mapping to equivalent Snowflake types (
NUMBER
,
FLOAT
,
VARCHAR
, etc.).

Example datatype mapping:

eXtremeDB Type Snowflake Type
int4 NUMBER
double FLOAT
utf8_varchar(n) VARCHAR(n)
date DATE
time TIME

Ensure that transformation and casting logic is applied as needed when moving data.

Best Practices: Initial and Incremental Loads

A common and effective pattern is to perform a one-off initial load followed by ongoing incremental loads. Both loads can use the same Database Query component (e.g., within pipelines orchestrated by Matillion ETL, Talend, or other data integration platforms).

Initial Load Example

During the initial load, no filter clause is applied to the query, resulting in a full table/data extraction.

SELECT * FROM Orders;

Incremental Load Example

For ongoing loads, add a filter clause (such as a

WHERE
or
HAVING
) based on a column like
LastUpdated
, a logical identifier (such as an auto-increment key), or timestamp.

SELECT * FROM Orders WHERE LastUpdated > '2024-06-16 00:00:00';

Configure your ETL pipeline to dynamically substitute the last successful extraction timestamp (or ID) in the filter criteria for each run. Guidance on structuring incremental loads can be found in the Matillion Knowledge Base: Incremental Load / Data Replication Strategy.

Tip: Use the same Database Query component for both load types, avoiding duplication in your pipeline design—simply toggle query parameters or add filters as needed.

Data Integration Architecture

Loading data into Snowflake in advance of integration exemplifies the "divide and conquer" approach, where the data integration process is split into two distinct steps. This separation is a key advantage of the ELT (Extract, Load, Transform) architecture, as the raw data is first loaded into Snowflake and then transformed as needed for integration and analysis. Effective data integration also relies on robust data transformation, and the most efficient way to achieve this is through the use of data transformation pipelines. These pipelines automate and orchestrate the transformation process directly within Snowflake. By leveraging ELT architecture, organizations benefit from performing data transformation and integration tasks inside the Snowflake database itself, resulting in fast, on-demand, and highly scalable operations. This not only accelerates time-to-value but also eliminates the need for separate data processing infrastructure, leading to cost savings and operational efficiencies.

Get started today

Matillion's comprehensive data pipeline platform offers more than point solutions.