1.spark jdbcԴ??
spark jdbcԴ??
不论 Spark 还是 Flink,都面临通过 JDBC 方式支持真正意义上的流式读取的挑战。JDBC 这种普遍适用的数据库连接方式,在流式读取或计算中存在一些限制。
企业对数据处理要求的周期箱体源码提升,使得数据处理系统对数据源的无心西游源码读取方式变得更加多样化。数据源读取方式和频率大致分为两类:一类是一次性读取目标系统的所有数据,即“批”处理;另一类是连续性读取,监控数据源变化并读取新增或变化的数据,称为“流”处理。
Spark 和 Flink 支持流式计算,但实际应用中需数据源端及其对接方式配合,才能实现流式读取。gpt盒子源码官方文档和实践表明,Spark 和 Flink 通过 JDBC 方式直接实现流式读取存在局限性。
在 Spark 中,虽然声称支持多种数据源,量化炒股源码但 Spark Structured Streaming 不支持通过 JDBC 读取特定数据库(如 MySQL)的数据流。尽管可能存在通过改造 Spark JDBC 支持流式读取的开源项目,但官方未提供直接支持。
Flink 的java源码制作 JDBC 连接器也存在类似问题,尽管官方文档中提到支持 JDBC,但在实际应用中,Flink 仍然只能以批处理的方式读取数据库数据,无法实现流式读取。
结论是,Spark 和 Flink 通过 JDBC 方式直接实现流式读取数据源的功能存在局限性。对于需要读取数据库增量数据的需求,当前最优解决方案可能是使用 Flink 的 CDC(变化数据捕获)方式。JDBC 在低版本数据库(如 MySQL 5.5 及以下)的历史数据导入方面仍具有应用价值。