Limitations
While MariaDB Exa (powered by Exasol) provides exceptional performance for analytical workloads, there are several functional and operational limitations to be aware of when integrating it with MariaDB, MaxScale, and Kafka Connect for CDC-based replication.
Table and Schema Management
Pre-creation required: All target tables must be manually created in Exasol before data replication begins. The connector does not auto-create or alter tables.
Schema evolution unsupported: If a new table is added in MariaDB that matches an existing topic pattern, you must manually create the table in Exasol and restart the connector for the change to take effect.
Primary key requirement: Every table being captured by CDC must define a primary key. Tables without primary keys are not supported by the JDBC Sink for upsert operations.
Per-table connectors: Each table requires its own sink connector configuration for reliable data ingestion.
CDC and Replication Behavior
Deletes and key modes: In the sink connector configurations, when delete.enabled=true, the property primary.key.mode must be set to record_key.
ColumnStore tables not replicated and not supported: DML operations on ColumnStore tables are not written to binary logs. Only the initial snapshot (inventory phase) is transferred — subsequent changes are not replicated.
Connector state sensitivity:
If the connector loses state (e.g., due to recreation or topic deletion), previously known table schemas may not be recognized, causing errors like:
DebeziumException: Encountered change event for table <table> whose schema isn't known to this connector
If the connector loses state (e.g., due to recreation or topic deletion), previously known table schemas may not be recognized, causing errors like:
Commit of offsets timed out [WorkerSinkTask]
SQL and DDL Feature Gaps
Unsupported Schema Features
The following schema features are not supported:
COLLATE
clause.Character set
LATIN1
.
Unsupported Data Types
The following data types are not supported:
DATETIME
: Convert toTIMESTAMP
.LONGTEXT
: Convert toVARCHAR(2000000)
. Note: ~1/1000th the capacityENUM
: Convert toVARCHAR
.
Unsupported AUTO_INCREMENT
AUTO_INCREMENT
: Exasol usesIDENTITY
columns instead.These can contain gaps and are not guaranteed to be unique.
The counter can be changed with
ALTER TABLE ... MODIFY COLUMN ... IDENTITY
.
Unsupported Other Features
ON UPDATE
clauses.Triggers and stored procedures.
SQL Syntax Differences
Reserved Words
Exasol reserves over 460 keywords. Common words like schema, hour, and year must be quoted with double quotes ("column") — not backticks (`). Example:
SELECT "year", "schema" FROM my_table;
You can list all reserved words via:
SELECT * FROM EXA_SQL_KEYWORDS WHERE RESERVED = TRUE;
SET Statements
The following constructs are not supported:
SET x := y;
SET x=1, y=2;
Use DEFINE instead:
DEFINE x=1;
DEFINE y=2;
Variable Assignment From SELECT
Not supported:
SELECT 1, 2 INTO @a, @b FROM dual;
Instead, use:
DEFINE x = (SELECT 1 FROM dual);
Integer Precision Syntax
When defining integers, omit display width:
-- Incorrect
INT(8)
[42000] syntax error, unexpected '(', expecting ',' or ')'
-- Correct
INT
Data Import and Null Handling
NULL Conversions
MariaDB represents NULL
values as \N
in export files. Exasol TIMESTAMP
columns do not accept \N
— they must be converted explicitly (e.g., replace \N
with NULL
during import).
Error on Mismatched Schema
When table definitions differ between source and Exasol, connector startup may fail with an error:
Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
due to: Unable to resolve name [com.exasol.hibernate.dialect.ExasolDialect]
This page is: Copyright © 2025 MariaDB. All rights reserved.
Last updated
Was this helpful?