求助:sink to mysql应该怎么写? 继承了RichSinkFunction ,数据库连接信息放在open,还是invoke-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

求助:sink to mysql应该怎么写? 继承了RichSinkFunction ,数据库连接信息放在open,还是invoke

转自钉钉群21789141:求助:sink to mysql应该怎么写? 继承了RichSinkFunction ,数据库连接信息放在open,还是invoke

展开
收起
赵慧@ApacheFlink中文社区 2018-10-18 15:37:52 4020 0
1 条回答
写回答
取消 提交回答
  • 赵慧@ApacheFlink中文社区

    JasonLee:invoke 把
    问:本来想放在open,但是发现 stmt会自动关闭,conn也担心断掉之类的,但是放在invoke里面又担心效率问题
    答:invoke里加一层对连接状态的判断,不用每次invoke都连接

    答:放open里面

    问: conn 和stmt都放open里面吗? 那stmt这种会自动断开的 怎么办 ?在invoke里面再判断处理吗?
    我也考虑过这么写 但是每次preparestatement都是从新创建 会不会存在效率的问题 而且我担心加入因为需要数据库重启 是不是conn连接就断了呢 ???

    答: 数据库重启期间 抛出了异常:Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure但是看输出,应该恢复了。

    问:数据存在丢失吗?

    答: 我觉得应该会有,考虑到watermark机制

    问: 那看来还是需要在invoke函数里面

    答:这个没用啊,数据库断开之间,你在Invoke里面重新创建也是失败

    2019-07-17 23:09:17
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载