元数据管理平台 开源(开源元数据管理pentaho)

网友投稿 1009 2023-02-27

本篇文章给大家谈谈元数据管理平台 开源,以及开源元数据管理pentaho对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享元数据管理平台 开源的知识,其中也会对开源元数据管理pentaho进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

壮实学数据技术07:元数据

hi,米娜桑,我是大家的怪力少女赵壮实!

又是一个美好的周六的早上,今天我们来聊聊——元数据!

元数据也是近两年才火热起来的产品岗位和概念,因为偏向于后侧,相比于数据分析、数据BI、用户分层、归因等酷炫的名词下,元数据就像一朵白莲花。

01   什么是元数据?

好吧,元数据为什么可以睥睨一切呢?因为它是“元”数据。

啥是“元数据”——metadata?

壮实见到这个词语,第一次流下了久别重逢的泪水,甚至有点想笑,莫非,元数据,是一位熟悉现代主义思潮的大佬起的名字?

好的,壮实先从人文视角解释一下什么叫做“元”。

元,依旧指的是原始、原初的意思。我们那元叙事、元数据、元小说给大家讲讲什么是“元”。

1.“元”+“叙事”=元叙事

对于叙事的完整解释,即对历史的意义、经历和知识的叙述

2.“元”+“数据”=元数据

有关于数据的数据

3.“元”+“小说”=元小说

元小说,作家自觉地暴露小说的虚构过程,产生间离效果,进而让接受者明白,小说就是虚构,不能把小说当作现实。这样,虚构在小说中也就获得了本体的意义。

好吧,简单来说,元就是这个东西原始的框架、元素。在现代主义大工业的背景下,人类一切进入了“秩序模式”,所以需要“元”。所以就有了万物“元”化。

是的,大家是不是最近还会听到一个词,叫做“元认知”。没什么神奇的,套用概念,元认识就是关于认知的认知,也许善友老师“第一性原理”和叫兽“时间的朋友”或许是“元认知”?

那元数据,我们就好理解了,就是“关于数据的数据”,有了元数据,它可以让我们的数据生产、使用更加秩序化。

数据生产,有的人会叫做“后台元数据”:指导数据清洗装载工作。

数据使用,有的人会分为“前端元数据” :描述性、帮助我们更加流畅的使用报表和查询工具。

对于元数据的分类,我们可以分为以下三类:

业务元数据  从业务层面描述元数据。

技术元数据  数据技术层面上的各种统计信息,包含数据类型、长度、血缘沿袭、数据剖析结果等。

处理过程元数据  ETL自身执行结果统计信息,如多少行被加载、多少行数据被丢弃以及数据加载时间等。

02    元数据核心理念和关键要素

话不多说,我们来上阿里云官方ppt:

好的,如果你们看不懂,壮实还画了一个图:

原来的数据生产-使用流程

涉及的相关的元数据

03    元数据产品

目前国内的元数据管理工具大概有三类。

一是像IBM、CA等公司都提供的专门工具,比如IBM收购Ascential得到的MetaStage,CA的DecisionBase;

二是像DAG的MetaCenter,开源产品Pentaho Metadata,它们不依托于某项BI产品,是一种第三方的元数据管理工具;

开源产品Pentaho Metadata示意图

三是像普元、石竹这样的集成商也有自己的元数据管理工具:普元MetaCube、新炬网络元数据管理系统、石竹MetaOne等。

普元元数据驱动的微服务架构:

https://cloud.tencent.com/developer/article/1080067

https://cloud.tencent.com/developer/article/1080078

新炬网络元数据管理系统:

http://www.shsnc.com/index.php?m=contentc=indexa=listscatid=188

石竹MetaOne产品图:

专门的元数据管理工具,对自家产品兼容较好,一旦涉及跨系统管理,就不尽如人意了。

04    元数据的功能和价值

如果你问我,元数据的功能和价值在哪里?目前,业界开展了一些实践:

      1、血缘分析:向上、向下表级、字段级别的追溯数据。血缘分析可以让您轻松知道:“我正在查看的报告数据来源是什么?”、“数据经过哪些转换处理?”、“销售额”从包含税费更改为不包括税费,哪些下游字段受到了影响。血缘分析可以满足许多行业(包括医疗、金融、银行和制造业等)对所呈现数据的特殊监管及合规性要求。

     2、指标一致性分析:定期分析指标定义是否和实际情况一致。大佬会上对不齐数据是何等的尴尬。。。。

     3、实体关联查询:事实表与维度表的代理键自动关联。

05    后记

打破一切:从人文后现代主义到数据后现代主义。

20世纪60年代,德国、法国、美国等出现了反西方近现代体系哲学倾向的思潮,学术上称之为“后现代主义”。你也许不知道啥是后现代主义,来一张图感受一下:

对!就是达利的《记忆的永恒》。

后现代主义就是一种用无序反对有序,用个人呓语反对宏大叙事、用解构反对结构的一种精神。

当代美国活跃的后现代主义者之一格里芬就说:“如果说后现代主义这一词汇在使用时可以从不同方面找到共同之处的话, 那就是,它指的是一种广泛的情绪,而不是一种共同的教条———即一种认为人类可以而且必须超越现代的情绪。”

所有理论的背后,都是这个时代的主流认知+情绪。数据也不例外。我们来看看《壮实学数据技术01》中的数据仓库两位大佬之争,就知道人们在反复横跳在秩序和速度中。

所以,我们今天要考虑,元数据在今天的合理性是什么?

在杂乱数据被管理起来之后,是不是在复杂、程式化上需要做做减法?

数据多≠信息多。如何把数据变为信息,是每一个数据人需要持续思考的事情。

元数据管理框架如何制定,方法都在这!

元数据管理计划实施数量将持续增长到2021年以后。根据DATAVERSITY®数据管理趋势报告,有84%的业务受访者已经实施了元数据管理计划或已经开始制定计划。一家公司在元数据管理方面的成功取决于实施前是否依托于一个有用的元数据管理框架。

处理好元数据对于公司而言,在于遵守数据法规,提高数据质量,探索机器学习以及更好地使用数据。但是元数据管理超越技术,而主要依赖支持它的人员和政策。

一、什么是元数据管理框架?

元数据管理框架描述了一种使数据和元数据资产更易于访问和用于实现业务目标的组织方法。它根据组织的需求,动员并扩展了作为元数据管理基础的现有资源。

元数据管理框架发生在公司基础架构级别和运营级别。在更高层次上,元数据管理框架是伊恩·罗兰兹(Ian Rowlands)DAMA芝加哥一章中的解释说,需要行政支持和 数据策略制定更高的业务远景。此外,元数据管理框架还指导人员和自动化算法在日常工作中捕获、集成、管理和发布元数据。

从战略和战术角度考虑,元数据管理框架必须涵盖项目内部或与项目内进行交互的任何人。因此,元数据管理框架需要得到数据治理程序。

数据治理将有关元数据的可用性,具有元数据的组织优先级以及何时以及如何交付元数据的信息通知元数据管理框架。作为反馈,元数据管理框架将有关数据合规性、数据可访问性和数据质量的信息告知企业数据治理。将元数据管理和数据治理基础视为串联工作并提供数据解释。

二、选择元数据管理框架之前要考虑的因素

在创建任何元数据管理框架之前,请考虑以下事项:

获得元数据管理框架基准:即使组织中不存在正式的元数据管理框架,隐性的也存在。技术文件映射数据架构,经验丰富的业务分析师之外的人可以理解报告数据,而数据输入过程则提供了有关组织数据及其元数据管理框架片段的上下文。

获得有关人员,流程和技术已经存在以及它们如何通知组织的元数据管理框架的基准是很有意义的。使用“合格且知识渊博的数据专业l(和其他熟练的人才)来管理和解释“数据就绪性评估”以及“数据成熟度”模型,则提供了良好的元数据管理框架起点。进而,公司可以得到改善元数据管理框架的具体建议。

清楚元数据管理框架将实现的目标:清楚为什么组织需要管理元数据和实现元数据管理框架。元数据管理有助于降低培训成本,在整个数据系统中更好地使用数据并简化通信,但并不能解决所有数据问题。

如果组织优先于客户体验或开发产品和服务而不是数据共享和数据发现,那么与其他选择相比,元数据管理框架可能不是最佳解决方案。鉴于任何有用的数据管理框架都倾向于具有昂贵的设置,因此组织首先需要认真研究为什么要实施元数据管理框架。

提高集体数据素养:使用元数据需要已同步组织定义者,生产者和用户之间的协作和可重复的动作。认识到这类人存在于不同的组织部门中,并且有各种各样的跨功能技能。有些人具有很高的技术和分析能力,而另一些人则具有较软的技能。

不同的公司子集团可能会从非常不同的角度考虑并应用任何元数据管理框架。一个人的定义可能与另一个人的定义不同。

集体数据素养通过了解如何解释,交流和使用元数据更好地掌握公司数据资产,帮助利益相关者理解元数据管理框架。通过元数据进行规划,以全面了解业务需求,指导人们为什么以及如何使用任何元数据来完成工作或实现目标。

利用已经存在的元数据管理框架片段:在花钱购买工具和资源以建立新的元数据管理框架之前,请使用组织中已经存在的元数据管理框架来快速获胜并展示其价值。让知道如何解释客户报告含义的人记录该知识。更新现有的技术架构图,以包含更健壮的元数据,例如数据字典。

另外,请考虑有关构建或改进元数据管理框架的现有标准和实践。例如,国际统计分类由世界卫生组织(WHO)批准的《疾病分类》为临床医生,研究人员和医疗帐单人员定义了疾病和健康问题。如果与业务相关,请利用现有的权威元数据源。

三、总结

元数据管理框架不仅仅是技术解决方案。它描述了管理元数据,动员人员,技术和实践的方法和愿景。而且,元数据管理框架与数据治理紧密地交织在一起。做好元数据管理需要在整个组织中建立牢固的元数据管理框架基础。

四、元数据管理工具介绍

亿信华辰元数据管理平台(EsPowerMeta)提供了完善的元模型和元数据维护功能,采用多种方式简化元数据维护的复杂性。系统支持元数据的自动获取和时间调度管理,支持手工创建和变更元数据,并配合版本管理,能完整存储元数据整个生命周期动态和变化,方便用户跟踪业务运作的历史数据。亿信华辰元数据管理平台应用案例:

佛山某区政务服务数据管理局元数据管理平台

建设内容:

政务服务数据管理局基于区内各政府部门的数据进行汇总和治理,面向各部门提供统一的数据服务和应用,实现“用数据决策、用数据监管、用数据创业”的数据统筹发展运行机制。本项目通过元数据管理平台,梳理各类数据来源,实现卫计委、工商局、流管局等各政府部门的元数据自动采集,理清现有的数据流转流程和数据架构,并基于其构建一套新的数据架构,同时提供数据血缘分析、影响分析等,最后形成全区的政务数据地图。

项目价值:

帮助数据管理局确定数据来源和数据架构,为后续数据标准建设,数据质量管理打下坚实的基础,并为政务资源目录、自主填报系统、教育无纸化等应用提供支撑。

目前主流的数据治理平台有那些。

目前国内外能称得上数据治理平台的不多,基本上都是主数据管理平台,只不过都改个名字为数据治理平台,真正数据治理的概念可以参考dama的《数据管理知识体系指南》内容。在这个行业,国内厂商主要有四个来源,物资编码管理厂商(2010年前入行,最早也最普及)、PDM厂商(基本是大BOM的概念,较晚)、ERP厂商(最晚,但是也属于编码管理的延续)和其他后续(2015年后)入行的。国外厂商主要来源有三个,客户主数据厂商(sap、orcale、IBM、informatica)、PDM厂商(达索、Stibo)、开源主数据厂商(Talend)。
国内第一家做主数据管理平台的是一家叫中翰软件的公司,2010年发布的自主产权MDM平台,2013年最早开启数据治理概念,并于2014年试水发布了基于静态数据中心管理的数据治理平台,2018年发布了数据管控平台和数据评估监测平台。

数据库管理系统软件有哪些

数据库管理系统软件:

1、OracleDatabase

知名的Oracle数据库,一直处于行业领先地位,是许多人认可的、世界上最流行的关系数据库管理系统。

作为“十大数据库管理系统排名榜”之首,Oracle数据库使用方便、功能强大,可扩展性强、数据安全性强,系统可移植性好、稳定性佳,适用于各类大、中、小微机环境。2019年,艾媒金榜发布“企业服务品牌之HRM系统排行榜”,Oracle数据库位列第一。

