1.åºäºspring-bootçkettleè°åº¦
2.数据资产管理平台体系拆解(4):元数据管理
3.Kettle插件开发
4.工具Datax的基本概念(初识ETL工具)
5.开源etl工具有哪些
6.对于E版安装psqlodbc工具,请问统信这服1务1器的操作系统有啥方法?
åºäºspring-bootçkettleè°åº¦
大家好ï¼ææ¯å¸ æ°å°ä¼ï¼ç±äºæè¿å ¬å¸é¡¹ç®è¾è½¬å¤§æ°æ®ï¼éè¦åæ°æ®æ½åçå·¥ä½ï¼kettleæ¯ç®åæ¯è¾æççETLå·¥å ·ï¼èä¼ ç»çkettle客æ·ç«¯å¨ä»»å¡è°åº¦è¿æ¹é¢æ²¡æå®ç°ï¼äºæ¯å¨ç½ä¸å¯»æ¾å¼æºçkettleè°åº¦é¡¹ç®ãkettle-manager
ä¸é¨ä¸ºkettleè¿æ¬¾ä¼ç§çETLå·¥å ·å¼åçweb端管çå·¥å ·ãè²ä¼¼æºç è·èµ·æ¥æ¯è¾è´¹å²ï¼åç§ç¼ºå ï¼äºæ¯æ为大家ä¸é¨æ´çäºä¸ä¸è¿ä¸ªé¡¹ç®ãå ¨maven管çç
/konglinghai/kettle
å¦ææ³å¦ä¹ kettleçå¯ä»¥ç¨æçgithub项ç®è¿è¡ï¼æ¯ç«æå¨ç¾¤é天天åç°é½æ人å 为æ æ³è¿è¡é¡¹ç®èæé®ã
kettleçéæ
ç±äºkettle-manageræ¯ä¸ä¸ªå®æ´çweb项ç®ï¼åè½ä¹æ¯è¾å¤ï¼ä½æ¯å®é åºç¨ä¸ï¼åªéç¨å°å ä¸ªå ³é®çç¹ï¼å°±è½å¤å®ç°kettleçwebè°åº¦ãå æ¤æ们éè¦ækettleçè°åº¦ä»é¡¹ç®ä¸å离åºæ¥ï¼è¿æ ·æè½å¤æ´å¥½å°éæå°èªå·±ç项ç®ä¸å»ãäºæ¯æè§å¾å°å®æ½åºæ¥ï¼åºäºspring-bootï¼å ·ä½çä¸å¡ä¹å离åºæ¥ï¼kettleä½ä¸ºä¸ä¸ªç»ä»¶ã
renren-kettle
项ç®è¯´æ
项ç®å®ç°åè½
项ç®ç»æ
å®æ¶websocketçæ¥å ¥ä¾å
é¨ç½²æå
å¦éå å ¥é¡¹ç®ï¼è¯·é®ä»¶ @qq.com
数据资产管理平台体系拆解(4):元数据管理
阅读本文需要分钟,以数据之名,践资产之行。
1、以数据之名 简介
2、换图指标源码公式元数据的基本概念
2.1 抽象概念
元数据,简单来说就是描述数据的数据。元数据无处不在,换言之有数据存在,就有其对应元数据。完整、准确的元数据存在,有助于更好地理解数据本体,充分挖掘数据的价值。
单存的从概念来讲,确实比较抽象,我们对元数据的理解还是很模糊。那么让我们先看一段简历达人"张三"的个人简历。
这份简历中的"电话"、"工作经验"、"年龄"、"邮箱"、"教育背景"等对于张三本人的关键描述信息,就是元数据,因为它们是用来描述具体数据/信息的数据/信息。这样引用论证的方式,是不是让我们对元数据的概念一瞬间立体起来啦。
2.2 具体概念
对于企业应用的具体概念,元数据是企业所使用的物理数据、业务流程、数据结构等有关的信息,描述了数据(如数据库、数据模型)、概念(如业务流程、应用系统、技术架构)以及它们之间的关系。
元数据管理是对数据采集、存储、加工和展现等数据全生命周期的描述信息,帮助用户理解数据关系和相关属性。
3、ratelimiter源码元数据的价值
通过元数据管理,形成整个系统信息数据资产的精准视图,通过元数据的统一视图,缩短数据清理周期、提高数据质量以便能系统性地管理数据中心项目中来自各业务系统的海量数据,梳理业务元数据之间的关系,建立信息数据标准完善对这些数据的解释、定义,形成企业范围内一致、统一的数据定义,并可以对这些数据来源、运作情况、变迁等进行跟踪分析。
元数据是企业数据资产的基础应用字典和操作指南,元数据管理有利于统一数据口径、标明数据方位、分析数据关系、管理数据变更,为企业级的数据治理提供支持,是企业实现数据自服务、推动企业数据化运营的可行路线。
4、元数据分类
4.1 业务元数据
4.2 管理元数据
4.3 技术元数据
描述对象存储的元数据,也是通常"狭义"上的元数据,包括几大类:
描述离线或实时ETL任务数据计算过程的元数据。
描述数据质量的一类元数据。
描述数据是如何进行使用的一类元数据。
描述系统运维层面的元数据,通常包括以下几类。
描述数据存储及计算成本的元数据。
描述数据标准化内容的元数据。
描述数据安全内容的元数据。
描述数据是如何共享的部分,通常使用以下几种方式:
5、元数据管理办法
5.1 关键活动
5.2 管理流程
我们可以采用角色与组织联动,制定一套标准化元数据管理流程体系,贯穿于整个数据采集、管理分析与数据服务端到端的实施过程,来完善整体的元数据管理体系。
6、元数据管理功能
6.1 元数据采集
元数据管理平台通过不同的datagrid 源码数据采集适配器,能支持从不同的数据源中采集从生产业务系统、数据中转系统、数据应用系统等端到端应用链路的数据流转过程的全量元数据,包括过程中的数据实体(系统、库、表、字段的描述)以及数据实体加工处理过程中的逻辑元数据。同时还能制定采集任务定时采集,减少人工操作的IT成本。
6.2 元数据访问
元数据访问服务是元数据管理软件提供的元数据访问的接口服务,一般支持Http、文件、接口库等对接形式。通过元数据访问服务支持企业元数据的共享,是企业数据治理的基础。
6.3 元数据管理
实现元数据的模型定义并存储,在功能层包装成各类元数据功能,最终对外提供应用及展现;提供元数据分类和建模、血缘关系和影响分析,方便数据的跟踪和回溯。
6.4 元数据分析
元数据的应用一般包括数据地图、数据血缘分析、关联性分析、影响分析、全链分析等,分析出元数据的来龙去脉,快速识别元数据的价值,掌握元数据变更可能造成的影响,以便更有效的评估变化带来的风险,从而帮助用户高效准确的对数据资产进行清理、维护与使用。
7、元数据管理功能架构
备注:权限管理中心,走平台统一鉴权SSO
8、元数据血缘解析
8.1 血缘解析引擎构建
基于数据资产开发平台作为开发统一入口的前提,构建元数据血缘引擎服务体系。引擎体系:SQL、Kettle 、Xml、Excel、Interface、androidtv 源码Service、Workflow 、Datax等任务体系:DMP(Datax任务、SQL任务、Shell任务、报表任务、监控任务)、KMP(Kettle任务)、DMS(接口和服务)、BMP(工作流和调度器)等目标方向:基于血缘解析引擎解析落地元数据,提供可视化的标准ETL任务元数据血缘查询服务,以及KMP/DMP/BMP三大平台任务关联性和影响性分析服务。
8.2 血缘解析引擎机制
基于DMP数据管理开发平台,快速实施个性化报表开发的端到端流程图,其中任务开发、血缘查询和血缘确认环节为开发人员手动实施流程,其余环节为平台系统自动化实施流程,具体如下图所示:
9、元数据功能预览
9.1 血缘分析
9.2 影响分析
9.3 全链分析
9.4 关联度分析
9.5 元数据全文检索
、数据平台文章集锦
数据资产管理平台体系拆解(1):“平台概述”
数据资产管理平台体系拆解(2):“系统分解”
数据资产管理平台体系拆解(3):“数据模型”
MySQL死磕到底系列第一篇“围城之困”
MySQL死磕到底系列第二篇“破冰之旅”
MySQL死磕到底系列第三篇“踏浪之途”
MySQL死磕到底系列第四篇“刨根之程”
MyCAT来生续缘第三篇
无Hive,不数仓
基于Hive+HBase双引擎完善数据仓库更新机制
基于TiDB构建高性能综合数据服务平台
基于Kettle快速构建基础数据仓库平台
金融数据仓库之分层命名规范
一入数据深似海,集市仓库湖中台
湖不湖实战系列之Hudi构建湖仓一体架构
湖不湖实战系列之Hudi源码编译
湖不湖实战系列之Spark2部署升级
湖不湖实战系列之Spark2构建HDFS到Hudi通路
湖不湖实战系列之Spark2构建Hive到Hudi通路
BI选型哪家强,以数据之名挑大梁
数仓小白快速成长为技术专家视频资料集合
小编心声 虽小编一己之力微弱,但读者众星之光璀璨。小编敞开心扉之门,还望倾囊赐教原创之文,期待之心满于胸怀,感激之情溢于言表。一句话,欢迎联系小编投稿您的原创文章! 让我们携手成为技术专家
参考资料
[1] 元数据分类参考1: baijiahao.baidu.com/s?...
[2] 元数据分类参考2: baijiahao.baidu.com/s?...
[3] 数据资产白皮书5.0:中国信通院
[4] Markdown模板: product.mdnice.com/arti...
Kettle插件开发
工欲善其事,必先利其器。Kettle作为离线或准实时ETL的工具链,在特殊业务流程的处理中,往往需要定制化插件开发。这种情况可能出现在需要对特定数据进行特殊函数处理,现有组件无法满足数据捕获需求,或者缺乏对数据重复消费的处理。因此,定制开发流程处理组件,实现数据管理、maven源码验证、转换和特定数据源抽取,成为解决此类问题的关键。
以splunk查询插件为例,其开发遵循Kettle转换插件的基本框架。该框架由四个关键类构成,分别扮演不同的角色。首先是步骤类(SplunkInput),继承自BaseStep父类,并实现StepInterface接口,是数据实际处理的位置。数据类(SplunkInputData)继承自BaseStepData,实现StepDataInterface接口,用于存储数据,每个执行线程拥有唯一的实例。对话框类(SplunkInputDialog)继承自BaseStepDialog,实现StepDialogInterface接口,用于组件步骤与开发者之间的交互配置。元数据类(SplunkInputMeta)继承自BaseStepMeta,实现StepMetaInterface接口,保存和序列化步骤实例的配置信息,跟踪开发者设置的属性。
在展现配置方面,通过注解或plugin.xml实现插件在Kettle可视化UI工作台中的显示效果。配置项包括ID、名称、描述、图标、类别等,帮助开发者快速识别和理解插件功能。
开发过程中,步骤类需要实现初始化、释放资源和处理数据流的方法,如检查splunk连接状态、执行数据转换等。数据类在执行线程中提供数据存储空间,确保独立运行环境。对话框类负责输入属性监听、配置数据初始化、连接校验及结果字段预览等功能。元数据类则跟踪输入输出设置,提供参数序列化和扩展验证检查,确保步骤如何处理数据流行的信息清晰。
总体而言,Kettle自定义插件开发流程清晰,通过遵循基本框架和配置规则,开发者可以高效地实现复杂数据处理需求。如需深入了解源码、自定义插件集成或在开发过程中遇到问题,欢迎关注公众号"游走在数据之间",加入QQKettle交流群,获取更多支持和交流。
工具Datax的基本概念(初识ETL工具)
ETL技术的实质是将数据经过抽取、清洗转换之后加载到数据仓库的过程。DataX是由阿里巴巴研发并开源的异构数据源离线同步工具,能实现不同数据源之间的数据同步,包括关系型数据库、NoSQL数据存储、无结构化数据存储、时间序列数据库以及阿里的云数仓数据存储。DataX是阿里云DataWorks数据集成的开源版本,用于在阿里巴巴集团内广泛使用的离线数据同步工具/平台,支持包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS等各种异构数据源之间的高效数据同步。
DataX采用Framework + plugin的架构,数据同步步骤将数据的读取、写入操作抽象为由Reader/Writer插件处理,纳入整个同步框架。其核心组件包括Job、Task、Channel以及Transformer。
Job代表数据同步任务;Task代表运行一个单独的同步线程,该线程使用一个Channel作为Reader与Writer的数据传输媒介;数据流转方向为Reader—>Channel—>Writer。
Transformer模式提供强大的数据转换功能,DataX内置丰富数据转换实现类,用户可根据自身需求扩展数据转换。
DataX的安装部署可选择直接下载工具包或下载源码自主编译。下载后解压至本地目录即可运行同步作业。自检脚本为:python { YOUR_DATAX_HOME}/bin/datax.py { YOUR_DATAX_HOME}/job/job.json。
若数据源同步遇到格式不匹配问题,可以修改相应的reader与writer代码,然后maven编译,后续会提供具体源码修改示例。
DataX的源码可在gitee上找到,以解决github地址在国内可能存在的连接问题。参考网址提供了更多关于ETL工具-Datax的资源。
开源etl工具有哪些
开源ETL工具有: Talend、Apache NiFi、Pentaho Data Integration、Apache Flink等。 以下是这些工具的详细解释: Talend:是一款广泛使用的开源ETL工具,支持数据集成、数据清洗和数据转换等多种功能。它提供了可视化界面,方便用户进行数据的抽取、转换和加载操作。同时,Talend也支持多种数据源和目标,包括数据库、文件、API等。 Apache NiFi:是Apache软件基金会下的一个开源项目,用于自动化和协调数据的收集、分发和管理等任务。作为一个专注于大数据处理的可视化工具,Apache NiFi提供了一种简单的方式来连接各种数据源和目标,进行数据集成和转换。由于其高度灵活性和可扩展性,它在企业级大数据环境中得到广泛应用。 Pentaho Data Integration:Pentaho是一个开放源码的商务智能平台,其中Data Integration是其组件之一。这是一个强大且灵活的ETL工具,提供了可视化设计环境来构建数据集成流程。Kettle支持多种数据源和多种数据转换任务,并且易于集成到现有的系统中。由于其易用性和强大的功能,Kettle在企业和开发社区中得到了广泛的应用。 Apache Flink:虽然Flink主要是一个流处理框架,但在ETL场景中也有广泛的应用。它提供了强大的数据流处理能力,支持实时数据处理和分析。Flink提供了丰富的API和工具来支持数据的抽取、转换和加载,并且具有高性能和高可扩展性。随着大数据和实时处理需求的增长,Flink在ETL领域的应用也越来越广泛。 这些开源ETL工具各具特色,根据具体的需求和环境,可以选择合适的工具进行数据集成和处理。对于E版安装psqlodbc工具,请问统信这服1务1器的操作系统有啥方法?
应用场景
硬件/整机信息:AMD平台
OS版本信息:服务器e版
软件信息:psqlodbc .版本
功能介绍
部分用户在使用etl工具连接数据库时,需要使用到odbc驱动,下面介绍下服务器e版系统中编译安装此工具的相关过程。
ETL:是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
ODBC:是英文Open Database Connectivity的缩写,中文含义表示为开放数据库互连,是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
psqlodbc:即表示ODBC driver for PostgreSQL,是一种支持访问开放式互联数据库且支持PostgreSQL数据库的访问脚本。
安装使用
步骤一:安装相关依赖
root@uos-PC:~# yum install unixODBC-devel
root@uos-PC:~# yum install libpq-devel
步骤二:编译安装
psqlodbc项目各版本源码下载地址:https://www.postgresql.org/ftp/odbc/versions/src/
本文中以.版本作为示例,此版本源码包如下:
psqlodbc-...tar.gz
.9 KB
下载相关源码包拷贝至服务器系统中,解压安装包并进入对应目录执行:
root@uos-PC:~# ./configure --with-odbcinst=/usr/local/etc --enable-pgsql
root@uos-PC:~# make
root@uos-PC:~# make install
步骤三:配置环境变量
在需要运行ODBC的用户下执行以下命令配置环境变量:
(注意:此处是追加新增ODBC相关信息至环境变量参数项,而不是覆盖写入,执行指令时请勿遗漏相关的符号。)
使环境变量生效:
root@uos-PC:~# source ~/.bash_profile
步骤四:验证配置
执行以下命令查看 ODBC 的配置:
root@uos-PC:~# odbcinst -j
Flink深入浅出:JDBC Connector源码分析
大数据开发中,数据分析与报表制作是日常工作中最常遇到的任务。通常,我们通过读取Hive数据来进行计算,并将结果保存到数据库中,然后通过前端读取数据库来进行报表展示。然而,使用FlinkSQL可以简化这一过程,通过一个SQL语句即可完成整个ETL流程。
在Flink中,读取Hive数据并将数据写入数据库是常见的需求。本文将重点讲解数据如何写入数据库的过程,包括刷写数据库的机制和原理。
以下是本文将讲解的几个部分,以解答在使用过程中可能产生的疑问:
1. 表的定义
2. 定义的表如何找到具体的实现类(如何自定义第三方sink)
3. 写入数据的机制原理
(本篇基于1..0源码整理而成)
1. 表的定义
Flink官网提供了SQL中定义表的示例,以下以oracle为例:
定义好这样的表后,就可以使用insert into student执行插入操作了。接下来,我们将探讨其中的技术细节。
2. 如何找到实现类
实际上,这一过程涉及到之前分享过的SPI(服务提供者接口),即DriverManager去寻找Driver的过程。在Flink SQL执行时,会通过translate方法将SQL语句转换为对应的Operation,例如insert into xxx中的xxx会转换为CatalogSinkModifyOperation。这个操作会获取表的信息,从而得到Table对象。如果这个Table对象是CatalogTable,则会进入TableFactoryService.find()方法找到对应的实现类。
寻找实现类的过程就是SPI的过程。即通过查找路径下所有TableFactory.class的实现类,加载到内存中。这个SPI的定义位于resources下面的META-INFO下,定义接口以及实现类。
加载到内存后,首先判断是否是TableFactory的实现类,然后检查必要的参数是否满足(如果不满足会抛出异常,很多人在第一次使用Flink SQL注册表时,都会遇到NoMatchingTableFactoryException异常,其实都是因为配置的属性不全或者Jar报不满足找不到对应的TableFactory实现类造成的)。
找到对应的实现类后,调用对应的createTableSink方法就能创建具体的实现类了。
3. 工厂模式+创建者模式,创建TableSink
JDBCTableSourceSinkFactory是JDBC表的具体实现工厂,它实现了stream的sinkfactory。在1..0版本中,它不能在batch模式下使用,但在1.版本中据说会支持。这个类使用了经典的工厂模式,其中createStreamTableSink负责创建真正的Table,基于创建者模式构建JDBCUpsertTableSink。
创建出TableSink之后,就可以使用Flink API,基于DataStream创建一个Sink,并配置对应的并行度。
4. 消费数据写入数据库
在消费数据的过程中,底层基于PreparedStatement进行批量提交。需要注意的是提交的时机和机制。
控制刷写触发的最大数量 'connector.write.flush.max-rows' = ''
控制定时刷写的时间 'connector.write.flush.interval' = '2s'
这两个条件先到先触发,这两个参数都是可以通过with()属性配置的。
JDBCUpsertFunction很简单,主要的工作是包装对应的Format,执行它的open和invoke方法。其中open负责开启连接,invoke方法负责消费每条数据提交。
接下来,我们来看看关键的format.open()方法:
接下来就是消费数据,执行提交了
AppendWriter很简单,只是对PreparedStatement的封装而已
5. 总结
通过研究代码,我们应该了解了以下关键问题:
1. JDBC Sink执行的机制,比如依赖哪些包?(flink-jdbc.jar,这个包提供了JDBCTableSinkFactory的实现)
2. 如何找到对应的实现?基于SPI服务发现,扫描接口实现类,通过属性过滤,最终确定对应的实现类。
3. 底层如何提交记录?目前只支持append模式,底层基于PreparedStatement的addbatch+executeBatch批量提交
4. 数据写入数据库的时机和机制?一方面定时任务定时刷新,另一方面数量超过限制也会触发刷新。
更多Flink内容参考: