首页 > 其他分享 >第一次写一篇与技术无关的博客-大批量数据处理

第一次写一篇与技术无关的博客-大批量数据处理

时间:2023-05-28 10:33:23浏览次数:39  
标签:xml 解析 并发 大批量 博客 进程 数据处理 执行 数据

上周接到了一个这样的需求,有几千个xml文件需要解析入库,每个文件里边有三万条数据。解析出来后要按表字段,重新组成需要的数据,不能直接将解析后的json入库。

一开始我觉得这个事挺简单的,直接动手写了个demo,用随机选了两个xml文件测一下,没问题,成功入库。从解压xml到最后的数据入库,一个文件大概花费300秒左右。直到我用多进程并发去执行的时候发现,事情并不是我想的那么简单,发现子进程会莫名其妙的结束,开始下个进程了。

突发奇想,我并不是非要用一个主进程下边多个子进程去执行,我可以采用将数据分块,分完之后把程序拷贝多份,单独启动多个程序处理不同的分块数据,这样也可以达到并发效果呀。说干就干,马上调整程序,让每个程序处理100份文件。当我采用这样的方式去并发执行的时候,发现了一个问题,xml文件数据可是并不统一,有些可能会缺少某个字段,有某个字段的数据类型会是另外一种类型,g关键我也不清楚到底哪些字段会缺少,哪些字段类型会有多个。只能采用最笨的办法了,让程序执行把,遇到问题,停下程序修改下字段解析时的容错机制,一步一步,让整个字段解析函数变的能容纳所有的异常,直到他能稳定运行。最后我还是用分别执行多程序去并发处理,没有选择主进程下有多个子进程的方式。

通过上边事情,得到了一个感悟,记录下来。
1.首先就是像对上边这种需要看护的程序,并不一定非亚用主进程下有多个子进程的方式去执行并发,可以选择一个代码逻辑更简单的多个程序分别执行的方式去并发。因为对于子进程处理的事情,总会有意想不到的意外的时候,主进程加子进程的这种方式排查问题的时候并不方便。
2.还有个就是在处理大批量数据的时候,最好是把数据分成多块,分别去执行,不要1将全部数据一起执行。分开执行的一个好处是要是某块数据的处理有问题的时候,我可以单独去调整这一部分,并不会影响到全部,降低影响范围。还有一个就是因为每块数据的数据量比较少,给人的主观感受处理的会比较快。

好了,就这样吧~。

标签:xml,解析,并发,大批量,博客,进程,数据处理,执行,数据
From: https://www.cnblogs.com/yimeimanong/p/17437874.html

相关文章

  • Python 标准类库-因特网数据处理之Base64数据编码
    该模块提供将二进制数据编码为可打印ASCII字符并将这种编码解码回二进制数据的功能。它为RFC3548中指定的编码提供编码和解码功能。定义了Base16、Base32和Base64算法,以及事实上的标准Ascii85和Base85编码。RFC3548编码适用于对二进制数据进行编码,以便可以安全地通过电子邮件......
  • 博客皮肤
    https://www.yuque.com/awescnb/user/tmpomo额外修改CSS.custom-card-title{font-weight:700!important;font-size:large!important;}JS$(".custom-card-actions").find("span").css({"font-size":"xx-small"})......
  • 个人/企业博客网站运营搭建方案,借助 HelpLook可快速搭建,附详细步骤
    提到免费搭建个人网站,80后的朋友们会想到开个新浪博客,90后的小伙伴则会知道搞个wordpress站,搞开发的程序猿们则在github上建立个人页面,多收获点fork和star,而其他互联网从业者会觉得弄个公号是最重要的,收获一些粉丝,有广告收入美滋滋…… 博客网站运营搭建有自己独立的网站平台,比如:......
  • SpringMVC-04数据处理及跳转
    SpringMVC参数接收处理和结果跳转处理1结果跳转方式1.1ModelAndView设置ModelAndView对象,根据view的名称,和视图解析器跳到指定的页面.**页面:**{视图解析器前缀}+viewName+{视图解析器后缀}<!--视图解析器--><beanclass="org.springframework.web.servle......
  • 源代码管理工具博客
    GitHub的原理和优势什么是GitHubGitHub是一个基于Git的分布式版本控制系统,它可以让开发者在本地和云端进行代码的管理和协作。GitHub是目前最流行的代码托管平台,拥有超过一亿的开发人员和3.3亿的资料库。GitHub的原理GitHub的原理是基于Git的分布式版本控制系统,......
  • 博客园 - 用过的博客园主题
       页面定制CSS代码#loading{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999;background-color:#f4f5f5;pointer-events:none;}.loader-inner{will-change:transform;width:40px;height:40px;position:absolute;top:50%;left:50%;margin:-20px00-20px;ba......
  • 博客园 - 博客园主题装饰
    自动生成可导航的目录·效果图自动生成可导航的目录·脚本内容鼠标点击彩色圆点特效·效果图   自动生成可导航的目录·效果图添加了文章目录自动生成的脚本,以及通过JS自定义了导航栏。标题1则为:1标题2则为:1.1标题号会自动生成,所以即使博文未以标题标注层次......
  • NumPy_数据处理详解—矩阵运算-矩阵拼接
    基础内容坐标轴axis维度ndim和形状shape以及元素各个轴元素的个数索引--单个元素切片--多个元素[start:end:step]不包括终点的值当start是0时,可以省略;当end是列表的长度时,可以省略. trans_matrix[:3,:3] trans_matrix[......
  • 搭建一个自己的个人博客
    一、买服务器和域名及解析可以在腾讯云、华为云、阿里云买,新用户第一次购买会有优惠,哪个便宜买哪个。这里我买了腾讯云的一台2核2G的轻量应用服务器,还买了一个便宜域名自带解析服务。不过域名这个需要备案时间有点久。二、搭建博客服务器的操作系统这里我安装的是ubuntu,买的云......
  • Graphpad Prism9.5.1 数据处理绘图软件详细安装教程 (含Win/Mac版)
    GraphPadPrismGraphPadPrism是一款非常专业强大的科研医学生物数据处理绘图软件,它可以将科学图形、综合曲线拟合(非线性回归)、可理解的统计数据、数据组织结合在一起,除了最基本的数据统计分析外,还能自动生成统计图。  安装教程下面就简单的介绍一下Win版的安装教程详细图文教程......