在当今的数字化时代,企业面临的一个普遍挑战是如何从海量的、未经组织的原始数据中提取有价值的业务洞察。这些数据可能存储在各种存储系统中,包括关系型和非关系型数据库。但是,如果没有上下文,这些数据对于分析师或数据科学家来说是无用的。
为了使大数据变得有用,需要能够协调和操作化流程的服务,从而将未经组织的原始数据转化为可操作的业务洞察。Azure Data Factory正是为此而设计的,它通过执行复杂的混合提取-转换-加载(ETL)、提取-加载-转换(ELT)和数据集成项目,使企业能够将原始数据转化为可操作的业务洞察。
想象一下,一家汽车租赁公司收集了数以PB计的汽车租赁日志,并将这些数据存储在云数据存储中。该公司希望利用这些数据来洞察客户人口统计、偏好和使用行为。有了这些洞察,公司可以更有效地向客户推销产品,改善客户体验,并开发新功能,从而推动业务增长。
为了分析存储在云数据存储中的汽车租赁日志,公司需要包括上下文数据,如客户信息、车辆信息以及广告和营销信息。然而,这些上下文信息存储在本地数据库中。因此,为了利用汽车租赁日志,公司将不得不使用本地数据库中的数据,并将其与云数据存储中的日志数据结合起来。
为了从其数据中提取洞察,公司可能需要使用云中的Spark集群处理合并后的数据,然后将转换后的数据发布到云数据仓库中,如Azure SQL数据仓库,以便在其上轻松构建报告。这个工作流可能需要自动化,并且需要通过Azure Monitor、API、PowerShell和Log Analytics进行监控和管理。
Azure Data Factory是一个基于云的数据集成服务,允许在云中创建数据驱动的工作流,以协调和自动化数据移动和数据转换。这意味着可以使用Azure Data Factory创建和调度管道(数据驱动的工作流),这些管道可以从不同的数据存储中获取数据。Azure Data Factory还可以使用计算服务,如Azure HDInsight Hadoop、Spark、Azure Data Lake Analytics和Azure Machine Learning来处理和转换数据。此外,可以将输出数据发布到数据存储,如Azure SQL数据仓库,然后由业务智能(BI)应用程序使用。简而言之,Azure Data Factory允许企业将原始数据组织成有意义的数据存储和数据湖,从而使企业能够做出更好的决策。
Azure Data Factory的管道通常执行以下四个步骤:
连接和收集
在构建信息生产系统时,第一步是连接到所有所需的数据源。这些数据可以是结构化的、非结构化的和半结构化的。它可以位于本地或云中,并以不同的速度和间隔到达。还需要连接到数据处理的源,如数据库、文件共享、软件即服务和FTP Web服务。一旦连接到数据和处理的所有源,那么需要将数据移动到一个集中的位置以便处理。公司完全可以通过构建自定义数据移动组件或编写自定义服务来做到这一点。然而,这样的系统难以集成和维护,而且成本高昂。相比之下,一个完全托管的服务可以提供更高级别的监控、警报和控制。Azure Data Factory允许通过使用其复制活动(如下所述)简单地将数据从本地数据存储和云数据存储移动到集中的数据存储,而不是构建自定义数据移动组件。
复制活动
复制活动执行以下步骤:
它从源数据存储中读取数据。
它执行序列化/反序列化、压缩/解压缩、列映射等。
它将数据写入目标数据存储。
转换和丰富
一旦数据位于集中的数据存储中,可以使用HDInsight Hadoop、Spark、Data Lake Analytics和Machine Learning等来处理或转换数据。转换后的数据可以根据可控和可维护的时间表生成。
发布
数据经过精炼后,可以加载到分析引擎中,如Azure数据仓库、Azure SQL数据库、Azure CosmosDB。然后,可以从使用的任何业务智能工具指向分析引擎。
监控
构建了数据管道并精炼了数据后,需要监控活动和管道的成功和失败率。Azure Data Factory通过Azure Monitor、API、PowerShell和Log Analytics内置了对管道监控的支持。
Azure Data Factory中有四个关键组件。这些组件共同提供了可以在其中构建数据驱动工作流的平台。一个Azure订阅可能由一个或多个数据工厂组成。
管道
执行任务的逻辑组称为管道。一个数据工厂可以有一个或多个管道。例如,一个管道可以由一组活动组成,这些活动从Azure Blob中获取数据,然后在HDInsight集群上运行Hive查询以分区数据。使用管道意味着可以将活动作为一组来管理,而不是单独管理。活动可以根据需要顺序或独立并行运行。
活动
活动是管道中的处理步骤。Azure Data Factory支持三种类型的活动:数据移动活动、数据转换活动和控制活动。
数据集
数据集代表数据存储中的数据结构。它们指向希望在活动中用作输入或输出的数据。
链接服务
链接服务类似于连接字符串。它们定义了数据工厂需要连接到外部资源的连接信息。
链接服务有两个目的:
它们用于表示数据存储,包括本地SQL Server数据库、Oracle数据库、文件共享或Azure Blob存储帐户等。
链接服务还用于表示可以托管活动执行的计算资源。
触发器
触发器是决定何时需要启动管道执行的处理单元。根据事件的类型,有几种不同类型的触发器。
管道运行
管道运行是管道执行的实例。管道包括参数,管道运行是通过向这些参数传递参数来实例化的。可以在触发器定义中传递参数,也可以手动传递。
参数
参数在管道中定义,它们是只读执行的键值对。管道内的活动使用参数值。数据集和链接服务都是参数类型。
控制流
控制流是组织管道活动的方式。这可以包括将活动按顺序排列、分支以及在管道中定义参数并向这些参数传递参数。