谈谈对数据仓库,ETL 的理解?
回答·8
最热
最新
- 说下我的理解吧,基于大数据,我们没有使用现成的的 etl 工具,对于整个 etl 的过程自己写代码进行处理,其实一个相对成熟的程序吧,不像想象的那么简单,需要考虑很多问题 先说抽取 面对不同的源端,对象多元化,可能是银行、三方网贷,银联等等,数据源可能是数据库、结构化文件、非结构化文件等等,文件可能是压缩文件、加密文件、流文件等,文件的编码集可能是 gbk 可能是 u8,对于文件类在收到文件需要进行检验,是否收到的文件无损坏,对于数据库类的源,需要控制抽取的并发、时间点、是否会锁等等系列的问题 在数据进行清洗标准化的时候,因为多元化的源,在进行标准化的时候会有很多的点需要考虑,比如分隔符、字符集、特殊字符、生僻字等,都需要进行判断等 在入库阶段我们做了结构自适应,即数据入库阶段自动适应结构变化,在建表阶段要考虑是表类型、是否分区、分捅键、桶的个数,分捅键还需要考虑后期时候会变更等、不同类型数据库类型不兼容问题,不同编码集占不同字节数问题等,数据入库需要考虑效率问题、锁问题(但是需要考虑异常时多进程操作同一个表)、元数据存储问题、数据一致性检测问题 我的理解 etl 就是把多元化的数据,在保障质量的前提下,正确存储到 O 层,基本工作就完成了, 感觉 etl 过程看似不难,但是下面有很多的点还是得考虑,目前工具化程度比较高的,得益于于工具的完整性,让使用的人觉得简单,但是对于自己封装的还是有技术含量的
- SMARTBI 申请试用 EN 数据的 ETL 过程 在日常的开发或交流中,会多次提到了 ETL 一词,它 是 Extract Transformload 三个英文单词首字母 的简写,中文意为抽取、转换、装载。ETL 是建立数 据仓库最重要的处理过程,也是最体现工作量的环 节上一般会占到整个数据仓库项目工作量的一半以 其中:抽取:从操作型数据源获取数据 转换:转换数据,使之转变为适用于查询和分析的形 式和结构 装载:将转换后的数据导入到最终的目标数据仓库。 ETL-E:抽取 抽取操作从源系统获取数据给后续的数据仓库环境使 用。这是 ETL 处理的第一步,也是最重要的一步。数 据被成功抽取后,才可以进行转换并装载到数据仓库 中。能否正确地获取数据直接关系到后面步骤的成 败。设计和建立数据抽取过程,在 ETL 处理乃至整个 数据仓库处理过程中,一般是较为耗时的任务。源系 统很可能非常复杂并缺少相应的文档,因此只是决 定需要常数据都不是只抽取一次,而是需要以一定的时间间隔反 SMARTBI 申请试用 EN 复抽取,通过这样的方式把数据的所有变化提供给数 据仓库,并保持数据的及时性。除此之外,源系统一 般不允许外部系统对它进行修改,也不允许外部系统 对它的性能和可用性产生影响,数据仓库的抽取过程 要能适应这样的需求。 如果已经明确了需要抽取的数据,下一步就该考虑从 源系统抽取数据的方法了。对抽取方法的选择高度依 赖于源系统和目标数据仓库环境的业务需要。一般情 况下,不可能因为需要提升数据抽取的性能,而在源 系统中添加额外的逻辑,也不能增加这些源系统的工 作负载。有时,用户甚至都不允许增加任何“开箱即 用”的外部应用系统,这叫做对源系统具有侵入性对 于数据抽取,一般会有两块方式:逻辑抽取和物理抽 取。 EtL-:转换 数据从操作型源系统获取后,需要进行多种转换操 作。如统一数据类型、处理拼写错误、消除数据歧 义、解析为标准格式等。数据转换通常是最复杂的部 分,也是 ETL 开发中用时最长的一步数据转换的范 围极广,从单纯的数据类型转化到极为复杂的数据清 洗技术在数据据仓库中,需女口红细联不吗⊥应一的规则 SMARTBI 申请试用 EN 和函数。有些数据可能不需要转换就能直接导入到数据仓库数据转换一个最重要的功能是清洗数据,目的是只有“合规”的数据才能进入目标数据仓库。这步操作在不同系统间交互和通信时尤其必要 etL-L:装载 ETL 的最后步骤是把转换后的数据装载进目标数据仓 库。这步操作需要重点考虑两个问题,一是数据装载 的效率问题,二是一旦装载过程中途失败了,如何再 次重复执行装载过程。要提高装载的效率,加快装载 速度,可以从以下几方面入手,首先保证足够的系统 资源。数据仓库存储的都是海量数据,所以要配置高 性能的服务器,并且要独占资源,不要与别的系统共 用。在进行数据装载时,要禁用数据库约束(唯一 性、非空性,检查约束等)和索引,当装载过程完全 结束后,再启用这些约束,重建索引,这种方法会很 大的提高装载速度。
- Etl 解决 bi 系统的数据传输问题。 数据仓库解决 bi 系统的数据存储和计算问题。
- 谈谈自己的理解,并不是在搬书,首先总体来说这是一个过程 是数据从原数到结果数的一个过程! 在当下大数据背景下,做一个 ETL 过程 初级是实现,升级是优化…… 递次过程中 都有要考虑的细节,初级中 应是基于需求看数据,基于数据看逻辑!达到实现的目的;升级过程中 是基于结果的优化和迭代需求,满足第一步结果数据交付的背景下,优化过程的运行效率,考虑上下游依赖等细节问题。 大体的是这么的一个过程!!!
- 最基础的其实还是 Sql,需要懂业务,懂数据库,保证数据处理的质量和性能。
- ETL 面对更多是对底层业务数据逻辑理解,数仓更多是工具的使用,类似 DBMS 有很多。
- 这是对数据处理的过程,没啥东西。就是数据接入,解析,清洗脏数据,或对数据进行加密等后,把数据放到那里的一个过程,比较简单
- 首先谢邀,来自我们项目经理的劝退,这是一个特别无聊的工作,别来😂