首页 文章 精选 留言 我的

精选列表

搜索[主从同步],共10000篇文章
优秀的个人博客,低调大师

数据同步写Oracle表耗时25分钟缩短到23秒——SeaTunnel性能优化

本文主要给大家介绍JDBC Source批处理任务动态切分优化,希望大家批评指正 JDBC Source 如果配置了table_path 和 partition_column,引擎会对数据进行动态切分,可以通过分析样本数据优化切分区间,规避数据倾斜问题。 目前发现任务即使配置了where_condition,动态切分算法仍然会把数据进行全表切分,在从大表中读取少量数据的场景下,任务切分阶段会耗费大量的时间,需要修改下面相关的流程进行优化。 下面所有出现SQL语句的地方均以MySQL为例子进行说明,具体不同的数据源有不同的子类方法overwrite实现。 数据切分主流程 数据动态切分的代码入口位于DynamicChunkSplitter类中的splitTableIntoChunks方法,流程图中标红的方框表示需要修改的部分,详细在下面的子流程中展开说明。 查询最大最小值 需要加上Source的where_condition配置的判断和拼接。 通用字段切分 查询数据总条数部分 (1)增加且where_condition配置为空才走"是"的分支 (2)修改"否"分支,增加where_condition的判断和对应查询语句的拼接,子查询和表查询的规则如下: 如果配置了Query则查询SQL为 SELECT COUNT(*) FROM (<子查询>) T 否则查询SQL为 SELECT COUNT(*) FROM <表名> 如果配置了where_condition则拼接到末尾 切分数据区间部分 详情见子流程 分页查询分片 查询下一个分片的结束边界nextChunkEnd 1.max查询部分 判断如果配置了where_condition则在limit那层查询添加条件拼接 2.min查询部分 判断如果配置了where_condition则添加条件拼接 样本查询分片 判断如果配置了where_condition则添加条件拼接 日期字段切分 复用了通用字段切分的1部分,只需修改一次即可。 分片使用流程 这里相关的流程不需要修改,这里分析是为了弄清楚分片是如何被使用的,以评估前面修改的必要性、正确性和风险。 数据被切分为分片后会被分发到Worker的SourceSeaTunnelTask中,最终在JdbcInputFormat类的open方法中被使用,主要流程如下 由上面流程可知,由分片生成的SQL在最后会判断拼接where_condition,如果在生成分片的阶段没有考虑where_condition,则生成的分片中可能有部分分片在追加上where_condition条件限制后查询不到数据,当这样的分片很多时,不但会影响分片切分的性能,也会影响数据读取的性能,因为过程中产生了大量的无效查询。 优化效果 优化之后本地测试从一个55G的MySQL表使用where_condition过滤读取多条数据的耗时从25分钟缩短到23秒。 提交的PR链接:https://github.com/apache/seatunnel/pull/8760 本文由 白鲸开源科技 提供发布支持!

优秀的个人博客,低调大师

开源物联网平台 IoTSharp 3.1 发布,同步推出基于 Taro 的微信小程序客户端

有什么新变化? 优化了遥测数据展示并加入了地图的展示。 优化了EF相关的内容。 对于事件总线, 我们有了新的选项 Shashlik 设备管理中设备属性新增后无法删除bug修改 客户管理修改客户后,TenantId会被重置为空bug修改 设备管理中设备属性新增和编辑时数据类型传参无效bug 修改注册方法无法完成注册的bug 修改产品增加后,在该目录下增加设备不会关联显示的bug 优化了健康检查部分 统一了 时间使用UTC时间 , 事关 npgsql 。 更新为了.Net 7.0 修改菜单和删除旧版本国际化的内容 修复了报”按月分表时间至少大于当前时间一个月“错误 加入强制修改密码的秘钥 fix: Shashlik event publish event type error by @280780363 补充规则链脚本使用方式的说明文档 by @jimojiangdahu 遥测历史取所有值 by @iioter fix:处理docker-compose.yml缩进格式错误 by @moonfeeling 增加了后台增加用户的功能并修复各模块已发现的问题 by @siaszhangjie 修复产品添加属性后再添加设备会报错的问题及一些代码注释 by @siaszhangjie 增加DeviceConnect、DeviceActivity订阅事件 by @siaszhangjie 前端部分我们加入了大量优化。 最新加入的贡献者 @jimojiangdahu @moonfeeling @siaszhangjie @SUNRise666s 完整的更改清单: https://gitee.com/IoTSharp/IoTSharp/compare/v3.0...v3.1 基于Taro和Nutui-React 的微信小程序客户端: 基于Vue3+Vue-net-admin的前端: IoTSharp 参加 2023 天工开物 *面相未来 路演活动

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册