2、Navicat

Navicat是一套可创建多个连接的数据库管理工具,可以方便管理Oracle、MySQL、PostgreSQL等多个不同类型的数据库,并支持管理腾讯云、阿里云等云数据库。

整体而言,Navicat的功能可以满足专业开发人员的需求,同时对数据库服务器初学者来说又相对容易。曾有一项数据统计,《财富》世界500强中有超过100家公司使用了Navicat。

3、DBeaver

DBeaver是一个通用的数据库管理工具和SQL客户端,具有相对较高的易用性,并且免费、支持跨平台使用、允许扩展插件。

支持的操作系统包括Windows、Linux、MacOS、Solaris、AIX、HPUX;基本特性编辑:支持数据库元数据浏览,支持元数据编辑(包括表/列/键/索引),支持SQL语句和脚本的执行,支持SQL关键字高亮显示,简单友好的显示页面。

4、Mysql

MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL也是最好的RDBMS应用软件之一。

作为十大数据库管理系统之一,MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言;其软件采用双授权政策,分社区版、商业版,由于其速度快、体积小、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

5、PhpMyAdmin

phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理系统软件,管理者可用Web接口管理MySQL数据库。

功能特性包括但不限于:支持大多数MySQL功能;从CSV和SQL导入数据,将数据导出为各种格式;以各种格式创建数据库布局的图形;使用逐例查询(QBE)创建复杂查询;使用一组预定义的函数将存储的数据转换为任何格式。

6、IBMDB2

DB2是IBM公司开发的关系型数据库系统,主要应用于大型应用系统,具有较好的可伸缩性,支持从大型机到单用户环境。

DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2可以在Windows、UNIX和Linux操作系统上运行,是最强大的十大数据库管理系统之一。

7、MSSQLServer

SQL Server是微软推出的关系型数据库管理系统,具有使用方便、可伸缩性佳、与相关软件集成程度高等优点,可跨平台使用。SQL Serve最初是由微软、Sybase 和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。

在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server的Windows NT版本。Sybase则较专注于SQL Server在Unix系统上的应用。

8、ApacheCassandra

数据库管理软件哪个好?ApacheCassandra是一款优秀的分布式数据库软件。

该DBMS软件突出特点:一,模式灵活,使用时就像文档存储,用户不必提前解决记录中的字段,可以在系统运行时随意的添加或移除字段,最终提升效率。

二,具有纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台计算机,用户不必重启任何进程,改变应用查询,或手动迁移任何数据。三,多数据中心识别。

9、Redis

Redis是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL的数据库。

其主要特点:性能优秀,数据是存储在内存中,读写速度非常快,可支持并发10WQPS;可作为分布式锁;支持五种数据类型;支持数据持久化到磁盘;可以作为消息中间件使用等。数据缓存是Redis极其重要的一个场景。

10、Sybase

十大数据库管理系统排名榜中的Sybase,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。

Sybase还提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。

以下哪些属于集中化大数据平台外部采集数据

