Commit Graph

6023 Commits

Author SHA1 Message Date
Randall Hauch
7ce096adaa Merge pull request #40 from rhauch/dbz-29b
DBZ-29 Refactored ColumnMappers
2016-05-12 12:59:33 -05:00
Randall Hauch
b1e6eb1028 DBZ-29 Refactored ColumnMappers and enabled ColumnMapper impls to add parameters to the Kafka Connect Schema. 2016-05-12 12:26:04 -05:00
Randall Hauch
18995abfbd Merge pull request #38 from rhauch/dbz-29
DBZ-29 Changed MySQL connector to be able to hide, truncate, and mask specific columns
2016-05-12 08:27:15 -05:00
Randall Hauch
ff9d0fc240 DBZ-29 Changed MySQL connector to be able to hide, truncate, and mask specific columns
Changed the MySQL connector to use comma-separated lists of regular expressions for the database
and table whitelist/blacklists. Literals are still accepted and will match fully-qualified table names,
although the '.' character used as a delimiter is also a special character in regular expressions and
therefore may need to be escaped with a double backslash ('\\') to more carefully match fully-qualified
table names.

Added several new configuration properties for the MySQL connector that instruct it to hide,
truncate, and/or mask certain columns. The properties' values are all lists of regular expressions
or literal fully-qualified column names. For example, the following configuration property:

    column.blacklist=server.users.picture,server.users.other

will cause the connector to leave out of change event messages for the `server.users` table those
fields that correspond to the `picture` and `others` columns. This capability can be used to
This capability can be used to prevent dissemination of sensitive information in the change event
stream.

An alternative to blacklisting is masking. The following configuration property:

    column.mask.with.10.chars=server\\.users\\.(\\w*email)

will cause the connector to mask in the change event messages for the `server.users` table
all values for columns whose name ends in `email`. The values will be replaced in this case with
a constant string of 10 asterisk ('*') characters, even when the email value is null.
This capability can also be used to prevent dissemination of sensitive information in the change event
stream.

Another option is to truncate string values for specific columns. The following configuration
property:

    column.truncate.to.120.chars=server[.]users[.](description|biography)

