flink-SQL变更日志打印
基于flink-1.15.4
很多时候会进行 SQL 变量调试
public class MongoDbEmbededPrinterCdc {
/**
* flink-cdc-mongo https://ververica.github.io/flink-cdc-connectors/master/content/connectors/mongodb-cdc.html#data-type-mapping
* https://github.com/ververica/flink-cdc-connectors/blob/master/docs/content/connectors/mongodb-cdc(ZH).md
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
// 数据源表
String sourceDDL =
"CREATE TABLE `t_article_source` (\n" +
" `_id` STRING,\n" +
" `articleId` INT,\n" +
" `title` STRING,\n" +
" `tags` ARRAY<String>,\n"+
" `authors` ARRAY<ROW<name STRING, address STRING>>,\n"+
" PRIMARY KEY (`_id`) NOT ENFORCED\n" + //mongo 主键 Primary key must be _id field
") WITH (\n" +
" 'connector' = 'mongodb-cdc',\n" +
" 'hosts' = '172.1x.0.xx:27017',\n" + //多个 host
" 'username' = 'flinkuser',\n" +
" 'password' = 'flinkpw',\n" +
" 'database' = 'test',\n" +
" 'collection' = 't_article_source'\n" +
")";
tableEnv.executeSql(sourceDDL);
Table table = tableEnv.from("t_article_source");
tableEnv.toChangelogStream(table).print("mongo");
env.execute("abc");
}
}
log4j2.xml 日志:
<?xml version="1.0" encoding="UTF-8"?>
<configuration monitorInterval="5">
<Properties>
<property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<!-- LOG_LEVEL 配置你需要的日志输出级别 -->
<property name="LOG_LEVEL" value="INFO"/>
</Properties>
<appenders>
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
<ThresholdFilter level="${LOG_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
</console>
</appenders>
<loggers>
<root level="${LOG_LEVEL}">
<appender-ref ref="Console"/>
</root>
</loggers>
</configuration>
输出:
mongo:14> +I[649d6ed7084687af5e575091, 3, 小马过河2, [玄幻, 修真2], [+I[张三2, 上海2]]]
mongo:9> -U[649cea151df115e06dd24990, 1, 标1题3, [玄幻, 修真2], [+I[张三2, 上海2]]]
mongo:9> +U[649cea151df115e06dd24990, 1, 标1题31, [玄幻, 修真2], [+I[张三2, 上海2]]]