云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

亚马逊云_可扩展云存储_稳定性好

小七 141 0

博客自从第一批自动ETL工具出现以来,数据科学界一直在争论使用此类工具的优点,而不是通过SQL、Python和其他编程或脚本语言进行手动编码。我将尝试介绍一个自动化ETL的案例,并从我自己的经验中提供一些示例,以演示数据分析师、数据科学家和开发人员如何从使用ETL工具(或者更好的是,具有内置ETL功能的BI工具)中获益。什么是ETL?在深入研究它之前,让我们花点时间来解释Extract Transform Load的概念,或者用它更常见的缩写-ETL来解释。这是数据准备过程中的一个关键阶段,因为它确保我们使用的是干净和准确的数据,并且我们分析数据库中出现的每一条信息都有一个单一的真实来源。它包括三个阶段:将存储在各种系统(平面文件、云存储库、关系数据库等)中的数据提取到一个集中的数据中存储库。转换根据一个统一的模式,这可能包括过滤某些字段\列或修改不同表中的数据,以确保所有数据源都使用相同的语言语言。加载将新转换的数据转换为集中的数据存储库或数据仓库。这和英语教学一样吗?另一个可能在数据准备上下文中使用的术语是ELT,即提取负载转换。在这个过程中,改变的是时间顺序:首先将数据加载到分析存储库中,然后进行转换(附带说明一下,这是Sisense用于转换数据的过程)。但是,对于本文的目的来说,这种区别并不重要,因此我们将把这两个过程称为ETL。因此,在没有更多的ado的情况下,让我们展示使用自动ETL工具而不是手动编码和脚本的论点:1性能和稳定性商业工具是由工程师团队构建的,在处理大型或完全不同的数据集时,不断提高性能和稳定性。在某些情况下,这包括非常深入的,在操作系统下面的指令,关于如何使用并行处理和SIMD等计算资源,在计算机内存和CPU缓存的各个层上映射和移动数据。虽然从技术上讲,通过手工编码可以获得相同的结果,但需要投入的精力是巨大的。而且,即使您成功地开发出了一个工作的、高性能的系统,您仍然无法真正保证随着您的数据和用例的复杂性的增长,它将能够承受更大的负载。在处理简单或较小的数据时,这不是一个问题,但这并不是自动ETL工具的典型用例。从样本数据到敏捷分析我曾经遇到过一家大型电子商务公司,它正在处理数十亿行数据。他们有一个手动系统,而且很有效——然而,如果他们想看到快速的结果,他们必须通过分析样本和推断结果来"收缩"原始数据。这是一个工作系统,但它不是敏捷的,也不是特别准确,因为它们依赖于样本数据。在部署了托管商业智能和ETL解决方案后,该公司可以将其所有数据纳入考虑范围,并获得无限范围问题的答案,特别是因为他们现在享受到了更强大的性能。2管理与规模自动ETL工具通常提供一个可视化环境,允许您"查看"ETL过程的大部分内容(数据的来源和去向、在其中执行的计算等等),这种方式的代码无论是精心编制和记录的,都永远无法复制。来源:Sisense Elasticube经理这种类型的可视化表示可能会惹恼核心程序员,但从长远来看,它使ETL和数据建模过程更易于管理。当处理困难的、结构化的和非结构化的数据时,手工编码的ETL总是会转换成很多很多行的代码。同样,它可能会起作用,但在更复杂的情况下很可能会导致麻烦。例如,考虑模式更改:需要添加新的数据源,并且需要更新数据模型。在手动方式中,您需要返回绘图板,进行必要的更改,然后运行一系列测试,以确保您没有破坏任何东西;在较大的数据团队或部署中,每当需要进行简单的修改时,都需要多人密切熟悉代码。另一方面,可视化的ETL层使过程更透明、更易于修改,并在出现问题时进行故障排除。更重要的是:每一个变更都有明确的文档记录,可以立即发现,并且可以追溯——而不必花费数小时或数天的时间仔细研究代码来定位某个开发人员所做的更改,而开发人员在此期间已经过了年假。在OLAP中迷失这种情况在依赖遗留OLAP实现的组织中通常很常见。由于ETL是一个不断发展的过程,随着时间的推移,它变得越来越复杂,一个客户多年来一直在使用这样一个系统,它正在成长为一个无法管理的怪物,每一个新报告都需要多次迭代。虽然很难改变整个组织的习惯,但一旦他们看到在可视化环境中进行和跟踪模式更改是多么简单和容易,他们就再也不会回头看了。三。简化自动化ETL是一种节省时间的方法,因为它可以让你,嗯……自动化许多需要手动完成的过程。一个非常简单的例子可以是计划的更新——这是一项卑微、基本的任务,但仍然至关重要。有一个工具可以处理这些问题,并在遇到问题时通知您,这意味着您可以少担心一件事。此外,具有ETL功能的商业智能工具附带了一个丰富的本机支持的数据源库,它们可以连接并提取数据,这意味着您不必为API调用或手动导出而烦恼。对于新项目或数据模型,某些过程可以很容易地保存和重用。简单的连接和联合是通过拖放完成的。所有这些加在一起,会累积大量的时间,你可以投入到实际中去发现数据中的洞察力,而不是努力让它变得有用。这种自动化可以更进一步:对于真正简单的用例,自动化ETL允许业务用户通过简单地连接两个表之间的公共字段来完成自己的数据建模。对于开发人员和分析师来说,这意味着更少的体力劳动:由于业务用户可以自由地执行他们自己的独立mashup(再次假设mashup相当简单),高级用户可以将他们的时间和精力投入到更复杂、更有趣的项目中。3天vs 3分钟我们能源部门的一个客户一直在使用Excel进行手动数据混搭。该公司覆盖了大约20个地区,每个地区都生成了一个庞大的Excel文件。加入所有这些表格需要3个人每周花费近3天的时间,所有这些工作都是在进行任何分析之前完成的——只是为了准备数据。该公司意识到是时候实施BI解决方案了,很快发现一个单一的自动化ETL工具可以在几分钟内完成这一联合,而且一旦建立了系统和数据模型,就不需要投入额外的工作时间。…和反论点当然,所有这些并不是说自动化ETL是100%的时间和每一个可能的用例和组织的方式。拥有大型数据科学团队的公司可能会发现,继续使用他们久经考验的手动流程,而不是实施一种新的工具,这显然会有一个学习曲线,需要一些人去适应。习惯于用代码思考的开发人员可能会对可视化界面感到失望。由于每个自动化的ETL工具都有自己的工作流程和逻辑,与手动创建的无限可能性相比,它似乎有局限性。底线:是时候实现自动化了代码"纯粹主义者"总是对任何简化手工编码的工具持保留态度,但在许多情况下,优点大于缺点。例如,C++绝对比JavaScript强大,但是大多数人都同意,在很多情况下,后者更可取。我相信,在大多数需要大量数据准备的情况下,自动化ETL将提供比手动编码更干净、更透明和更直接的体验,尤其是在处理快速变化的大数据时。Chris Meier是Sisense分析工程部经理。标签:复杂数据|数据分析|数据建模|数据准备|数据科学