美国做调查的网站/互联网营销师怎么报名
1、ETL和ELT
ETL是Extract、Transfrom、Load即抽取、转换、加载三个英文单词首字母的集合:
E:抽取,从源系统(Souce)获取数据;
T:转换,将源系统获取的数据进行处理加工,比如数据格式转化、数据精度转换、数据清洗、缺失数据补齐、异常数据排除等。
L:加载,将数据加载到目标数据库(Target)。
ELT也是同样三个单词的首字母组合,只是把T、L颠倒了下顺序。ETL强调的是先进性数据转换,然后再加载到目标。这个转换过程可以在原系统进行,也可以在中间环境进行进行。而ELT是把数据加载到数据仓库后再进行转化。ETL优势是充分利用各关联系统的性能,提高效率,但程序部署分散,运维成本较高。ELT是充分发挥数据仓库平台数据加工的高性能,并且可以保存原始数据方便后续复用。
随着数据仓库平台的性能越来越高,容量成本越来越低,目前更多的是采用ELT方式,充分利用数据仓库的高性能,提高加工效率。但在数据加载前也需要进行数据编码转化、异常数据等影响加载的处理,确保数据正确加载到数据仓库平台,但不做数据逻辑加工。
由于ETL出现较早,通常使用ETL来代表数据抽取加载和转换的统称。
2、ETL架构设计
数据ETL需要有ETL服务器集群执行数据ETL作业来进行数据抽取、转换和加载,所有ETL作业的脚本部署多台ETL服务器上,ETL作业可以根据服务器资源由调度工具分配到任意一台ETL服务器执行,常见架构如下图:
ETL架构不仅仅是作为数据仓库的架构,但也是全行批量数据交换的统一架构和标准,虽然数据仓库是其中最大的一个数据加载的目标系统和数据源系统,但从架构规划角度来看,需要从全行、全集团的角度来设计批量数据交换,考虑多机构间交互场景,减少不必要的转换,提高效率和稳定性。
ETL服务器集群需要做到高可用,对于不能正常服务或负载过高的服务器,调度平台不会将作业分配到该服务器,所有的ETL作业脚本需要在每台服务器上部署,不能只部署一份代码到共享存储中。
在硬件资源上,服务器的IO和内存需要配置较高,同是由于批量数据容量较大,网络带宽需要千兆以上,同时需要考虑在传输高峰不能影响交易系统的网络通讯。
(1)文件方式和端到端方式
数据抽取和加载从是否经过中间落地成文件来区分主要有文件落地方式和端到端不落地(内存)的两种方式。文件方式指ETL服务器的抽取数据作业从源系统获取转焕为文件放到文件共享存储中,再由加载作业到目标系统中。端到端方式是ETL服务器从 源系统获取数据后在内存中直接加载到目标系统。
从步骤中可以看出端到端方式在内存中直接加载,从单个作业速度对比来看速度应该更快,开发更简单,但端到端方式对内存资源要求较高,并行作业的最大值一般较文件低,同时文件具有以下好处:
1)各数据库对文件导入和导出支持较好,一般都会提供专门的工具和高性能接口(如oracle sqlload导入文件和spool导出文件的性能较高)。因此大批量的数据抽取和加载作业的效率从整体看文件方式不一定比端到端的方式慢。
2)文件方式耦合性比端到端低,如果发现数据加载出现问题,可以不用重新抽取数据,减少抽数对源系统的性能影响。
3)文件通用性较好,如果涉及多网络或多机构之间的数据交换,A子公司的ETL服务器无法连接到B子公司的数据库。另外对于非结构化数据来源广泛,导出文件比较通用。
具体采用文件方式,端到端方式还是两者都采用的方式,各公司需要考虑服务器资源、现有工具及数据库驱动性能、成本、数据交换场景等多种情况来确定。
(2)文件方式方案需要考虑的要点
文件方式比较通用,多机构之间较多采用文件方式进行批量数据交互,但采用文件方式进行架构设计和开发时需要关注以下几点:
1)统一的文件交换规范和文件传输平台
文件存储规范制定文件目录、文件命名、用户权限、文件校验、文件清理等规范,如果涉及到跨机构批量文件传输,还需要统一有文件传输平台,提供统一的文件高效传输、加密、校验、限流、文件夹同步等功能。国内银行使用较多的文件传输平台有东方通、神州数码等公司产品。
文件目录规范中需要区分数据产生系统、数据使用系统、数据日期等,文件名中需要说明产生系统、文件内容描述、增量全量标志、数据日期等,规则举例如下:
数据源系统/数据日期/目标系统/源系统_文件内容描述_数据日期_增全量标志_频率标志.txt
举例:CBS/20190620/EDW/CBS_DEPOSIT-ACCOUT_20190620_ALL_D.txt
说明:【CBS、EDW为系统名】【ALL为全量标志】【D为每日】
2)文件格式:定长or 变长(分隔符)
定长:文件大,I/O资源消耗大,但能消除回车符、分隔符以及乱字符问题。
变长(分隔符):文件小,处理性能高,但需处理异常情况较多:
<1>分隔符:数据中存在分隔符,导致加载报错,可选用两个连续的不可见字符作为分隔符,基本可以解决该问题;
<2>换行符:导出文件时一般以换行符作为一行数据的结束,如果导出工具支持可以改成不可见字符作为换行符,不支持的话导出时对数据中的换行符进行替换;
<3>异常字符:如截取导致的半个UTF-8字符的编码或者HEX00等字符,一些数据库不支持会报错,一般这些字符发生在以前的主机上,异常情况下出现没处理,可以提前在源系统进行数据清洗或者导出时进行替换清洗。
因此一般在这些问题都有较好解决方法不影响抽取加载作业效率的情况下,都会采用变长(分隔符)的方式。
3)文件编码
文件导出需要统一编码,一般采用UAT-8编码,适应多国字符,但如果只有国内应用,也可以考虑GB18030或GBK编码,因为这两种编码中文字符比UTF-8编码节省1/3多的存储空间。性能较好。
(3)端到端方式需要考虑的要点
1)工具选择
目前市场上商用的ETL工具如DATASTAGE、INFORMATICA,开源的SQOOP都支持端到端的处理,商用工具还提供中间的图形化的数据转换编码功能,但商用软件一般成本较高,对于一些数据库的高性能驱动还需要收费,开源工具功能较通用,但性能需要优化,同时需要有一定的技术能力来定制功能和软件升级。
2)驱动选择
选择数据库提供的高性能原生(native)驱动,不要使用ODBC驱动,原生的驱动性能数倍于ODBC等通用驱动,采集数据较多时能很大提高效率。
3)字符编码
需要将数据从源系统导出时转换为目标数据库的编码格式,在全公司的数据库编码和数据仓库内的字符编码需要进行统一规范,既可以减少转换成本,也可以减少生僻字、无法转换等异常情况。
3、抽取和加载开发设计
(1)开发需求分析
由于源系统和目标系统数据库不同,数据质量不高,需要注意之间不同数据库之间的字段类型、长度、精度的转换,为后续数据加工做好清洗:
1)源系统字段没有明确精度和长度时,如Oracle中字段类型为number,没有定义精度,使用DATASTAGE时,当大于15位的number型数字接近最大值时会自动进位,所以在目标表设计字段精度时需要考虑这种异常情况。
2)字符字段的全角和半角是否都统一为半角;
3)字符字段左右空格是否都统一去掉;
在开发抽取加载作业时,需要配置以下主要信息,这些信息需要在数据调研和需求分析时提前确定:
(2)全表字段自动加载
一般开发时会采用固定字段抽取加载的方式,但由于源系统的表结构会经常变化,比如增加字段,字段长度变长,如果每次变化都要随之修改,许多时间会耗费在这些小修小改中,因此在进行抽取和加载时,需要根据源系统表结构自动生成对应的抽取脚本、目标表结构、加载脚本,自动适应源系统的表结构变化。
(3)源系统数据表变化通知和监控
虽然抽取和加载作业可以适应源系统表结构变化,但字段长度、精度变化、字段删除、代码值变化和字段含义变化会对后续数据加工作业带来影响。因此源系统需要将这些变更提前告知数据仓库或目标系统,否则就会产生生产问题,但源系统开发同事往往会产生遗漏,因此在公司数据治理制度中明确开发分工、数据问题责任界定。如在每次版本需求分析时需要考虑数据变化对数据仓库及其它系统的影响,并在测试阶段提前进行影响测试。在上线前也需要检查下系统表结构变化的DDL文件,分析影响并通知影响系统。
由于源系统字段的变化会影响到后续的数据流向的所有系统,因此在数据仓库的模型设计时需要提前设计冗余,减少字段长度、精度变化的影响,比如源系统字段长度是128,在数据仓库主数据模型中可以设计为500。减少对后续数据使用系统的影响。具体影响分析工具会在后续的“元数据管理”中详细说明。
由于只靠源系统的通知并不完全可靠,还需要做好源数据表结构变化和代码值变化的监控,每天对抽取的表结构和上一日进行比对,代码值与代码值映射表中比对,对发现未告知的情况进行邮件告警,并评估影响、及时处理,以免问题积累,需耗费大量精力修复。
(4)自动化脚本生成及执行
对于抽取加载作业需要做成标准化程序,即一个程序处理所有的抽取加载作业,根据不同的配置信息来完成所有作业,在调度工具中的所有抽取加载作业指向的是同一个程序,由这个程序根据传入的作业名和日期自动化生成脚本并执行。这样对于开发只是进行配置信息的确认和导入即可,不需要涉及代码开发。
许多ETL工具需要开发脚本再执行,特别一些商用的软件如DATASTAGE还提供了可视化的开发界面,但这样开发也比较耗时,对于使用的ETL工具如DATASTAGE、SQOOP也支持编程和脚本调用作业,所以可以用统一的程序来调用ETL工具进行抽取加载数据。提高开发效率,以下是供参考的流程。
(5)监控及异常处理
数据抽取和加载作业是数据仓库每天第一批作业,如果发生问题往往对整个批处理时效产生较大影响,甚至影响监管报送时效。因此需要对作业进行监控,及时预警。
因此在开发抽取和加载作业时,需要注意:
1)统一返回码并提供错误信息;
2)抽取和加载作业必须支持重跑,也就是在作业任何阶段发生异常时可直接重做,需要设计时考虑异常中断下,如何恢复初始数据;
3)调度平台需要根据抽取加载作业返回码判断作业是否成功,是否可以继续,对于异常情况需要及时与行内监控预警系统对接,按预警级别发送作业错误告警信息;
4)调度平台需要获取到作业的日志,对于一些ETL工具,这部分需要进行集成,以便减少后台日志查看的工作量,直接在调度平台进行问题定位。
(6)开发分工
ETL作为全行或全公司的批量数据交互基础架构,需要在全行或全公司进行规范和开发流程培训。ETL服务器及工具、抽取加载的标准程序由统一团队来维护,需要进行权限分配并提供培训及技术支持。
那对于抽取加载作业具体由源系统还是目标系统来开发不同的公司有不同的做法,
1)由源系统开发,如果源系统是将数据加工结果给到目标系统,由于比较熟悉数据,一般由源系统加工完后直接开发抽取加载作业将数据提供给目标系统;
2)由目标系统开发,目标系统比较熟悉数据用途及优先级,如果全表抽取的话数据加工主要在目标系统,由目标系统来开发抽取加载作业,源系统只需要做好数据权限分配即可。
3)由数据仓库团队统一开发,一般公司较小时可以由统一团队来开发,但随着开发项目增多,会出现瓶颈,影响效率,需要由各数据使用方来开发抽取加载作业。
————————————————
版权声明:本文为CSDN博主「acumen_leo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/acumen_leo/article/details/93399151
相关文章:

