Compare commits
10 Commits
d5f0973654
...
23b8aaa56f
Author | SHA1 | Date | |
---|---|---|---|
|
23b8aaa56f | ||
|
734a16233a | ||
|
d38a01412f | ||
|
7d580a432c | ||
|
9d82239c65 | ||
|
35054ea604 | ||
|
ff09e45d43 | ||
|
0602adac21 | ||
|
8673a425ff | ||
|
d1c70d64c9 |
@ -146,7 +146,7 @@
|
|||||||
Specify the properties for the various Docker containers.
|
Specify the properties for the various Docker containers.
|
||||||
-->
|
-->
|
||||||
<mariadb.server.image.source>mariadb</mariadb.server.image.source>
|
<mariadb.server.image.source>mariadb</mariadb.server.image.source>
|
||||||
<version.mariadb.server>11.1.2</version.mariadb.server>
|
<version.mariadb.server>11.4.3</version.mariadb.server>
|
||||||
<mariadb.user>mysqluser</mariadb.user>
|
<mariadb.user>mysqluser</mariadb.user>
|
||||||
<mariadb.password>mysqlpw</mariadb.password>
|
<mariadb.password>mysqlpw</mariadb.password>
|
||||||
<mariadb.replica.user>mysqlreplica</mariadb.replica.user>
|
<mariadb.replica.user>mysqlreplica</mariadb.replica.user>
|
||||||
@ -168,7 +168,7 @@
|
|||||||
<docker.dbs>debezium/mariadb-server-test-database</docker.dbs>
|
<docker.dbs>debezium/mariadb-server-test-database</docker.dbs>
|
||||||
<docker.filter>${docker.dbs}</docker.filter>
|
<docker.filter>${docker.dbs}</docker.filter>
|
||||||
<docker.skip>false</docker.skip>
|
<docker.skip>false</docker.skip>
|
||||||
<docker.initimage>rm -f /etc/localtime; ln -s /usr/share/zoneinfo/US/Samoa /etc/localtime</docker.initimage>
|
<docker.initimage>rm -f /etc/localtime; ln -s /usr/share/zoneinfo/Pacific/Samoa /etc/localtime</docker.initimage>
|
||||||
</properties>
|
</properties>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
@ -92,15 +92,11 @@
|
|||||||
<artifactId>ehcache</artifactId>
|
<artifactId>ehcache</artifactId>
|
||||||
<version>${version.ehcache}</version>
|
<version>${version.ehcache}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- Ehcache JAXB implementation dependency -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sun.xml.bind</groupId>
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
<artifactId>jaxb-core</artifactId>
|
<artifactId>jaxb-runtime</artifactId>
|
||||||
<version>2.3.0</version>
|
<version>${version.jaxb.implementation}</version>
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.sun.xml.bind</groupId>
|
|
||||||
<artifactId>jaxb-impl</artifactId>
|
|
||||||
<version>2.3.1</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Testing -->
|
<!-- Testing -->
|
||||||
@ -198,7 +194,6 @@
|
|||||||
<adapter.name>logminer</adapter.name>
|
<adapter.name>logminer</adapter.name>
|
||||||
<log.mining.buffer.type.name>memory</log.mining.buffer.type.name>
|
<log.mining.buffer.type.name>memory</log.mining.buffer.type.name>
|
||||||
<log.mining.read.only.mode>false</log.mining.read.only.mode>
|
<log.mining.read.only.mode>false</log.mining.read.only.mode>
|
||||||
<version.ehcache>3.9.6</version.ehcache>
|
|
||||||
<version.oracle.server>19.3.0</version.oracle.server>
|
<version.oracle.server>19.3.0</version.oracle.server>
|
||||||
|
|
||||||
<protobuf.output.directory>${project.basedir}/generated-sources</protobuf.output.directory>
|
<protobuf.output.directory>${project.basedir}/generated-sources</protobuf.output.directory>
|
||||||
|
@ -117,6 +117,10 @@ private CacheManager createCacheManager(OracleConnectorConfig connectorConfig) {
|
|||||||
|
|
||||||
// Create the full XML configuration based on configuration template
|
// Create the full XML configuration based on configuration template
|
||||||
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
|
|
||||||
|
// Required for propagating namespace info
|
||||||
|
factory.setNamespaceAware(true);
|
||||||
|
|
||||||
final DocumentBuilder builder = factory.newDocumentBuilder();
|
final DocumentBuilder builder = factory.newDocumentBuilder();
|
||||||
|
|
||||||
final String xmlData = getConfigurationWithSubstitutions(ehcacheConfig);
|
final String xmlData = getConfigurationWithSubstitutions(ehcacheConfig);
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<config xmlns='http://www.ehcache.org/v3'>
|
<config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://www.ehcache.org/v3' xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd">
|
||||||
|
|
||||||
|
<default-serializers>
|
||||||
|
<serializer type="io.debezium.connector.oracle.logminer.processor.ehcache.EhcacheTransaction">
|
||||||
|
io.debezium.connector.oracle.logminer.processor.ehcache.serialization.EhcacheTransactionSerializer
|
||||||
|
</serializer>
|
||||||
|
<serializer type="io.debezium.connector.oracle.logminer.events.LogMinerEvent">
|
||||||
|
io.debezium.connector.oracle.logminer.processor.ehcache.serialization.LogMinerEventSerializer
|
||||||
|
</serializer>
|
||||||
|
</default-serializers>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Defines the ehcache global configuration
|
Defines the ehcache global configuration
|
||||||
@ -43,13 +52,4 @@
|
|||||||
${log.mining.buffer.ehcache.events.config}
|
${log.mining.buffer.ehcache.events.config}
|
||||||
</cache>
|
</cache>
|
||||||
|
|
||||||
<default-serializers>
|
|
||||||
<serializer type="io.debezium.connector.oracle.logminer.processor.ehcache.EhcacheTransaction">
|
|
||||||
io.debezium.connector.oracle.logminer.processor.ehcache.serialization.EhcacheTransactionSerializer
|
|
||||||
</serializer>
|
|
||||||
<serializer type="io.debezium.connector.oracle.logminer.events.LogMinerEvent">
|
|
||||||
io.debezium.connector.oracle.logminer.processor.ehcache.serialization.LogMinerEventSerializer
|
|
||||||
</serializer>
|
|
||||||
</default-serializers>
|
|
||||||
|
|
||||||
</config>
|
</config>
|
@ -328,7 +328,7 @@ protected StructGenerator createValueGenerator(Schema schema, TableId tableId, L
|
|||||||
result.put(fields[i], value);
|
result.put(fields[i], value);
|
||||||
}
|
}
|
||||||
catch (final Exception e) {
|
catch (final Exception e) {
|
||||||
Column col = columns.get(i);
|
Column col = columnsThatShouldBeAdded.get(i);
|
||||||
String message = "Failed to properly convert data value for '{}.{}' of type {}";
|
String message = "Failed to properly convert data value for '{}.{}' of type {}";
|
||||||
if (eventConvertingFailureHandlingMode == null) {
|
if (eventConvertingFailureHandlingMode == null) {
|
||||||
Loggings.logErrorAndTraceRecord(LOGGER, row,
|
Loggings.logErrorAndTraceRecord(LOGGER, row,
|
||||||
|
@ -1719,15 +1719,16 @@ renameUser
|
|||||||
;
|
;
|
||||||
|
|
||||||
revokeStatement
|
revokeStatement
|
||||||
: REVOKE privelegeClause (',' privelegeClause)*
|
: REVOKE ifExists? (privelegeClause | uid) (',' privelegeClause | uid)*
|
||||||
ON
|
ON
|
||||||
privilegeObject=(TABLE | FUNCTION | PROCEDURE)?
|
privilegeObject=(TABLE | FUNCTION | PROCEDURE)?
|
||||||
privilegeLevel
|
privilegeLevel
|
||||||
FROM userName (',' userName)* #detailRevoke
|
FROM userName (',' userName)* (IGNORE UNKNOWN USER)? #detailRevoke
|
||||||
| REVOKE ALL PRIVILEGES? ',' GRANT OPTION
|
| REVOKE ifExists? ALL PRIVILEGES? ',' GRANT OPTION
|
||||||
FROM userName (',' userName)* #shortRevoke
|
FROM userName (',' userName)* (IGNORE UNKNOWN USER)? #shortRevoke
|
||||||
| REVOKE (userName | uid) (',' (userName | uid))*
|
| REVOKE ifExists? (userName | uid) (',' (userName | uid))*
|
||||||
FROM (userName | uid) (',' (userName | uid))* #roleRevoke
|
FROM (userName | uid) (',' (userName | uid))*
|
||||||
|
(IGNORE UNKNOWN USER)? #roleRevoke
|
||||||
;
|
;
|
||||||
|
|
||||||
revokeProxy
|
revokeProxy
|
||||||
|
@ -99,6 +99,8 @@ REVOKE reader FROM 'mysqluser'@'localhost'
|
|||||||
REVOKE reader FROM topreader
|
REVOKE reader FROM topreader
|
||||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'retool'@
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'retool'@
|
||||||
REVOKE `cloudsqlsuperuser`@`%` FROM `sarmonitoring`@`10.90.29.%`
|
REVOKE `cloudsqlsuperuser`@`%` FROM `sarmonitoring`@`10.90.29.%`
|
||||||
|
REVOKE IF EXISTS SELECT ON test.t1 FROM jerry@localhost;
|
||||||
|
REVOKE IF EXISTS Bogus ON test FROM jerry@localhost IGNORE UNKNOWN USER;
|
||||||
|
|
||||||
-- MariaDB
|
-- MariaDB
|
||||||
GRANT BINLOG_MONITOR ON *.* TO 'mysqluser'@'localhost'
|
GRANT BINLOG_MONITOR ON *.* TO 'mysqluser'@'localhost'
|
||||||
|
@ -45,7 +45,7 @@ public void initialize() throws InterruptedException {
|
|||||||
try {
|
try {
|
||||||
container.copyFileToContainer(Transferable.of(Files.readAllBytes(initScript)), DB_INIT_SCRIPT_PATH_CONTAINER);
|
container.copyFileToContainer(Transferable.of(Files.readAllBytes(initScript)), DB_INIT_SCRIPT_PATH_CONTAINER);
|
||||||
container.execInContainer(
|
container.execInContainer(
|
||||||
"/opt/mssql-tools/bin/sqlcmd", "-U", "sa", "-P", DATABASE_SQLSERVER_SA_PASSWORD, "-i", DB_INIT_SCRIPT_PATH_CONTAINER);
|
"/opt/mssql-tools18/bin/sqlcmd", "-U", "sa", "-P", DATABASE_SQLSERVER_SA_PASSWORD, "-i", DB_INIT_SCRIPT_PATH_CONTAINER, "-C", "-N", "o");
|
||||||
}
|
}
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
@ -54,7 +54,7 @@ public void initialize() throws InterruptedException {
|
|||||||
ocp.pods().inNamespace(project).withName(pod.getMetadata().getName())
|
ocp.pods().inNamespace(project).withName(pod.getMetadata().getName())
|
||||||
.file(DB_INIT_SCRIPT_PATH_CONTAINER)
|
.file(DB_INIT_SCRIPT_PATH_CONTAINER)
|
||||||
.upload(initScript);
|
.upload(initScript);
|
||||||
ocpUtils.executeCommand(deployment, project, true, "/opt/mssql-tools/bin/sqlcmd", "-U", "sa", "-P", DATABASE_SQLSERVER_SA_PASSWORD, "-i",
|
ocpUtils.executeCommand(deployment, project, true, "/opt/mssql-tools18/bin/sqlcmd", "-U", "sa", "-P", DATABASE_SQLSERVER_SA_PASSWORD, "-i",
|
||||||
DB_INIT_SCRIPT_PATH_CONTAINER);
|
DB_INIT_SCRIPT_PATH_CONTAINER, "-C", "-N", "o");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
** xref:configuration/topic-auto-create-config.adoc[Customizing Topic Auto-Creation]
|
** xref:configuration/topic-auto-create-config.adoc[Customizing Topic Auto-Creation]
|
||||||
** xref:configuration/signalling.adoc[Sending Signals to Debezium]
|
** xref:configuration/signalling.adoc[Sending Signals to Debezium]
|
||||||
** xref:configuration/notification.adoc[Receive notifications from Debezium]
|
** xref:configuration/notification.adoc[Receive notifications from Debezium]
|
||||||
* Connectors
|
* Source Connectors
|
||||||
** xref:connectors/index.adoc[Overview]
|
** xref:connectors/index.adoc[Overview]
|
||||||
** xref:connectors/mysql.adoc[MySQL]
|
** xref:connectors/mysql.adoc[MySQL]
|
||||||
** xref:connectors/mariadb.adoc[MariaDB]
|
** xref:connectors/mariadb.adoc[MariaDB]
|
||||||
@ -21,8 +21,10 @@
|
|||||||
** xref:connectors/cassandra.adoc[Cassandra]
|
** xref:connectors/cassandra.adoc[Cassandra]
|
||||||
** xref:connectors/vitess.adoc[Vitess]
|
** xref:connectors/vitess.adoc[Vitess]
|
||||||
** xref:connectors/spanner.adoc[Spanner]
|
** xref:connectors/spanner.adoc[Spanner]
|
||||||
** xref:connectors/jdbc.adoc[JDBC]
|
|
||||||
** xref:connectors/informix.adoc[Informix]
|
** xref:connectors/informix.adoc[Informix]
|
||||||
|
* Sink Connectors
|
||||||
|
** xref:connectors/index-sink.adoc[Overview]
|
||||||
|
** xref:connectors/jdbc.adoc[JDBC]
|
||||||
* Transformations
|
* Transformations
|
||||||
** xref:transformations/index.adoc[Overview]
|
** xref:transformations/index.adoc[Overview]
|
||||||
** xref:transformations/topic-routing.adoc[Topic Routing]
|
** xref:transformations/topic-routing.adoc[Topic Routing]
|
||||||
|
11
documentation/modules/ROOT/pages/connectors/index-sink.adoc
Normal file
11
documentation/modules/ROOT/pages/connectors/index-sink.adoc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
= Sink Connectors
|
||||||
|
|
||||||
|
{prodname} provides sink connectors that can consume events from sources such as Apache Kafka topics.
|
||||||
|
A sink connector standardizes the format of the data, and then persists the event data to a configured sink repository.
|
||||||
|
Other systems, applications, or users can then access the events from the data sink.
|
||||||
|
|
||||||
|
Because the sink connector applies a consistent structure to the event data that it consumes, downstream applications that read from the data sink can more easily interpret and process that data.
|
||||||
|
|
||||||
|
Currently, {prodname} provides the following sink connectors:
|
||||||
|
|
||||||
|
* xref:connectors/jdbc.adoc[JDBC]
|
@ -1,6 +1,7 @@
|
|||||||
= Connectors
|
= Source Connectors
|
||||||
|
|
||||||
{prodname}'s goal is to build up a library of connectors that capture changes from a variety of database management systems and produce events with very similar structures, making it far easier for your applications to consume and respond to the events regardless of where the changes originated.
|
{prodname} provides a growing library of source connectors that capture changes from a variety of database management systems.
|
||||||
|
Each connector produces change events with very similar structures, making it easy for your applications to consume and respond to events, regardless of their origin.
|
||||||
|
|
||||||
We currently have the following connectors:
|
We currently have the following connectors:
|
||||||
|
|
||||||
@ -13,7 +14,6 @@ We currently have the following connectors:
|
|||||||
* xref:connectors/cassandra.adoc[Cassandra]
|
* xref:connectors/cassandra.adoc[Cassandra]
|
||||||
* xref:connectors/vitess.adoc[Vitess] (Incubating)
|
* xref:connectors/vitess.adoc[Vitess] (Incubating)
|
||||||
* xref:connectors/spanner.adoc[Spanner]
|
* xref:connectors/spanner.adoc[Spanner]
|
||||||
* xref:connectors/jdbc.adoc[JDBC] (Incubating)
|
|
||||||
* xref:connectors/informix.adoc[Informix] (Incubating)
|
* xref:connectors/informix.adoc[Informix] (Incubating)
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
|
@ -24,6 +24,18 @@ ifdef::community[]
|
|||||||
toc::[]
|
toc::[]
|
||||||
endif::community[]
|
endif::community[]
|
||||||
|
|
||||||
|
ifdef::product[]
|
||||||
|
[IMPORTANT]
|
||||||
|
====
|
||||||
|
The {prodname} connector for MariaDB is a Technology Preview feature only.
|
||||||
|
Technology Preview features are not supported with Red{nbsp}Hat production service level agreements (SLAs) and might not be functionally complete.
|
||||||
|
Red{nbsp}Hat does not recommend using them in production.
|
||||||
|
These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
|
||||||
|
|
||||||
|
For more information about the support scope of Red{nbsp}Hat Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
|
||||||
|
====
|
||||||
|
endif::product[]
|
||||||
|
|
||||||
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=mariadb-mysql-intro]
|
include::{partialsdir}/modules/all-connectors/shared-mariadb-mysql.adoc[leveloffset=+1,tags=mariadb-mysql-intro]
|
||||||
|
|
||||||
// Type: assembly
|
// Type: assembly
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
To initiate an incremental snapshot, you can send an {link-prefix}:{link-signalling}#debezium-signaling-ad-hoc-snapshots[ad hoc snapshot signal] to the signaling {data-collection} on the source database.
|
To initiate an incremental snapshot, you can send an {link-prefix}:{link-signalling}#debezium-signaling-ad-hoc-incremental-snapshots[ad hoc snapshot signal] to the signaling {data-collection} on the source database.
|
||||||
|
|
||||||
You submit a signal to the signaling {data-collection} by using the MongoDB `insert()` method.
|
You submit a signal to the signaling {data-collection} by using the MongoDB `insert()` method.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
To initiate an incremental snapshot, you can send an {link-prefix}:{link-signalling}#debezium-signaling-ad-hoc-snapshots[ad hoc snapshot signal] to the signaling {data-collection} on the source database.
|
To initiate an incremental snapshot, you can send an {link-prefix}:{link-signalling}#debezium-signaling-ad-hoc-incremental-snapshots[ad hoc snapshot signal] to the signaling {data-collection} on the source database.
|
||||||
You submit snapshot signals as SQL `INSERT` queries.
|
You submit snapshot signals as SQL `INSERT` queries.
|
||||||
|
|
||||||
After {prodname} detects the change in the signaling {data-collection}, it reads the signal, and runs the requested snapshot operation.
|
After {prodname} detects the change in the signaling {data-collection}, it reads the signal, and runs the requested snapshot operation.
|
||||||
|
5
pom.xml
5
pom.xml
@ -167,6 +167,11 @@
|
|||||||
<version.infinispan>15.0.5.Final</version.infinispan>
|
<version.infinispan>15.0.5.Final</version.infinispan>
|
||||||
<version.infinispan.protostream>5.0.4.Final</version.infinispan.protostream>
|
<version.infinispan.protostream>5.0.4.Final</version.infinispan.protostream>
|
||||||
|
|
||||||
|
<!-- EhCache Specific Versions -->
|
||||||
|
<version.ehcache>3.9.6</version.ehcache>
|
||||||
|
<!-- Must be aligned with the version.jaxb of the JAXB-API -->
|
||||||
|
<version.jaxb.implementation>2.3.1</version.jaxb.implementation>
|
||||||
|
|
||||||
<!-- RocketMQ version for RocketMQ storage and Server sink -->
|
<!-- RocketMQ version for RocketMQ storage and Server sink -->
|
||||||
<version.rocketmq>5.1.4</version.rocketmq>
|
<version.rocketmq>5.1.4</version.rocketmq>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user