当前位置: 首页 > news >正文

数仓ETL建设思路

1.问题

解决对于繁杂的CT图片的处理(ETL)问题?

针对哪些问题来说?

问题的难点:关于如何解决非结构化数据的ETL过程(关键的是你想要怎样的CT图片),在这个基础上继续的改进

2.背景

a.为什么要做这个研究

b.当前这个研究前人们都是怎么做的

c.项目的难点在哪里?该项目的意义是什么?

d.未来的研究会是怎么样的,我要做成什么样子?

3.所用技术/数据

a.数据源:来自医学的相关CT图片以及工业上的CT图片或者其他

b.数仓建设技术,数据处理技术,数学理论技术支持

4.研究方案和步骤

设计一个能够分类的系统?(关键是要把不同系统的的图片提取共性,方便查看和研究)

针对医学图片数据,你要做裁剪,突出,提取关键信息

抽取:数据来源

处理:数据的裁剪,突出,提取关键信息 或者分类

转换:CT图片能够转换成啥呢?

加载:把处理好的数据加载到数仓中

……

5.系统搭建:空

6.测试与使用:空

前人的建议:如何才能做好ETL?

1.数据抽取设计

数据的抽取需要在调研阶段做大量工作,要搞清楚以下几个问题:数据是从几个业务系统中来?各个业务系统的数据库服务器运行什么DBMS?是否存在手工数据,手工数据量有多大?是否存在非结构化的数据?等等类似问题,当收集完这些信息之后进行数据抽取的设计。常见的数据抽取设计方式有四种:

(1)与存放DW的数据库系统相同的数据源处理方法

这一类数源在设计比较容易,一般情况下,DBMS(包括SQLServer,Oracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select 语句直接访问。

(2)与DW数据库系统不同的数据源的处理方法

这一类数据源一般情况下也可以通过ODBC的方式建立数据库链接,如SQL Server和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再将这些源系统文件导入到ODS中。另外一种方法通过程序接口来完成。

(3)对于文件类型数据源(.txt,.xls)

可以培训业务人员利用数据库工具将这些数据导入到指定的数据库,然后从指定的数据库抽取。或者可以借助工具实现,如SQL SERVER 2005 的SSIS服务的平面数据源和平面目标等组件导入ODS中去。

(4)增量更新问题

对于数据量大的系统,必须考虑增量抽取。一般情况,业务系统会记录业务发生的时间,可以用作增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间的所有记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。

2.数据清洗处理规范

不符合要求的数据主要有不完成数据(缺失值)、错误数据(异常值)、重复数据、不同类型需归一化处理数据几类。几类数据的处理方法如下:

缺失值:不完整的数据,其特征是是一些应该有的信息缺失,如供应商的名称,分公司的名称,客户的区域信息缺失、业务系统中主表与明细表不能匹配等。需要将这一类数据过滤出来,按缺失的内容分别采取定(范围)删(字段)补(数据)。

定范围:哪些字段缺失,缺失范围如何,缺失字段的重要性如何?删字段:删数据的判断,a\对业务清晰的判断,b\“有心杀贼,无力回天”缺失数据太多。这时候可以看看是否有其他数据可以弥补。补数据:就是补充缺失值。这里有三种补数据的方式:A、业务知识惊讶填充;B、使用均值、中位数、众数填充;C、使用其他渠道补充,如身份证前6位是地区=手机号归属地。补全后才写入数据仓库。

异常值:产生原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不面见字符的问题只能写SQL的方式找出来,然后要求客户在业务系统修正之后抽取;日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。

重复数据:特别是维表中比较常见,将重复的数据的记录所有字段导出来,让客户确认并整理。

数据归一化:归一化的问题,就是将绝对数变成相对数的问题。因为不同维度的绝对数是没有可比性的,这时候需要将绝对数转化成相对一个标准的相对数。那如何进行归一化处理呢?三种方式,A、最值归一化、均值方差归一化、非线性归一化。

数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤、是否修正一般要求客户确认;对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快的修正错误,同时也可以作为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉了,对于每个过滤规则认真进行验证,并要用户确认才行。

3.数据转换处理规范

数据转换的任务主要是进行不一致的数据转换、数据粒度的转换和一些商务规则的计算。

(1)不一致数据转换,这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一,比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001,这样在抽取过来之后统一转换成一个编码。

(2)数据粒度的转换,业务系统一般存储非常明细的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,会将业务系统数据按照数据仓库粒度进行聚合。一般数据转换有离散化和属性构造两种方式。离散化主要分为简单离散、分桶离散、聚类离散、回归平滑四类,属性构造分为特征工程和随意构造后筛选。

(3)商务规则的计算,不同的企业有不同的业务规则,不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中,供分析使用。

4.ETL日志与警告发送

(1)ETL日志

记录日志的目的是随时可以知道ETL运行情况,如果出错了,出错在那里。ETL日志分为三类。①执行过程日志,是在ETL执行过程中每执行一步的记录,记录每次运行每一步骤的起始时间,影响了多少行数据,流水账形式。②是错误日志,当某个模块出错的时候需要写错误日志,记录每次出错的时间,出错的模块以及出错的信息等。③日志是总体日志,只记录ETL开始时间,结束时间是否成功信息。

如果使用ETL工具,工具会自动产生一些日志,这一类日志也可以作为ETL日志的一部分。

(2)警告发送

ETL出错了,不仅要写ETL出错日志而且要向系统管理员发送警告,发送警告的方式有多种,常用的就是给系统管理员发送邮件,并附上错误信息,便于管理员排查。

http://www.sczhlp.com/news/332.html

相关文章:

  • SSH-Agent 启用失败问题
  • Django模型开发:模型字段、元数据与继承全方位讲解
  • 矿山领航者:向明智控如何通过CRM实现数字化升级
  • BeanFactory和FactoryBean的区别
  • DevOps工具进化论:2025年国内开发者如何选择最佳技术栈
  • E. Split Into Two Sets
  • 2025.7.28学习日记
  • BSC 验证者获取接口的时间差问题分析 - 若
  • 教师资格证考试笔试报名流程
  • linux RabbitMq 消息队列
  • TheHackersLabs Torrijas writeup
  • 蔚来汽车携手通义灵码入选 2025 世界人工智能大会标杆案例
  • CRMEB会员电商系统高可用集群部署实战:阿里云COS静态资源分离方案详解
  • 麦当劳 - 1
  • 一个简单的文字特效
  • openGauss关于日期的计算注意事项
  • 一文带你全面了解教师资格证
  • 小飞标签
  • P6246 邮局题解
  • [lnsyoj2085] 底垫
  • 病从口入,祸从口出
  • 7.28
  • 基于 PyTorch 的端到端验证码识别系统设计与实现
  • Linux安装 MYSQL
  • Groovy注入
  • P1545 Dividing the Path G(线段树+动态规划)
  • .NET4通过HTTP操作MINIO
  • Gitee:重塑中国企业级研发基础设施的三大战略支点
  • SAP生产订单报工的“最终确认”、“结清未清预留”,你真弄清楚了吗?
  • 基于图像处理与SVM的验证码识别系统实现