海量数据同步到DDM(oracle到mysql)

news2024/11/28 2:46:00

1、由于oracle的rownum性能,所以通过主键ID实现分页;

2、数据可能存在重复,批量插入mysql使用insert ignore语法;

3、DDM数据库,过千万后并发插入,性能就很差:采用单线程一千条批量插入(最多不超过两个线程-实测)

4、避免影响生产,首先将oracle导一个备份库(同时drs增量监听生产库);

5、会员表连表,分页查询结果,写入CSV;解析时组装业务表(八九张表,单线程内并发插入这几张表)

一、DDM写入瓶颈

DDM性能--瓶颈
DDM性能--瓶颈

二、报错

1、连接池(新建连接,保证连接有效):

test-on-borrow: true

2、使用事务LocalTxUtil,rollback关闭连接找不到

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet successfully received from the server was 69,170 milliseconds ago. The last packet sent successfully to the server was 69,170 milliseconds ago.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_201]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_201]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_201]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_201]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.protocol.a.NativeProtocol.send(NativeProtocol.java:567) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:622) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:137) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.NativeSession.sendCommand(NativeSession.java:279) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.NativeSession.queryServerVariable(NativeSession.java:599) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:1395) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        ... 57 common frames omitted
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:115) ~[na:1.8.0_201]
        at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[na:1.8.0_201]
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) ~[na:1.8.0_201]
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) ~[na:1.8.0_201]
        at com.mysql.cj.protocol.a.SimplePacketSender.send(SimplePacketSender.java:55) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.protocol.a.TimeTrackingPacketSender.send(TimeTrackingPacketSender.java:50) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        at com.mysql.cj.protocol.a.NativeProtocol.send(NativeProtocol.java:558) ~[mysql-connector-java-8.0.27.jar!/:8.0.27]
        ... 62 common frames omitted

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL--索引--0427--0507

目录 1. MySQL是如何处理数据的 2. MySQL与磁盘的关系 3. MySQL与磁盘交互的基本单位 4.MySQL和磁盘之间联系的总结 5.索引的理解 5.1 理解单个page 5.2 理解多个page 5.3 为什么采用B树 5.4 聚簇索引 和 非聚簇索引 5.5 聚簇索引 和 非聚簇索引下的普通索引 6.索引操作…

Spring 注解之@RestController与@Controller的区别

目录 1:介绍 2:区别 3:总体来说 4:社区地址 1:介绍 RestController 和 Controller 是 Spring MVC 中常用的两个注解,它们都可以用于定义一个控制器类。 2:区别 返回值类型不同:…

STM32单片机声控语音识别RGB彩灯多种模式亮度可调WS2812彩灯