will cause the connector to truncate to at most 120 characters the values of the `description` and
`biography` columns in the change event messages for the `server.users` table. Although this example
used a limit of 120 characters, any positive length can be specified; separate properties should
be used when different lengths are required. Note how the '.' delimiter in the fully-qualified names
is escaped since that same character is a special character in regular expressions. This capability
can be used to reduce the size of change event messages.
2016-05-11 15:57:06 -05:00
Randall Hauch
5c83d40187 Merge pull request #37 from christian-posta/ceposta-commit-parse-errors
DBZ-48 Cannot parse COMMIT and flush statements
2016-05-06 01:41:02 +02:00
Christian Posta
8b736ef654 DBZ-48 Cannot parse COMMIT and flush statements 2016-05-05 15:36:24 -07:00
Randall Hauch
56cb15cb3f Merge pull request #36 from christian-posta/hack-it
DBZ-42 Use custom mysql images with custom config and startup scripts for integration tests
2016-04-26 17:14:30 -05:00
Christian Posta
ab2cdce279 DBZ-42 inherit from mysql images and add the custom config and startup scripts useful for integration testing 2016-04-26 08:49:27 -07:00
Randall Hauch
cfc795cd75 Merge pull request #34 from rhauch/dbz-38
DBZ-38 Changed the listening framework of the DDL parser
2016-04-13 07:28:47 -05:00
Randall Hauch
1fcb4b02cf DBZ-38 Changed DROP VIEW and TABLE to include single-table statements in events
Drop table/view statements that involve more than one table generate one event for each table/view. Previously, each of those statements had the original multi-table/view statement. Now, each event has a statement that applies to only that table (generated from the original with all the same clauses).
2016-04-12 18:18:13 -05:00
Randall Hauch
b1e428c986 DBZ-38 Adjusted how events are generated for RENAME TO statements
The previous change did not correctly capture the statements for a `RENAME TO` that renamed multiple tables, so fixed the code so that it generates a single `RENAME TO` for each table rename.
2016-04-12 17:58:07 -05:00
David Chen
eeff81b65d MySqlDdlParser should support "RENAME TABLE blue_table TO red_table, orange_table TO green_table, black_table TO white_table;" form. (#1) 2016-04-12 17:40:00 -05:00
Randall Hauch
5b30568650 DBZ-38 Changed the listening framework of the DDL parser
Refactored the mechanism by which components can listen to the activities of a DDL parser. The new approach
should be significantly more flexible for additional types of DDL events while making it easier to maintain
backward compatibility. It also will enable passing event-specific information on each DDL event.
2016-04-12 11:00:02 -05:00
Randall Hauch
75955945ee Merge pull request #33 from rhauch/dbz-38
DBZ-38 Changed the DDL parser framework to notify listeners as statements are applied
2016-04-11 15:44:39 -05:00
Randall Hauch
137b9f6d4d DBZ-38 Changed the DDL parser framework to notify listeners as statements are applied. 2016-04-11 15:16:04 -05:00
Randall Hauch
453a3730f6 Corrected Maven Central badge in README 2016-03-17 22:50:02 -05:00
Randall Hauch
8f5487b2c0 [maven-release-plugin] prepare for next development iteration 2016-03-17 16:28:40 -05:00
Randall Hauch
c2b8ac50ae [maven-release-plugin] prepare release v0.1.0 2016-03-17 16:28:40 -05:00
Randall Hauch
43f79aad5e Added missing version element to modules 2016-03-17 16:14:17 -05:00
Randall Hauch
fa4ae33ba2 Removed unused modules 2016-03-17 16:13:50 -05:00
Randall Hauch
eea175a5aa DBZ-32 Corrected assembly plugin descriptor in parent POM 2016-03-17 16:04:53 -05:00
Randall Hauch
b5945a24ec DBZ-32 Corrected assembly dependencies 2016-03-17 15:58:27 -05:00
Randall Hauch
fc2c83e406 Merge pull request #32 from rhauch/dbz-32
DBZ-32 Changed Maven build to support releasing to Maven Central via Sonatype OSSRH
2016-03-17 15:30:42 -05:00
Randall Hauch
0867bd7961 DBZ-32 Changed Maven build to support releasing to Maven Central via the Sonatype OSSRH. 2016-03-17 15:16:31 -05:00
Randall Hauch
026c92f5c6 Merge pull request #31 from rhauch/dbz-15
DBZ-15 Fixed several issues discovered during testing
2016-03-17 12:44:54 -05:00
Randall Hauch
0da37c8aee DBZ-15 Fixed a problem when handling deleted rows, since the generated record should not have a value schema when the value is null. 2016-03-17 12:34:53 -05:00
Randall Hauch
5a002dbf62 DBZ-15 Cached converters are now dropped upon log rotation. 2016-03-17 11:03:28 -05:00
Randall Hauch
91d200df51 DBZ-15 Removed some of the unnecessary JARs from the MySQL connector plugin kit 2016-03-17 11:03:27 -05:00
Randall Hauch
74c5adcc8d Merge pull request #30 from rhauch/dbz-30
DBZ-30 Changed the MySQL connector to include all columns in the record value
2016-03-04 13:06:17 -06:00
Randall Hauch
4998325de7 DBZ-30 Changed the MySQL connector to include all columns in the record value 2016-03-04 10:51:14 -06:00
Randall Hauch
5c8e68d6d2 Merge pull request #29 from rhauch/dbz-28
DBZ-28 Corrected MySQL connector's behavior for representing deletes
2016-03-04 10:37:36 -06:00
Randall Hauch
fd3a0d992f Change Gitter notifications for Travis builds to always report successsful builds. 2016-03-04 09:59:49 -06:00
Randall Hauch
235fa12ead DBZ-28 Fix formatting 2016-03-04 09:52:02 -06:00
Randall Hauch
2d99cb264c DBZ-28 Prevent the MySQL connector from sending a record with a null key and null value
There is no point in sending a record that contains a null key and null value. While this may not be likely for insert or update cases (since at least the value should not be null), it is possible when a row is deleted (meaning the record value will be null) but the table has no primary/unique key (meaning the record key will be null).
2016-03-04 09:51:32 -06:00
Randall Hauch
64d0e0b458 DBZ-28 Corrected MySQL connector's behavior for representing deletes
Corrects a bug where a deleted row was written to Kafka in the same as an insert, making them indistinguishable. Now, a deleted row is written with the row's primary/unique key as the record key, and a null record value. Note that if the row has no primary/unique key, no record is written to Kafka.
2016-03-04 09:48:52 -06:00
Randall Hauch
b6b982d711 Merge pull request #28 from rhauch/dbz-26
DBZ-26 Corrected how MySQL table info is recovered from db history upon connector restart
2016-03-03 16:11:41 -06:00
Randall Hauch
60d3307597 DBZ-26 Corrected how table info is recovered from the database history. 2016-03-03 15:27:39 -06:00
Randall Hauch
9034e26d1e DBZ-26 Corrected the embedded connector framework to enable stopping. Also improved logging statements. 2016-03-03 15:27:11 -06:00
Randall Hauch
26860121b7 Merge pull request #27 from rhauch/dbz-26
DBZ-26 Corrected the MySQL connector to not fail when it comes across an unknown table
2016-03-03 12:57:37 -06:00
Randall Hauch
5ba6da702d DBZ-26 Corrected the MySQL connector to not fail when it comes across an unknown table
Depending upon how the source MySQL database is configured, its binlog might not contain all the history for the database. In particular, it might not have the CREATE TABLE statements for some tables, which are then "unknown" to the connector. When the connector reads the binlog and comes across a change event for a row in one of those "unknown" tables, it previously resulted in a NPE. With this change, the condition results in a warning message in the log, and all subsequent change events on that table will be skipped.
2016-03-03 12:10:11 -06:00
Randall Hauch
5a32da3fac DBZ-26 Corrected how SourceInfo recovers persistent representations to better handle various converter capabilities 2016-03-03 12:06:33 -06:00
Randall Hauch
d051c08382 Merge pull request #23 from criccomini/fix-build-version-path
DBZ-25 Fix build version path
2016-03-02 19:19:57 -06:00
Chris Riccomini
b4d51c8946 DBZ-25 Properly set build version instead of build properties file path for MySQL Module 2016-03-02 16:41:57 -08:00
Randall Hauch
56ad3358ce Merge pull request #26 from rhauch/fix-contribute
Added more detail and fixed a few minor errors in the CONTRIBUTE document
2016-03-02 11:14:21 -06:00
Randall Hauch
219e01a90e Added more detail and fixed a few minor errors in the CONTRIBUTE document 2016-03-02 11:11:59 -06:00
Randall Hauch
7261e9ed76 Merge pull request #25 from rhauch/add-gitter-links-to-readme
Used README badges for Gitter chat rooms and Google Groups
2016-03-02 10:46:46 -06:00
Randall Hauch
06579a6e87 Used README badges for Gitter chat rooms and Google Groups 2016-03-02 10:45:32 -06:00
Randall Hauch
1fac65c9da Merge pull request #24 from criccomini/fix-typo
Fix missing 'e' in README 'available' word.
2016-03-02 10:12:41 -06:00
Chris Riccomini
32dff92853 Fix missing 'e' in README 'available' word. 2016-03-02 08:04:19 -08:00
Randall Hauch
6648761d7a Merge pull request #22 from criccomini/master
Add Google group to README
2016-03-02 09:58:35 -06:00