如何从0到1搭建大数据平台
大数据时代这个词被提出已有10年了吧,越来越多的企业已经完成了大数据平台的搭建。随着移动互联网和物联网的爆发,大数据价值在越来越多的场景中被挖掘,随着大家都在使用欧冠大数据,大数据平台的搭建门槛也越来越低。借助开源的力量,任何有基础研发能力的组织完全可以搭建自己的大数据平台。但是对于没有了解过大数据平台、数据仓库、数据挖掘概念的同学可能还是无法顺利完成搭建,因为你去百度查的时候会发现太多的东西,和架构,你不知道如何去选择。今天给大家分享下大数据平台是怎么玩的。
00 架构总览
通常大数据平台的架构如上,从外部采集数据到数据处理,数据显现,应用等模块。
01 数据采集
用户访问我们的产品会产生大量的行为日志,因此我们需要特定的日志采集系统来采集并输送这些日志。Flume是目前常用的开源选择,Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方的能力。
02 数据存储
无论上层采用何种的大规模数据计算引擎,底层的数据存储系统基本还是以HDFS为主。HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础。具备高容错性、高可靠、高吞吐等特点。
HDFS存储的是一个个的文本,而我们在做分析统计时,结构化会方便需要。因此,在HDFS的基础上,会使用Hive来将数据文件映射为结构化的表结构,以便后续对数据进行类SQL的查询和管理。
03 数据处理
数据处理就是我们常说的ETL。在这部分,我们需要三样东西:计算引擎、调度系统、元数据管理。
对于大规模的非实时数据计算来讲,目前一样采用Hive和spark引擎。Hive是基于MapReduce的架构,稳定可靠,但是计算速度较慢;Spark则是基于内存型的计算,一般认为比MapReduce的速度快很多,但是其对内存性能的要求较高,且存在内存溢出的风险。Spark同时兼容hive数据源。从稳定的角度考虑,一般建议以Hive作为日常ETL的主要计算引擎,特别是对于一些实时要求不高的数据。Spark等其他引擎根据场景搭配使用。
实时计算引擎方面,目前大体经过了三代,依次是:storm、spark streaming、Flink。Flink已被阿里收购,大厂一直在推,社区活跃度很好,国内也有很多资源。
调度系统上,建议采用轻量级的Azkaban,Azkaban是由Linkedin开源的一个批量工作流任务调度器。https://azkaban.github.io/
一般需要自己开发一套元数据管理系统,用来规划数据仓库和ETL流程中的元数据。元数据分为业务元数据和技术元数据。
业务元数据,主要用于支撑数据服务平台Web UI上面的各种业务条件选项,比如,常用的有如下一些:移动设备机型、品牌、运营商、网络、价格范围、设备物理特性、应用名称等。这些元数据,有些来自于基础数据部门提供的标准库,比如品牌、价格范围等,可以从对应的数据表中同步或直接读取;而有些具有时间含义的元数据,需要每天通过ETL处理生成,比如应用信息。为支撑应用计算使用,被存储在MySQL数据库中;而对于填充页面上对应的条件选择的数据,则使用Redis存储,每天/月会根据MySQL中的数据进行加工处理,生成易于快速查询的键值对类数据,存储到Redis中。
技术元数据,主要包括数据仓库中的模型说明、血缘关系、变更记录、需求来源、模型字段信息等,详细的可以查看数据分析师应该了解的数据仓库(3)
04 数据流转
通过上面一张图了解数据采集,数据处理,到数据展现的数据流转。通常我们在实际工作中,从数据源到分析报告或系统应用的过程中,主要包括数据采集同步、数据仓库存储、ETL、统计分析、写入上层应用数据库进行指标展示。这是最基础的一条线,现在还有基于数据仓库进行的数据分析挖掘工作,会基于机器学习和深度学习对已有模型数据进一步挖掘分析,形成更深层的数据应用产品。
05 数据应用
俗话说的好,“酒香也怕巷子深”。数据应用前面我们做了那么多工作为了什么,对于企业来说,我们做的每一件事情都需要体现出价值,而此时的数据应用就是大数据的价值体现。数据应用包括辅助经营分析的一些报表指标,商城上基于用户画像的个性化推送,还有各种数据分析报告等等。
数据采集系统
01 “大”数据
海量的数据
当你需要搭建大数据平台的时候一定是传统的关系型数据库无法满足业务的存储计算要求了,所以首先我们面临的是海量的数据。
复杂的数据
复杂数据的概念和理想数据完全相反。所有数据集都有一定的复杂性,但有一些天生更难处理。通常这些复杂数据集没有定义结构(没有行列结构),经常变化,数据质量很差。比如更新的网页日志,json数据,xml数据等。
高速的数据
高速数据通常被认为是实时的或是准实时的数据流。数据流本质上是在生成后就发给处理器的数据包,比如物联网的穿戴设备,制造业的传感器,车联网的终端芯片等等。处理实时数据流有很多挑战,包括在采集时不丢失数据、处理数据流中的重复记录、数据如何实时写入磁盘存储、以及如何进行实时分析。
02 采集工具
日志采集
我们业务平台每天都会有大量用户访问,会产生大量的访问日志数据,比如电商系统的浏览,加入购物车,下订单,付款等一系列流程我们都可以通过埋点获取到用户的访问路径以及访问时长这些数据;再比智能穿戴设备,实时都会采集我们的血压、脉搏、心率等数据实时上报到云端。通过分析这些日志信息,我们可以得到出很多业务价值。通过对这些日志信息进行日志采集、收集,然后进行数据分析,挖掘公司业务平台日志数据中的潜在价值。为公司决策和公司后台服务器平台性能评估提高可靠的数据保证。系统日志采集系统做的事情就是收集日志数据提供离线和在线的实时分析使用。目前常用的开源日志收集系统有Flume、Logstash、Filebeat。可以根据自己公司的技术栈储备或者组件的优缺点选择合适的日志采集系统,目前了解到的Flume使用的比较多。各个采集工具的对比如下:
具体组件的相关配置可以参考之前的文章《日志收集组件—Flume、Logstash、Filebeat对比》
数据库抽取
企业一般都会会使用传统的关系型数据库MySQL或Oracle等来存储业务系统数据。每时每刻产生的业务数据,以数据库一行记录的形式被直接写入到数据库中保存。
大数据分析一般是基于历史海量数据,多维度分析,我们不能直接在原始的业务数据库上直接操作,因为分析的一些复杂SQL查询会明显的影响业务数据库的效率,导致业务系统不可用。所以我们通常通过数据库采集系统直接与企业业务后台数据库服务器结合,在业务不那么繁忙的凌晨,抽取我们想要的数据到分析数据库或者到HDFS上,最后有大数据处理系统对这些数据进行清洗、组合进行数据分析。
常用数据库抽取工具:
阿里开源软件:DataX
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。开源的DataX貌似只能单机部署。
Apache开源软件:Sqoop
Sqoop(发音:skup)是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。可以集群化部署。
爬虫爬取
有很多外部数据,比如天气、IP地址等数据,我们通常会爬取相应的网站数据存储。目前常用的爬虫工具是Scrapy,它是一个爬虫框架,提供给开发人员便利的爬虫API接口。开发人员只需要关心爬虫API接口的实现,不需要关心具体框架怎么爬取数据。Scrapy框架大大降低了开发人员开发速率,开发人员可以很快的完成一个爬虫系统的开发。
03 数据存储
HDFS
2003年,Google发布论文GFS,启发Apache Nutch开发了HDFS。2004年,Google 又发布了论文《MapReduce: Simplified Data Processing on Large Clusters》,Doug Cutting等人实现计算框架MapReduce ,并与HDFS结合来更好的支持该框架。2006年项目从Butch搜索引擎中独立出来,成为了现在的Hadoop。
GFS隐藏了底层的负载均衡,切片备份等细节,使复杂性透明化,并提供统一的文件系统接口。其成本低,容错高,高吞吐,适合超大数据集应用场景。
HDFS原理:横向扩展,增加“数据节点”就能增加容量。
增加协调部门,“命名节点”维护元数据,负责文件系统的命名空间,控
外部访问,将数据块映射到数据节点。还会备份元数据从命名节点,它只与命名节点通信。
数据在多个数据节点备份。
通常关系型数据库存储的都是结构化的数据,我们抽取后会直接放到HDFS上作为离线分析的数据源。
HBase
在实际应用中,我们有很多数据可能不需要复杂的分析,只需要我们能存储,并且提供快速查询的功能。HBase在HDFS基础上提供了Bigtable的能力; 并且基于列的模式进行存储。列存储设计的优势是减少不必要的字段占用存储,同时查询的时候也可以只对查询的指定列有IO操作。HBase可以存储海量的数据,并且可以根据rowkey提供快速的查询性能,是非常好的明细数据存储方案,比如电商的订单数据就可以放入HBase提供高效的查询。
当然还有其他的存储引擎,比如ES适合文本搜索查询等。
04 总结
了解了上面的技术栈后,在实际数据接入中,你还会面临各种问题,比如如何考虑确保数据一致性,保障数据不能丢失,数据采集存储的效率,不能产生数据积压等,这些都需要对每个组件进行研究,适配适合你自己业务系统的参数,用最少的资源,达到最好的结果。
调度系统
目前大数据平台经常会用来跑一些批任务,跑批处理当然就离不开定时任务。比如定时抽取业务数据库的数据,定时跑hive/spark任务,定时推送日报、月报指标数据。任务调度系统已经俨然成为了大数据处理平台不可或缺的一部分,可以说是ETL任务的灵魂。
01 原始任务调度
记得第一次参与大数据平台从无到有的搭建,最开始任务调度就是用的Crontab,分时日月周,各种任务脚本配置在一台主机上。Crontab 使用非常方便,配置也很简单。刚开始任务很少,用着还可以,每天起床巡检一下日志。随着任务越来越多,出现了任务不能在原来计划的时间完成,出现了上级任务跑完前,后面依赖的任务已经起来了,这时候没有数据,任务就会报错,或者两个任务并行跑了,出现了错误的结果。排查任务错误原因越来麻烦,各种任务的依赖关系越来越复杂,最后排查任务问题就行从一团乱麻中,一根一根梳理出每天麻绳。crontab虽然简单,稳定,但是随着任务的增加和依赖关系越来越复杂,已经完全不能满足我们的需求了,这时候就需要建设自己的调度系统了。
02 调度系统
调度系统,关注的首要重点是在正确的时间点启动正确的作业,确保作业按照正确的依赖关系及时准确的执行。资源的利用率通常不是第一关注要点,业务流程的正确性才是最重要的。(但是到随着业务的发展,ETL任务越来越多,你会发现经常有任务因为资源问题没有按时启动!)
实际调度中,多个任务单元之间往往有着强依赖关系,上游任务执行并成功,下游任务才可以执行。比如上游任务1结束后拿到结果,下游任务2、任务3需结合任务1的结果才能执行,因此下游任务的开始一定是在上游任务成功运行拿到结果之后才可以开始。而为了保证数据处理结果的准确性,就必须要求这些任务按照上下游依赖关系有序、高效的执行,最终确保能按时正常生成业务指标。
一款成熟易用,便于管理和维护的作业调度系统,需要和大量的周边组件对接,要处理或使用到包括:血缘管理,权限控制,负载流控,监控报警,质量分析等各种服务或事务。
03 调度系统分类
调度系统一般分为两类:定时分片类作业调度系统和DAG工作流类作业调度系统
定时分片类作业调度系统
这种功能定位的作业调度系统,其最早的需要来源和出发点往往是做一个分布式的Crontab。
核心:
将一个大的任务拆成多个小任务分配到不同的服务器上执行, 难点在于要做到不漏,不重,保证负载平衡,节点崩溃时自动进行任务迁移等。
保证任务触发的强实时和可靠性
所以,负载均衡,弹性扩容,状态同步和失效转移通常是这类调度系统在架构设计时重点考虑的特性。
DGA工作流调度系统
这一类系统的方向,重点定位于任务的调度依赖关系的正确处理,分片执行的逻辑通常不是系统关注的核心,或者不是系统核心流程的关键组成部分。
核心:
足够丰富和灵活的依赖触发机制:比如时间触发任务,依赖触发任务,混合触发任务
作业的计划,变更和执行流水的管理和同步
任务的优先级管理,业务隔离,权限管理等
各种特殊流程的处理,比如暂停任务,重刷历史数据,人工标注失败/成功,临时任务和周期任务的协同等
完备的监控报警通知机制
04 几个调度系统
Airflow
Apache Airflow是一种功能强大的工具,可作为任务的有向无环图(DAG)编排、任务调度和任务监控的工作流工具。Airflow在DAG中管理作业之间的执行依赖,并可以处理作业失败,重试和警报。开发人员可以编写Python代码以将数据转换为工作流中的操作。
主要有如下几种组件构成:
web server: 主要包括工作流配置,监控,管理等操作
scheduler: 工作流调度进程,触发工作流执行,状态更新等操作
消息队列:存放任务执行命令和任务执行状态报告
worker: 执行任务和汇报状态
mysql: 存放工作流,任务元数据信息
具体执行流程:
scheduler扫描dag文件存入数据库,判断是否触发执行
到达触发执行时间的dag,生成dag_run,task_instance 存入数据库
发送执行任务命令到消息队列
worker从队列获取任务执行命令执行任务
worker汇报任务执行状态到消息队列
schduler获取任务执行状态,并做下一步操作
schduler根据状态更新数据库
Kettle
将各个任务操作组件拖放到工作区,kettle支持各种常见的数据转换。此外,用户可以将Python,Java,JavaScript和SQL中的自定义脚本拖放到画布上。kettle可以接受许多文件类型作为输入,还可以通过JDBC,ODBC连接到40多个数据库,作为源或目标。社区版本是免费的,但提供的功能比付费版本少。
XXL-JOB
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求;将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑;因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性。(后来才知道XXL是作者名字拼音首字母缩写)
调度系统开源工具有很多,可以结合自己公司人员的熟悉程度和需求选择合适的进行改进。
海豚调度
Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
高可靠性
去中心化的多Master和多Worker服务对等架构, 避免单Master压力过大,另外采用任务缓冲队列来避免过载
简单易用
DAG监控界面,所有流程定义都是可视化,通过拖拽任务完成定制DAG,通过API方式与第三方系统集成, 一键部署
丰富的使用场景
支持多租户,支持暂停恢复操作. 紧密贴合大数据生态,提供Spark, Hive, M/R, Python, Sub_process, Shell等近20种任务类型
高扩展性
支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线
05 如何自己开发一个调度系统
调度平台其实需要解决三个问题:任务编排、任务执行和任务监控。
任务编排,采用调用外部编排服务的方式,主要考虑的是编排需要根据业务的一些属性进行实现,所以将易变的业务部分从作业调度平台分离出去。如果后续有对编排逻辑进行调整和修改,都无需操作业务作业调度平台。
任务排队,支持多队列排队配置,后期根据不同类型的开发人员可以配置不同的队列和资源,比如面向不同的开发人员需要有不同的服务队列,面向不同的任务也需要有不同的队列优先级支持。通过队列来隔离调度,能够更好地满足具有不同需求的用户。不同队列的资源不同,合理的利用资源,达到业务价值最大化。
任务调度,是对任务、以及属于该任务的一组子任务进行调度,为了简单可控起见,每个任务经过编排后会得到一组有序的任务列表,然后对每个任务进行调度。这里面,稍有点复杂的是,任务里还有子任务,子任务是一些处理组件,比如字段转换、数据抽取,子任务需要在上层任务中引用实现调度。任务是调度运行的基本单位。被调度运行的任务会发送到消息队列中,然后等待任务协调计算平台消费并运行任务,这时调度平台只需要等待任务运行完成的结果消息到达,然后对作业和任务的状态进行更新,根据实际状态确定下一次调度的任务。
调度平台设计中还需要注意以下几项:
调度运行的任务需要进行超时处理,比如某个任务由于开发人员设计不合理导致运行时间过长,可以设置任务最大的执行时长,超过最大时长的任务需要及时kill掉,以免占用大量资源,影响正常的任务运行。
控制同时能够被调度的作业的数量,集群资源是有限的,我们需要控制任务的并发量,后期任务上千上万后我们要及时调整任务的启动时间,避免同时启动大量的任务,减少调度资源和计算资源压力;
作业优先级控制,每个业务都有一定的重要级别,我们要有限保障最重要的业务优先执行,优先给与调度资源分配。在任务积压时候,先执行优先级高的任务,保障业务影响最小化。
06 总结与展望
ETL 开发是数据工程师必备的技能之一,在数据仓库、BI等场景中起到重要的作用。但很多从业者连 ETL 对应的英文是什么都不了解,更不要谈对 ETL 的深入解析,这无疑是非常不称职的。做ETL 你可以用任何的编程语言来完成开发,无论是 shell、python、java 甚至数据库的存储过程,只要它最终是让数据完成抽取(E)、转化(T)、加载(L)的效果即可。由于ETL是极为复杂的过程,而手写程序不易管理,所以越来越多的可视化调度编排工具出现了。
调度系统作为大数据平台的核心部分之一,牵扯的业务逻辑比较复杂,场景不同,也许需求就会差别很多,所以,有自研能力的公司都会选择市面上开源系统二次开发或者完全自研一套调度系统,已满足自身ETL任务调度需求。
不管是哪种工具,只要具备高效运行、稳定可靠、易于维护特点,都是一款好工具 关于元数据管理平台 开源和开源元数据管理pentaho的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 元数据管理平台 开源的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于开源元数据管理pentaho、元数据管理平台 开源的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api接口大全平台(免费的api接口平台)
下一篇:中项网提供什么接口服务(中项网app)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~