银行数据仓库体系实践(4)--数据抽取和加载
1、ETL和ELT ETL是Extract、Transfrom、Load即抽取、转换、加载三个英文单词首字母的集合: E:抽取,从源系统(Souce)获取数据; T:转换,将源系统获取的数据进行处理加工,比如数据格式转化、数据精…...

云计算入门——Linux 命令行入门
云计算入门——Linux 命令行入门 前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 介绍 如今,我们许多人都熟悉计算机(台式机和笔记本电…...

自然语言处理(NLP)的发展
自然语言处理的发展 随着深度学习和大数据技术的进步,自然语言处理取得了显著的进步。人们正在研究如何使计算机更好地理解和生成人类语言,以及如何应用NLP技术改善搜索引擎、语音助手、机器翻译等领域。 方向一:技术进步 自然语言处理&…...

让uniapp小程序支持多色图标icon:iconfont-tools-cli
前景: uniapp开发小程序项目时,对于iconfont多色图标无法直接支持;若将多色icon下载引入项目则必须关注包体,若将图标放在oss或者哪里管理,加载又是一个问题,因此大多采用iconfont-tools工具,但…...

丹麦公司注册优势 丹麦公司注册条件 丹麦公司注册注意事项
丹麦公司注册优势 1、开-放的商业环境,拥有公平透明的商业法律和制度。 2、简化的注册流程,无需繁琐的审批程序和复杂的材料准备。 3、全球认可的声誉,有助于提升贵公司的国际形象。 4、该国的政-府在坚持适度紧缩的财政政策,…...

C++PythonC# 三语言OpenCV从零开发(4):视频流读取
文章目录 相关链接视频流读取CCSharpPython 总结 相关链接 C&Python&Csharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料课件笔记) OpenCV 教程中文文档|OpenCV中文 OpenCV教程中文文档|W3Csc…...

