关于数据处理的思路·一点实践

embedded/2024/12/22 9:25:19/

一、如何设计适合的方案

不同的数据场景,切入角度不同,设计出来的方案也会很不一样,始终有更好的,我们只要在有限的资源下,设计出适合的方案即可。

下面贴出一份,批量处理数据的大致思路:

二、参考案例(仅供参考)

2.1、案例1:10天处理完1300w+文档资源的内容提取

2.1.1、背景:

根据要求,从数仓圈中1300w+的文档资源ID,想要重新对其提取正文内容,最终数据汇总到数仓中。                

2.1.2、准备阶段(成本评估、环境准备)

  • 思路说明:

(1)根据输入输出的要求,制定对应的处理脚本(一般都是支持多进程,或者多线程的方式)

(2)先把单线程/进程的任务跑起来,初步估算小单位的处理速度(speed:单位时间内处理多少条)

(3)再找一台机器运行进行批量运行测试,观察机器运行情况(count:大致估算,一台指定配置机器可以跑多少个线程/进程)

(4)根据任务要求时间(time)和单位处理速度(speed),估算需要申请的机器数量(size)和所需配置(一般为求稳定,会稍加些配置)

(5)找到华为云:ECS·购买弹性云服务器,查看所需机器配置的购买方案:包月/小时,了解资源释放费用结算方式,评估不同方案的价格。

  • 操作步骤:
  1. 输入输出梳理:
    1. 1300w+原数据在数仓,需要同步到文库的业务库 
    2. 提取到的试读文本最终需要到数仓,而且由于内容较多,文库这边不愿意存储到数据库,最终选择存到文件中,即最终汇总到OBS,再汇总到数仓表中。
       
  2. 编写文档试读内容提取脚本:
    1. 针对不同文件类型的文档文件,需要不同的解析插件(需要调研后选定,安装到运行环境中)

      抽样测试,拿到处理速度,预估所需机器:
  3. 不同处理场景,因执行依赖种类、体量、性能上限不同,最终执行速度差别很大,需要以实测数据为准。
    1. 从1300w中抽取部分(比如:1000个文档),找机器做测试,拿到处理速度,估算所需机器:
    2. 估算成本:https://console.huaweicloud.com/ecm/?agencyId=8de25fe71d41471fb811bf92bd443298&region=cn-north-4&locale=zh-cn#/ecs/createVm
  4. 申请机器(走OA单)和共享磁盘
    1. 申请机器的种类选型:
      1. OSS高频读写:用阿里云机器
      2. OBS高频读写:用华为云机器
      3. 阿里云和华为云之间有专属通道,整个公司目前都在用,特殊处理场合,会高频占用带宽,而且产生额外的流量费用。 
    2. 申请共享磁盘,并挂载:
       机器申请下来,部署环境,调试
      1. ⚠️ 注意:
        1. 不要一次性全部申请下来,先申请一台,安装环境,公共配置等,找运维以此机器备份个镜像,然后后续的机器以此镜像作为初始化,剩下了重复安装配置的繁琐过程。
  1.  挂载共享磁盘(没有则申请)
    共享磁盘有多种类型:按使用量收费,按包月包年等计时收费,此处为按量收费,用完后需要清理,减少支出 
    1. 优点:
      1. 同一份文件或者脚本,直接放在共享磁盘中即可,无需多次复制,省时省力。
      2. 结合linux系统的crontab定时触发机制,可以方便完成每个机器的监控。
      3. 可以收集汇总每个机器上生成的文件,汇总到一起,统一再上传到OBS上。
    2. 缺点:
      1. 因为是挂载的磁盘,读写速度比较慢,不适合高频的I/O操作。

2.1.3、设计方案(编码)

部署模式:


 

  • 根据实际处理场景,自行决定即可
  • 我这里采用的是:多机部署+多进程(单线程),我需要细粒度观到每个任务处理状态,并且灵活启停处理。
     


http://www.ppmy.cn/embedded/102135.html

相关文章

【LLM之Data】SKYSCRIPT-100M论文阅读笔记

研究背景 随着短视频和短剧的兴起,自动化的剧本生成和短剧制作在影视行业中的需求逐渐增加。传统的剧本生成过程需要大量的人工干预,限制了其在规模和效率上的扩展性。当前的大型语言模型(LLM)在剧本生成方面展现出一定潜力&…

【计算阶乘求和】计算1!+3!+5!+...+n!/(n+1)!

输入一个正整数n&#xff1a; n为奇数&#xff0c;输出1&#xff01;3&#xff01;5&#xff01;...n&#xff01; n为偶数&#xff0c;输出1&#xff01;3&#xff01;5&#xff01;...&#xff08;n1&#xff09;&#xff01; 具体代码&#xff1a; #include<stdio.h>…

JVM 在GC 时的根对象都有那些

在 Java 的垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;过程中&#xff0c;根对象&#xff08;Roots&#xff09;是用于判断哪些对象是可达的基础。根对象通常是一组特定的对象引用&#xff0c;从这些对象出发&#xff0c;GC 可以判断哪些对象仍然存活&a…

如果一个函数func定义在namespace sggk::test中,pre类定义在namespace sggk中,那么func能否调用类pre

在C中&#xff0c;如果一个函数func定义在命名空间sggk::test中&#xff0c;而类pre定义在命名空间sggk中&#xff0c;那么func函数可以调用pre类&#xff0c;但需要通过适当的命名空间解析来访问它。 有几种方式可以实现这一点&#xff1a; 使用完全限定名&#xff1a;在func函…

Dashboard Interface 应用

Dashboard Server Remote Control Interface&#xff08;简称Dashboard Interface&#xff09;是一个关键的功能&#xff0c;它为用户提供了通过TCP/IP协议远程控制机器人的能力&#xff0c;执行包括开关机、加载程序、检查机器人状态以及设置机器人操作模式等多种操作。 功能…

不动产登记证识别API开发文档、不动产登记证识别接口

调用客户端运行环境 当客户端使用的编程语言为Java时&#xff0c;请使用1.5及以上版本JRE。 服务主要功能描述&#xff1a;翔云不动产登记证识别&#xff0c;可自动、批量识别不动产登记证明中的权利人、共有情况、用途、权利性质、使用期限等文字信息。 1) 通过https协议po…

C# 使用OpenCV 类VideoCapture 和 Mat的正确方法

在做WPF桌面程序时候&#xff0c;要调用USB摄像头&#xff0c;因此接触了OpenCV , 遇到了各种坑&#xff0c;严重烧肝终于找到原因。 涉及的类包括VideoCapture , Mat. 问题1.内存泄漏 运行以下 代码片段&#xff0c;会发现内存持续飙升 for (int i 0; i < 1000; i){us…

人工数据的没落:APIGen的崛起

APIGen全面解析 ©作者|Angela 来源|神州问学 引言 在现代软件工程中&#xff0c;确保应用程序的质量和可靠性已经变得至关重要。高质量的测试数据是实现这一目标的基石。Salesforce AI Research团队近日宣布&#xff0c;他们已成功开发出一种名为APIGen的创新技术&#…