Search in sources :

Example 1 with LogEventConvert

use of com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert in project canal by alibaba.

the class AbstractMysqlEventParser method buildParser.

protected BinlogParser buildParser() {
    LogEventConvert convert = new LogEventConvert();
    if (eventFilter != null && eventFilter instanceof AviaterRegexFilter) {
        convert.setNameFilter((AviaterRegexFilter) eventFilter);
    }
    if (eventBlackFilter != null && eventBlackFilter instanceof AviaterRegexFilter) {
        convert.setNameBlackFilter((AviaterRegexFilter) eventBlackFilter);
    }
    convert.setCharset(connectionCharset);
    convert.setFilterQueryDcl(filterQueryDcl);
    convert.setFilterQueryDml(filterQueryDml);
    convert.setFilterQueryDdl(filterQueryDdl);
    convert.setFilterRows(filterRows);
    convert.setFilterTableError(filterTableError);
    return convert;
}
Also used : AviaterRegexFilter(com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter) LogEventConvert(com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert)

Example 2 with LogEventConvert

use of com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert in project canal by alibaba.

the class LocalBinlogEventParser method preDump.

@Override
protected void preDump(ErosaConnection connection) {
    metaConnection = buildMysqlConnection();
    try {
        metaConnection.connect();
    } catch (IOException e) {
        throw new CanalParseException(e);
    }
    tableMetaCache = new TableMetaCache(metaConnection);
    ((LogEventConvert) binlogParser).setTableMetaCache(tableMetaCache);
}
Also used : LogEventConvert(com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert) IOException(java.io.IOException) TableMetaCache(com.alibaba.otter.canal.parse.inbound.mysql.dbsync.TableMetaCache) CanalParseException(com.alibaba.otter.canal.parse.exception.CanalParseException)

Example 3 with LogEventConvert

use of com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert in project canal by alibaba.

the class MysqlEventParser method preDump.

protected void preDump(ErosaConnection connection) {
    if (!(connection instanceof MysqlConnection)) {
        throw new CanalParseException("Unsupported connection type : " + connection.getClass().getSimpleName());
    }
    if (binlogParser != null && binlogParser instanceof LogEventConvert) {
        metaConnection = (MysqlConnection) connection.fork();
        try {
            metaConnection.connect();
        } catch (IOException e) {
            throw new CanalParseException(e);
        }
        if (supportBinlogFormats != null && supportBinlogFormats.length > 0) {
            BinlogFormat format = ((MysqlConnection) metaConnection).getBinlogFormat();
            boolean found = false;
            for (BinlogFormat supportFormat : supportBinlogFormats) {
                if (supportFormat != null && format == supportFormat) {
                    found = true;
                    break;
                }
            }
            if (!found) {
                throw new CanalParseException("Unsupported BinlogFormat " + format);
            }
        }
        if (supportBinlogImages != null && supportBinlogImages.length > 0) {
            BinlogImage image = ((MysqlConnection) metaConnection).getBinlogImage();
            boolean found = false;
            for (BinlogImage supportImage : supportBinlogImages) {
                if (supportImage != null && image == supportImage) {
                    found = true;
                    break;
                }
            }
            if (!found) {
                throw new CanalParseException("Unsupported BinlogImage " + image);
            }
        }
        tableMetaCache = new TableMetaCache(metaConnection);
        ((LogEventConvert) binlogParser).setTableMetaCache(tableMetaCache);
    }
}
Also used : BinlogFormat(com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.BinlogFormat) BinlogImage(com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.BinlogImage) LogEventConvert(com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert) IOException(java.io.IOException) TableMetaCache(com.alibaba.otter.canal.parse.inbound.mysql.dbsync.TableMetaCache) CanalParseException(com.alibaba.otter.canal.parse.exception.CanalParseException)

Aggregations

LogEventConvert (com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert)3 CanalParseException (com.alibaba.otter.canal.parse.exception.CanalParseException)2 TableMetaCache (com.alibaba.otter.canal.parse.inbound.mysql.dbsync.TableMetaCache)2 IOException (java.io.IOException)2 AviaterRegexFilter (com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter)1 BinlogFormat (com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.BinlogFormat)1 BinlogImage (com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.BinlogImage)1