vue element MessageBox.prompt this.$prompt组件禁止显示右上角关闭按钮,取消按钮,及点击遮罩层关闭
vue element MessageBox.prompt this.$prompt组件禁止或取消显示右上角关闭按钮,取消按钮,及点击遮罩层关闭 实现效果: 实现代码 MessageBox.prompt(请先完成手机号绑定, 系统提示, {confirmButtonText: 提 交,showClose: false,closeOnClic…...

Oracle 日常健康脚本
文章目录 摘要常用脚本 摘要 保持 Oracle 数据库的良好健康状况对于系统的可靠性和性能至关重要。本文将介绍一些常用的 Oracle 日常健康脚本,帮助您监控数据库并及时识别潜在的问题,以保证数据库的稳定运行。 常用脚本 1.查询数据库实例和实例级别的…...

leetcode670最大交换
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 注意: 给定数字的范围是 [0, 108] int maximumSwap(int num) {…...

XML 注入漏洞原理以及修复方法
漏洞名称:XML注入 漏洞描述:可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具 有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XM…...

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具
目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML&…...

Oracle 19c RAC集群管理 ---------关键参数以及常用命令
Oracle 19c RAC集群管理 ---------关键参数 Oracle 19C RAC 参数最佳实践 --开启强制归档 ALTER DATABASE FORCE LOGGING; --设置 30分钟 强制归档 ALTER SYSTEM SET ARCHIVE_LAG_TARGET1800 SCOPEBOTH SID*; --设置期望undo保持时间3h ALTER SYSTEM SET UNDO_RETENTION21600…...

时限挑战——深度解析Pytest插件 pytest-timeout
在软件开发中,测试用例的执行时间通常是一个关键考虑因素。Pytest插件 pytest-timeout 提供了一个强大的插件,允许你设置测试用例的超时时间。本文将深入介绍 pytest-timeout 插件的基本用法和实际案例,助你精确掌控测试用例的执行时限。 什么…...

Java入门篇:打造你的Java开发环境——从零开始配置IDEA与Eclipse
引言 “工欲善其事,必先利其器” 作为每一位Java初学者的必经之路,搭建合适的开发环境是至关重要的第一步。本篇将详细指导你如何安装并配置两大主流Java开发工具——IntelliJ IDEA和Eclipse,助你在编程之旅上迈出坚实的第一步。 一、Java开发环境准备 1. 下载并安装Java D…...

文本批量处理大师:简化文本处理,释放无限生产力!
在数字化时代,我们每天都要处理大量的文本数据,无论是办公文档、网页内容还是社交媒体帖子。然而,面对海量的信息,传统的一键式操作已经无法满足我们的需求。我们需要一个更高效、更智能的工具来提升我们的工作效率。今天…...

Go 方法
第 1 章 方法 Go 语言也支持面向对象的思想;所谓面向对象编程:1对象就是简单的一个值或者变量,并且拥有其方法2方法是某种特定类型的函数3 面向对象编程就是使用方法来描述每个数据结构的属性和操作; 使用者不需要了解对象本身的…...

深度学习与大数据在自然语言处理中的应用与进展
引言 在当今社会,深度学习和大数据技术的快速发展为自然语言处理(NLP)领域带来了显著的进步。这种技术能够使计算机更好地理解和生成人类语言,从而推动了搜索引擎、语音助手、机器翻译等领域的创新和改进。 NLP的发展与技术进步…...

GPT4+Python近红外光谱数据分析及机器学习与深度学习建模
详情点击链接:GPT4Python近红外光谱数据分析及机器学习与深度学习建模 第一:GPT4 1、ChatGPT(GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变) 2、ChatGPT对话初体验 3、GPT-4与GPT-3.5的区别,以及与国内大语言模…...

Java项目:12 Springboot的垃圾回收管理系统
作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 1.介绍 垃圾分类查询管理系统,对不懂的垃圾进行查询进行分类并可以预约上门回收垃圾。 让用户自己分类垃圾, 按国家标准自己分类…...

HarmonyOS自定义弹出对话框CustomDialog并传递变量
HarmonyOS定义了一系列弹窗反馈类的组件 和前端开发框架VUE3配套生态库element plus中的提供各种组件相比,还是要少一些。可能是手机端操作和PC端操作的差异导致的 如果内置的弹窗不满足要求,可以基于CustomDialog自定义出各种个性化的反馈组件。 首先新建一个ets文件,…...

React16源码: React中的renderRoot的错误处理的源码实现
renderRoot的错误处理 1 )概述 在 completeWork这个方法之后, 再次回到 renderRoot 里面在 renderRoot 里面执行了 workLoop, 之后,对 workLoop 使用了try catch如果在里面有任何一个节点在更新的过程当中 throw Error 都会被catch到catch到之后就是错误…...

强化学习:MuJoCo机器人强化学习仿真入门(1)
声明:我们跳过mujoco环境的搭建,搭建环境不难,可自行百度 下面开始进入正题(需要有一定的python基础与xml基础): 下面进入到建立机器人模型的部分: 需要先介绍URDF模型文件和导出MJCF格式 介绍完…...

8.Gateway服务网关
3.Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式…...

JVM篇----第四篇
系列文章目录 文章目录 系列文章目录前言一、虚拟机栈(线程私有)二、本地方法区(线程私有)三、你能保证 GC 执行吗?四、怎么获取 Java 程序使用的内存?堆使用的百分比?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…...

WPF引用halcon的HSmartWindowControlWPF控件一加上Name属性就,无缘无故运行后报错
报错内容: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MC1000 未知的生成错误“Could not find assembly System.Drawing.Common, Version0.0.0.0, Cultureneutral, PublicKeyTokencc7b13ffcd2ddd51. Either explicitly load this assembly using a method …...

Vue3组件库开发 之Button(2) 未完待续
Vue3组件库开发 之Button(1) 中新建项目,但未安装成功ESLINT 安装ESLINT npm install eslint vite-plugin-eslint --save-dev 安装eslint后,组件文件出现错误提示 添加第三方macros ,虽然不是官网但很多开发者都是vue3开发人员 安装macros…...

k8s节点RouteCreated为false
出现该情况后,一般是初始化节点失败。因此,需要把节点从集群中移除,再加入到集群中,即可解决。 通常出现这个状况后,该节点上是没有被分配pod ip的,可以通过命令查看: # 发现没有PodCIDR、PodC…...

Kafka(二)原理详解
一 、kafka核心总控制器(Controller) 在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。 作用:leader副…...

Flutter 屏幕适配之相对尺寸适配
在Android中我们可以通过脚本来动态生成适配于各个厂商的屏幕的相对尺寸。 那么在Flutter中我们如何通过相同的思路来实现同样的效果呢?我们知道,Android的每个厂商的屏幕大小存在非常大区别。有些长,有的短,有的粗,有…...

在线预约小程序源码系统:适合任何行业的在线预约,快捷方便,省时省心 带完整的搭建教程
互联网技术的发展,人们对便捷服务的需求越来越高。特别是在线预约服务,无论是在医疗、美容、餐饮还是其他行业中,用户都希望能够通过简单的方式预约到所需的服务。然而,传统的预约方式往往效率低下,不能满足用户的快速…...