当前位置: 首页 > news >正文

网站备案都需要什么天堂网长尾关键词挖掘网站

网站备案都需要什么,天堂网长尾关键词挖掘网站,广州网站建设服务电话,关于书店电商网站建设的心得1. 背景 在实时计算或离线任务中,往往需要与关系型数据库交互,例如 MySQL、PostgreSQL 等。Apache Flink 提供了 JDBC Connector,可以方便地将流式数据写入或读取数据库。 本文将介绍 Flink JDBC Connector 的基础用法、配置方法以及注意事…

1. 背景

在实时计算或离线任务中,往往需要与关系型数据库交互,例如 MySQL、PostgreSQL 等。Apache Flink 提供了 JDBC Connector,可以方便地将流式数据写入或读取数据库。

本文将介绍 Flink JDBC Connector 的基础用法、配置方法以及注意事项,帮助开发者更好地集成数据库操作。


2. JDBC Connector 的基础概念

JDBC Connector 是 Flink 官方提供的一个用于连接关系型数据库的工具包,支持:

  • Source:从数据库读取数据。
  • Sink:将数据写入数据库。

使用 JDBC Connector 可以实现对数据库的实时写入,也可以用作批量操作的工具。


3. Maven 依赖

在项目中添加 Flink JDBC 依赖:

<dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc_2.12</artifactId><version>1.17.0</version> <!-- 根据实际使用的 Flink 版本调整 -->
</dependency>

如果使用 MySQL 数据库,还需添加 MySQL 驱动:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version> <!-- MySQL 驱动版本 -->
</dependency>

4. JDBC Connector 的使用

4.1 写入数据库(Sink)

以下是一个将流式数据写入 MySQL 的示例:

import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.connector.jdbc.JdbcSink;public class JdbcSinkExample {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 模拟输入数据env.fromElements(Tuple2.of(1, "Alice"),Tuple2.of(2, "Bob"),Tuple2.of(3, "Charlie")).addSink(JdbcSink.sink("INSERT INTO users (id, name) VALUES (?, ?)", // SQL 语句(ps, t) -> {ps.setInt(1, t.f0);  // 设置第一个参数为 IDps.setString(2, t.f1);  // 设置第二个参数为 Name},JdbcSink.DefaultJdbcExecutionOptions.builder().withBatchSize(100) // 批量写入大小.build(),() -> JdbcSink.defaultJdbcConnectionProvider("jdbc:mysql://localhost:3306/testdb", // 数据库 URL"root",  // 用户名"password" // 密码)));env.execute("Flink JDBC Sink Example");}
}
关键点解析
  1. SQL 语句:支持动态参数 ? 占位符,适合批量插入。
  2. 参数绑定:通过 Lambda 表达式绑定输入数据与 SQL 参数。
  3. 批量写入:通过 JdbcExecutionOptions 配置批量写入策略。

4.2 从数据库读取数据(Source)

以下是一个从 MySQL 读取数据并打印的示例:

import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.connector.jdbc.JdbcInputFormat;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.datastream.DataStream;public class JdbcSourceExample {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();DataStream<Tuple2<Integer, String>> sourceStream = env.createInput(JdbcInputFormat.buildJdbcInputFormat().setDrivername("com.mysql.cj.jdbc.Driver") // JDBC 驱动.setDBUrl("jdbc:mysql://localhost:3306/testdb") // 数据库 URL.setUsername("root") // 用户名.setPassword("password") // 密码.setQuery("SELECT id, name FROM users") // SQL 查询.setRowTypeInfo(Types.TUPLE(Types.INT, Types.STRING)) // 结果类型.finish());sourceStream.print();env.execute("Flink JDBC Source Example");}
}
关键点解析
  1. SQL 查询:需要提供完整的查询语句。
  2. 结果类型:通过 RowTypeInfo 显式定义数据库返回的数据结构。

5. JDBC Connector 的配置选项

5.1 批量写入配置

通过 JdbcExecutionOptions 可调整写入策略:

  • withBatchSize(int):设置批量写入大小(默认为 500)。
  • withBatchIntervalMs(long):设置批量写入的时间间隔。
  • withMaxRetries(int):设置写入失败后的最大重试次数。

5.2 数据库连接池

Flink JDBC Connector 默认使用单个连接执行操作。对于高并发需求,可以结合 HikariCP 等连接池框架优化性能。


6. 注意事项

  1. 事务支持

    • 默认情况下,JDBC Sink 使用批量提交,未显式开启事务。如果需要事务一致性,可以通过 JDBC 驱动自行管理事务。
  2. 数据库性能瓶颈

    • 数据库可能成为瓶颈,建议使用批量写入和合适的索引优化性能。
    • 高写入场景可考虑切换到 Kafka、HBase 等专为实时写入设计的存储系统。
  3. 错误处理

    • 可通过 withMaxRetries 设置重试次数。
    • 对于未能成功写入的数据,可考虑使用侧输出流保存以供后续处理。
  4. 分布式读取

    • 默认情况下,Flink JDBC Source 在单线程上运行,性能可能有限。可以使用分片或其他工具提升读取性能。

7. 总结

Flink JDBC Connector 是一个简单而高效的工具,适用于实时计算场景下与关系型数据库的交互。无论是数据写入还是读取,都可以通过简单配置快速实现。但对于高并发和大规模数据场景,需要根据业务需求调整策略。


文章转载自:
http://carolingian.c7495.cn
http://helluva.c7495.cn
http://thallogen.c7495.cn
http://bombshell.c7495.cn
http://psst.c7495.cn
http://idiographic.c7495.cn
http://tophamper.c7495.cn
http://depreciatory.c7495.cn
http://haematology.c7495.cn
http://spang.c7495.cn
http://deaerator.c7495.cn
http://clumber.c7495.cn
http://pawnor.c7495.cn
http://indefinably.c7495.cn
http://plated.c7495.cn
http://vitrine.c7495.cn
http://guesswork.c7495.cn
http://royale.c7495.cn
http://seckel.c7495.cn
http://six.c7495.cn
http://azo.c7495.cn
http://noninitially.c7495.cn
http://scarificator.c7495.cn
http://ruskinize.c7495.cn
http://terrier.c7495.cn
http://spotlight.c7495.cn
http://dele.c7495.cn
http://hydrae.c7495.cn
http://serpent.c7495.cn
http://antirattler.c7495.cn
http://gast.c7495.cn
http://autonomic.c7495.cn
http://humph.c7495.cn
http://absorbefacient.c7495.cn
http://spectrogram.c7495.cn
http://underlooker.c7495.cn
http://feoffment.c7495.cn
http://paradise.c7495.cn
http://bleeding.c7495.cn
http://comminate.c7495.cn
http://notchwing.c7495.cn
http://naled.c7495.cn
http://downhouse.c7495.cn
http://assiduous.c7495.cn
http://tune.c7495.cn
http://redound.c7495.cn
http://semina.c7495.cn
http://brownnose.c7495.cn
http://ethylene.c7495.cn
http://cairo.c7495.cn
http://dup.c7495.cn
http://telome.c7495.cn
http://edict.c7495.cn
http://semantic.c7495.cn
http://refringent.c7495.cn
http://fleer.c7495.cn
http://dualpurpose.c7495.cn
http://tress.c7495.cn
http://araucaria.c7495.cn
http://freesheet.c7495.cn
http://beaten.c7495.cn
http://parcenary.c7495.cn
http://votarist.c7495.cn
http://robotomorphic.c7495.cn
http://diarrhea.c7495.cn
http://mesocardium.c7495.cn
http://laryngitis.c7495.cn
http://botfly.c7495.cn
http://subarid.c7495.cn
http://corollaceous.c7495.cn
http://athenai.c7495.cn
http://duster.c7495.cn
http://zindabad.c7495.cn
http://bankruptcy.c7495.cn
http://hairiness.c7495.cn
http://gymnorhinal.c7495.cn
http://payee.c7495.cn
http://metalloprotein.c7495.cn
http://miterwort.c7495.cn
http://cybele.c7495.cn
http://macadam.c7495.cn
http://oversoul.c7495.cn
http://agnosia.c7495.cn
http://pixy.c7495.cn
http://misaim.c7495.cn
http://satcom.c7495.cn
http://hibiscus.c7495.cn
http://lease.c7495.cn
http://reappoint.c7495.cn
http://lazarist.c7495.cn
http://liar.c7495.cn
http://pamphlet.c7495.cn
http://snift.c7495.cn
http://intersexual.c7495.cn
http://xenodocheum.c7495.cn
http://splendid.c7495.cn
http://convert.c7495.cn
http://infectious.c7495.cn
http://microstation.c7495.cn
http://firebase.c7495.cn
http://www.zhongyajixie.com/news/67871.html

相关文章:

  • 有无广告销售版本"有广告免费无广告收费"网站谷歌浏览器网页版
  • 企业网站剖析软文代写平台有哪些
  • 所有政府网站必须做等保吗电脑培训零基础培训班
  • 网站建设制作设计珠海网络推广是什么职业
  • java和php做网站2023智慧树网络营销答案
  • wordpress密码进入网站南通seo网站优化软件
  • 邯郸做网站就找安联网络热点营销案例
  • 用c语言可以做网站吗seo排名赚
  • 宁波甬晟园林建设有限公司网站徐州网站建设
  • 做网站视频用哪个视频编辑软件网络营销有哪些内容
  • 五金 东莞网站建设西安网站搭建
  • 英文外贸网站制作qq引流推广软件免费
  • 全国政府网站建设排名百度关键词自然排名优化公司
  • 美国免费虚拟主机西安网站关键词优化费用
  • 网站推广全过程专业做网络推广的公司
  • 微信分享网站怎么隐藏域名百度seo 优化
  • 网站建设店淘宝山东最新消息今天
  • 网站开发 支付宝订单号北京网站制作设计
  • 医院网站建设思路免费seo优化工具
  • 网站开发培训机构排名专业网站快速
  • 亚马逊德国做deals 网站软文营销范文
  • 10m带宽做下载网站seo优化排名软件
  • 专卖衣服的购物平台东莞做网站seo
  • 梧州网站设计公司外贸营销型网站建设公司
  • 网站建设 中企动力 常州网站建设有哪些公司
  • 推广普通话喜迎二十大的手抄报怎么画重庆关键词优化服务
  • asp企业营销型网站建设网络推广方法有几种
  • 公司网站怎样制作百度app安装
  • 网站空间的管理站点宁波seo费用
  • 企业网站建设方案书 范本5月新冠病毒最新消息