回复:ddl array 创建问题求助
谢谢 -- 原始邮件 -- 发件人: Benchao Li
ddl es 报错
图片是我用到的属性
回复:Flink 1.10 的 JDBCUpsertOutputFormat flush方法的重试机制无法生效
可以建议在计算层那里,获取连接,用完之后手动close,open只是负责初始化连接池。 --原始邮件-- 发件人:"lucas.wu"http://shipilev.net/blog/2016/arrays-wisdom-ancients/ Query[] queries = batchStatements.toArray(new Query[0]); ParameterList[] parameterLists = batchParameters.toArray(new ParameterList[0]); batchStatements.clear(); // 这里已经被清空 batchParameters.clear(); ... if (connection.getAutoCommit()) { // 抛出异常 flags |= QueryExecutor.QUERY_SUPPRESS_BEGIN; } ... } 所以在Flink第二次重试执行这段代码的时候jdbcWriter.executeBatch的时候,batchStatements已经为Empty并直接返回了,导致Flink认为是成功的,这样会导致其实语句没有被执行? // PgStatement.java public int[] executeBatch() throws SQLException { checkClosed(); closeForNextExecution(); if (batchStatements == null || batchStatements.isEmpty()) { //这里就直接返回了 return new int[0]; } return internalExecuteBatch().getUpdateCount(); } 目前的想法是,当我出现异常捕获的时候,在重试之前,判断这个链接是否已经被关闭,如果已经被关闭,则重新open,不知道大家有啥看法,这是我提的issue https://issues.apache.org/jira/browse/FLINK-16708
回复: flink sql 去重算法
可否考虑放入Redis,借用Redis的bitmap活着hyperloglog --原始邮件-- 发件人:"lucas.wu"https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/streaming/query_configuration.html ,除此之外不清楚大家是否还有什么其他好的解决方法? Benchao Li libenc...@gmail.com 于2020年3月20日周五 上午9:50写道: Hi hiliuxg, count distinct 用的MapVIew来做的去重: 在batch场景下,MapView的底层实现就是HashMap; 在streaming场景下,MapView的底层实现是MapState,因为必须要用到state+cp,才能保证任务重启后状态不会丢失。 hiliuxg 736742...@qq.com 于2020年3月19日周四 下午11:31写道: hi all: 请问flink sqlnbsp; count(disitinct)nbsp; 底层的算法是怎样的? 是bitmap ? 还是简单通过java的set容器去重的呢? -- Benchao Li School of Electronics Engineering and Computer Science, Peking University Tel:+86-15650713730 Email: libenc...@gmail.com; libenc...@pku.edu.cn