首页天道酬勤分布式系统基础架构(java分布式架构)

分布式系统基础架构(java分布式架构)

admin 12-04 08:36 373次浏览

传统的ETL通常通过使用昂贵的ETL工具(Datastage、SSIS等)来完成。)基于高性能小型机。这种方法已经很难满足“大数据”时代TB甚至PB级别的数据ETL需求。如何在有限的时间内高效、优质地完成海量数据的ETL工作,也对ETL技术的架构设计提出了更高的要求。

目前主流的解决方案是横向扩展传统的ETL,将ETL工作转化为并行或分布式架构,从而缩短数据处理时间。目前,有两种分布式ETL技术架构:

3.1基于多代理模式的ETL技术架构

该方法将多Agent系统技术1引入到分布式计算环境中。分布式ETL框架将数据抽取、数据转换、数据加载对应到每个agent,同时元数据管理、作业管理、转换功能管理等每个模块对应一个Agent。然后,利用主体间的协作性、主动性和交互性,构建了分布式ETL框架。

图1

上图展示了基于代理的分布式ETL架构。ETL任务设计模块为用户提供了ETL工作流的设计界面。“ETL任务管理”模块是分布式ETL的协调中心,承担上传ETL作业、定义转换函数和向上浏览日志(用户)、向下提供基于元数据的ETL作业转换规则和作业调度(ETL执行)等功能。“ETL任务执行”模块是一个具体的执行引擎,分布在各个实体服务器上。通过各种Agent的协作完成ETL任务。

该架构可以更好地解决分布式系统中的负载均衡问题,还可以实现准实时的数据分析和存储。然而,这种方法不能保证每个Agent的稳定性。一旦代理出现故障,整个系统将处于崩溃状态,甚至数据可能会丢失。

3.2基于MapReduce的ETL技术框架

Hadoop技术诞生之初就瞄准了大数据的存储和分析。因此,在hadoop框架下实现基于MapReduce的ETL是很多企业的自然选择。

图2

上图展示了一个典型的基于MapReduce的ETL技术架构。服务器主要包括元数据管理模块、执行引擎模块和数据访问模块。元数据管理模块是系统的基础模块,描述系统中所有数据结构的定义,提供元数据存储和访问服务。系统的其他模块通过公共接口从元数据管理模块获取元数据信息。此外,元数据管理模块提供了导入和导出元数据的接口。执行引擎模块是系统的核心模块,分为流程分析和流程执行两个模块。在流程分析模块中,执行引擎获取执行流程的元数据信息,并根据该信息生成相应的工作流。执行模块完成从数据转换到数据分析的所有任务。数据访问模块提供公共数据访问接口,屏蔽各种数据源之间的差异,统一查询、删除、修改数据。

在基于MapReduce的ETL技术框架下,开发人员只需要Map和Reduce两个功能进行数据转换的并行处理,并基于hadoop生态系统提供的API接口进行数据的提取和加载。这样可以提高开发效率,系统的并行处理能力也有成熟的hadoop生态系统做保障。但是MapReduce程序启动耗时,不适合数据的实时加载和存储,MapReduce操作过程的优化也需要大量的时间。

理解对象存储Springboot框架怎么实现自动装配云分发网络有什么用处?深入解析设计模式中的装饰器模式在iOS应用开发中的实现Linux常见信号和网络传输层知识分享电商应用场景 无人化智能盒子 UBoxLinux(centos7)下的文件操作PyTorch中Tensor和tensor的区别是什么JAVA数组基础概览 SSL证书管理 USSLJAVA开发环境JDK的安装
大数据etl需要会哪些(大数据etl解决方案) transform skew(js transform)
相关内容