了解 ETL 流程
Posted
技术标签:
【中文标题】了解 ETL 流程【英文标题】:Understanding ETL processes 【发布时间】:2013-10-31 13:49:49 【问题描述】:ETL 似乎是一项非常常见的任务。我基本上是在阅读设计人员在http://it.toolbox.com/blogs/infosphere/17-mistakes-that-etl-designers-make-with-very-large-data-19264 上使用大量数据时所犯的一些 ETL 错误
以下几点我需要一些实用的见解
a) 将插入、更新和删除合并到相同的数据流/相同的流程中。这有什么问题?
b) 同时采购多个系统,具体取决于异构数据系统。
c) 没有在需要访问的源/查找上生成正确的索引。
d) 相信‘我需要一次性处理所有数据,因为这是最快的方式’
有什么帮助吗?
【问题讨论】:
查看此链接cali97.blogspot.in/2010/02/etl-performance-tips-for-large.html 【参考方案1】:a) 数据完整性问题
b) 数据质量会提高,并且较小块的故障会减少。
c) 需要更多时间才能完成
d) 错误的索引会导致更多时间。最好有基于您正在执行的查询的索引。 即语句的 where 子句中的内容
e) 将数据拆分为更小的数据集并对其进行处理将是一种有效的解决方案 您的 BITS-PILANI(WILP) 学生仪式。
【讨论】:
例子是最难的部分。【参考方案2】:A) 如果您发现任务需要很长时间才能完成(由于数据量增加),然后在技术上将它们拆分出来变得太困难,就会出现问题。但是将任务拆分可能会增加数据加载不一致的可能性(即您的 DELETE 工作但您的插入失败,这意味着您丢失了数据加载)
B) 我不明白这里的“同时” - 你是说同时吗?如果您同时尝试从多个系统加载数据,您可以最大限度地利用带宽(网络、磁盘等)。如果您需要在离线时加载该数据,有时您别无选择。
C) 是的,不正确的索引会减慢访问速度。但通常供应商不喜欢您在源数据库中创建索引。
D) 性能调优(最快的方法)是一个复杂的话题。在某些情况下,一次完成可能会更快。在其他情况下可能不会。
【讨论】:
以上是关于了解 ETL 流程的主要内容,如果未能解决你的问题,请参考以下文章