实践制作DIY- GC0129-语音识别RGB彩灯 一、功能说明: 基于STM32单片机设计-语音识别RGB彩灯 二、功能介绍: STM32F103C系列最小系统板5VUSB电源64个灯珠的WS2812灯板1个开关键(3档亮度调节)1个模式切换键(白灯 红灯…

软件测试4年从外包15K跳槽去字节 38K+12,啃完这份笔记你也可以

转行做软件测试已经是第4个年头,一直是一个不温不火的小职员,本本分分做着自己的事情,觉得自己的工作已经遇到了瓶颈,一个偶然的机会,获得了一份软件测试全栈知识点学习笔记,通过几个月的学习,5…

git提交代码到GitLab步骤及拉取远程分支内容

一、本地建立一个空文件夹 点击鼠标右键点击红色箭头方向 Git Hash Here 二、git init 进行初始化 这个时候文件夹中会出现 .git 文件夹 三、添加远程仓库地址 git remote add origin (address) # 添加远程仓库地址 address是远程仓库代码链接 四、如果有分支把远程分支拉到…

跨设备开发的未来:多端能力服务统一技术

多端能力服务统一(Multi-Experience Service Orchestration,MESO)是一种技术和服务架构的概念,旨在为多种终端设备提供统一的用户体验和功能。它解决了在不同终端设备上使用不同应用程序和服务时出现的问题,使得用户可…

Springboot +Flowable,会签、或签简单使用(二)

一.简介 **会签:**在一个流程中的某一个 Task 上,这个 Task 需要多个用户审批,当多个用户全部审批通过,或者多个用户中的某几个用户审批通过,就算通过。 例如:之前的请假流程,假设这个请假流程…

[iOS]消息传递和消息转发

消息转发和消息传递 消息转发 iOS的消息转发是指当一个对象收到一个无法响应的消息时,其会通过多个方法转发该消息,直到能够响应为止。具体来说,当消息接收者无法响应某个方法时,Objective-C消息传递机制会按照以下顺序进行转发…

路径规划算法:基于绯鲵鲣算法的路径规划算法- 附代码

路径规划算法:基于绯鲵鲣优化的路径规划算法- 附代码 文章目录 路径规划算法:基于绯鲵鲣优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

java读取word文档内容

首先在pom文件引入依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId&g…

Databend 开源周报第 93 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 改进 Databend …

冠珠华珍岩板闪现人民日报美好博物馆,彰显民族品牌魅力

行业唯一&#xff01;亮相美好博物馆 一块为中国品牌发声 为了贯彻落实品牌强国战略&#xff0c;展现中国优秀品牌成果&#xff0c;5月10日&#xff0c;值第7个中国品牌日来临之际&#xff0c;由人民日报社特别打造的美好博物馆主题快闪店惊艳亮相上海世博展览中心。 作为连…

【 LoRa规范及认证】

文章目录 LoRa规范及认证一、LoRaWAN全球区域规范1.美国规范2.中国规范 二、LoRaWAN认证1.LoRaWAN认证常见问题 三、中国LoRa无线电规范四、小结 LoRa规范及认证 ​ 在使用LoRa设备时&#xff0c;必须遵循各区域无线电管理规范&#xff0c;尤其是工作频率、输出功率、占空比这…

万字长文 | ChatGPT的工作原理(二)

— 6 — 嵌入的概念 神经网络 —— 至少在它们目前的设置中 —— 从根本上说是基于数字的。因此&#xff0c;如果我们要用它们来处理像文本这样的东西&#xff0c;我们就需要一种方法来用数字表示我们的文本。 当然&#xff0c;我们可以开始&#xff08;基本上就像 ChatGPT 那…

Java基础面试题突击1

&#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我不迷路 ❤️《java面试核心知识》突击系列&#xff0c;持续更新… &#x1f490; 面试必知必会学习路线&#xff1a;Java技术栈面试系列SpringCloud项目实战学习路线 &#x1f4dd;再小的收获*365天…

物流管理系统对电商的重要性,零代码技术起关键性作用

什么是物流管理系统 物流管理系统是一种软件系统&#xff0c;用于管理和协调货物的移动。它涵盖了物流计划、物流执行、物流跟踪和数据分析等方面&#xff0c;可以帮助企业优化供应链&#xff0c;提高运营效率和客户满意度。它包括了仓储管理、配送管理、运输管理、订单管理、…

编织数据结构的艺术:双向带头循环链表的华丽实现

上一篇博客&#xff0c;我们了解并实现了单向不带头不循环链表&#xff0c;而本篇博客会讲解链表中的王者&#xff1a;双向带头循环链表。 概述 双向带头循环链表的特点是&#xff1a; 每个结点内部&#xff0c;既有指向上一个结点的前驱指针prev&#xff0c;也有指向下一个…

《C++入门攻略》(小白向)

函数 函数、输入、传参 在程序中使用函数时&#xff0c;你必须先声明它然后再定义声明的目的是告诉编译器你即将要定义的函数的名字是什么&#xff0c;返回值的类型是什么以及参数是什么而定义则是告诉编译器这个函数的功能是什么。假如我们不声明&#xff0c;那么该函数就不能…

vue快速上手教程与简单安装

目录 vue简介 vue实例 通过 CDN 使用 Vue NPM 方法 介绍 下载 使用 vue简介 Vue.js 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 vue实例…

ping包过程之arp(地址解析协议)

0,怎么引出arp地址解析协议的呢&#xff1f; 在硬件层次上进行的数据帧交换必须有正确的接口地址&#xff08;既是MAC地址&#xff09;。但是&#xff0c; T C P / I P有自己的地址&#xff1a; 32 bit的I P地址。知道主机的 I P地址并不能让内核发送一帧数据给主机。内核&…