DMETL简单介绍、安装部署和入门尝试

一、DMETL的介绍

1.1 概述

我们先来简单了解一下DMETL。

DMETL是什么?说的简单一点,DMETL一款数据处理与集成平台;从功能来说,那DMETL就是对数据同步、数据处理以及数据交换共享提供一站式支持的平台;从它的意义来说,DMETL就是大幅度降低了用户使用各种平台进行大数据整合处理的技术门槛的一个平台。

这就是DMETL,即达梦数据交换平台(Dameng Data Exchange Platform)的简称。将传统的ETL工具(Extract、Transform、Loading)与分布式大数据处理平台相结合,更好地应对大规模数据的实时处理和分析需求,也能更高效地完成数据清洗、过滤和格式化等复杂操作。

1.2功能特点

(1)数据抽取(Extract):能够从多种数据源中抽取数据,支持关系型数据库(如 Oracle、MySQL)、NoSQL 数据库(如 MongoDB)、文件格式(如 CSV、Excel)等。

(2)数据转换(Transform):提供数据清洗、转换功能,可以对数据进行格式转换、去重、合并等操作,并支持灵活的转换规则。

(3)数据加载(Load):将处理后的数据加载到目标数据源中,支持多种目标数据源。

(4)可视化设计:采用图形化操作界面,用户可以通过拖拽和配置的方式快速实现数据的导入和转换。

(5)高性能与可靠性:支持多节点部署,具备负载均衡和故障转移功能,能够满足大规模数据处理的需求。

(6)易于使用和扩展:降低了使用 Hadoop 和 Flink 等大数据技术的门槛,同时具备良好的可扩展性(通过对数据源适配器的扩展,可以增加系统所支持的数据源,比如JDBC数据源、文件数据源、FTP数据源、XML数据源。通过对消息适配器的扩展,可以增加系统所支持的第三方消息中间件,如JMS)。

1.3应用场景

数据同步:实现不同数据源之间的数据同步,保持数据一致性。

数据交换:用于不同部门或系统之间的数据交换,支持数据的流动和共享。

数据整合:将来自不同来源的数据进行清洗、转换和整合,存储到数据中心或数据仓库中,为数据分析和共享提供支持。

数据仓库和数据中心建设:是构建数据仓库、数据中心等数据集成类应用的理想平台。

这里找了个图片来介绍一下DMETL的功能

二、系统架构及核心功能组件

DMETL 的系统架构包括以下主要组件:

调度器:负责流程分解和作业调度,协调多个执行器的功能。

执行器:用于执行作业和转换流程,支持多节点部署,包括native、yarn和flink。

管理器:提供可视化的 web 管理、设计、监控界面,用于操作、配置和监控系统。

控制器:是调度器和执行器的守护进程,用于远程修改参数、启停服务、监控系统资源等。

2.1Web管理平台

Web管理平台提供统一的管理界面,主要有以下功能模块:

数据源管理:数据源、数据集的统一管理和维护;

状态监控:系统各个部件(调度器、执行器、控制器)以及作业的状态监控,运行日志查询、统计;

集群管理:执行器、调度器的注册、版本升级;

流程设计:数据流(转换)和控制流(作业)的设计调试,流程调度配置;

系统管理:元数据备份、用户权限、系统参数、系统日志;

2.2共享元数据库

存储DMETL的元数据,包括作业定义、数据源信息、调度配置等。它支持多种数据库作为外置元数据库,如DM7、MySQL6、Oracle12c、SQLServer2012,内置元数据库仅支持Derby。

2.3调度器

负责流程分解和作业调度,协调多个执行器的工作,实现负载均衡。调度器不执行流程,只负责作业步骤的分解和分发,以及流程运行日志元数据的写入,调度器暂不支持主备(HA)模式。

2.4执行器

执行器接收调度器的请求,用于执行作业和转换流程。支持多节点部署,可以根据需求扩展。包括原生执行器、yarn执行器和flink执行器。原生执行器适用于常规作业,yarn执行器和flink执行器分别支持大数据批处理和流处理。关于这三种执行器,我找了一篇对这三者介绍的比较详细的博客内容如下:

(1)native本地执行器:

类似于DMETL4的执行引擎,不依赖于yarn以及其它的分布式计算框架,独立运行。一个系统中本地执行器可以部署多个,多个执行器之间是对等的,除非用户在配置流程时特别指定,否则作业步骤可以运行在任何一个执行器上。一个系统中理论上可以部署任意多个本地执行器,但是实际能够支持的数量取决调度器以及元数据库的支撑能力。

(2)yarn执行器:

yarn执行器仅执行专门的大数据处理流程,不用于执行常规作业步骤(如文件同步,执行sql,设置变量等作业步骤),yarn执行器会把调度器分发过来的转换流程,通过数据源的切分,得到多个切分后的流程,通过Hadoop MapReduce机制提交到Hadoop集群进行流程的分布式并行执行;同时通过Hadoop YARN机制来管理集群节点的负载问题。

(3)flink执行器:

利用flink框架特性,将ETL流程分解、组合成可以在flink服务器上运行的任务,并将其提交到flink服务器上运行。在每个JobManager和TaskManager中都启动并维护一个native执行器实例。TaskSlot通过构建微型ETL流程并提交到native执行器实例的方式处理数据;不同TaskSlot之间则利用flink的数据交互系统来传递数据。根据部分组件的特性,可支持数据的分片并发读取、持续读取并处理、exactly-once的容错机制等。

2.5控制器

控制器是调度器和执行器的守护进程(在上面的架构图中没有画出),与调度器和执行器部署在同一服务器上,其主要功能是提供远程管理调度器、执行器的服务。web管理平台通过控制器可以实现远程启停调度器、执行器,远程对执行器和调度器进行版本升级。

三、安装部署

我这里安装的是DMETL4.0版本(截至博客发布日期,市面上使用的DMETL产品大多数是4.0,虽然已经推出5.0但几乎没人用,对5.0感兴趣的直接去官方文档搜一下,那里的教程是5.0的)

3.1执行以下语句开始安装,并按提示进行操作

DMETL连接数据库后会自动创建相关资源表

3.2启动服务器

(方法1)执行 server 目录下的 dmetl_start.sh 脚本文件即可,当出现“Metadata engine started”日志信息时说明达梦数据交换平台服务器启动完毕

(方法2)在 server 目录下执行对应的脚本文件dmetl_service_start.sh来管理达梦数据交换平台服务

3.3启动客户端

在 client 目录下,执行./studio.sh启动客户端,客户端启动后,弹出登录界面,默认用户名和密码都是 admin,如果是在远程工具上执行困难会报错,建议在虚拟机上直接执行。

四、尝试使用

DMETL V4.0 的使用通常可以分为五个主要步骤:创建数据源、创建工程、设计转换、 设计作业和查看运行日志五个步骤。以一个例子说明一下转换过程,该例子功能是将源库中的 EMPLOYEE、EMPLOYEE_DEPARTMENT、DEPARTMENT 以及 PERSON 三张有关员工的表整合成一张完整的员工信息表(EMPLOYEEINFO)。作业的功能是控制转换以及其它任务运行的时间和顺序,这里就不演示了。

4.1创建数据源DM8

(1)切换到【数据源】选项卡,在【数据库】点击右键,选择【新建数据库数据源】菜单项,打开新建数据库数据源对话框

(2)选择源库类型,并填入相关信息

(3)右击数据源,选择添加表

将 EMPLOYEE、 EMPLOYEE_DEPARTMENT、DEPARTMENT、以及 PERSON 表添加到系统中

(4)添加 SQL 查询

4.2创建数据源SAMPLE

同上一步一样新建数据源,添加表EMPLOYEEINFO

4.3创建工程

4.4设计转换

(1)新建转换

(2)添加源表

转换创建成功后系统会自动打开转换设计器。从工具箱的【数据读取】标题下面把【表/视图】组件拖到流程设计器中,然后双击图标,可以打开表数据源的配置对话框

按照下图配置好各个属性

(3)增加所属部门字段

新建数据集缓存,【窗口】菜单中【数据集缓存】,新建数据集缓存;

从工具箱的【数据转换】标题下面把【数据集查找】组件拖到流程设计器中;

用连接线将流程设计器中的表数据源节点和数据集查找节点连接起来;

(用绿色的线,这里不对)

双击【数据集查找】节点,打开数据集查找属性配置对话框,并按照下图所示配置好各个属性值

(4)增加姓名、性别、email 地址、电话号码字段

按照上一步的方法再次新建一个数据集缓存,拖一个【数据集查找】组件到流程设计器中,并建立好连接,并按照下图设置好各个属性

(5)字段值替换

拖动一个【数据清洗转换】组件到流程设计器中,并建立好连接,并按照下图所示配置好属性

(6)添加目的表

从工具箱中的【数据装载】标题下拖一个【表】组件到流程设计器中,建立好连接并按照下图配置好各个属性值

(7)修改节点名称

在流程设计器中选中节点,然后按 F2 或者使用鼠标单击节点右键,选择重命名菜单可以编辑节点名称

(8)添加注释

将【工具箱】中【辅助工具】中【备注】组件拖到流程设计器中,可以向流程设计器中添加注释节点

(9)执行流程

经过上述步骤后,最终设计好的流程如下图所示

保存后点击绿色执行键执行

在表目的组件上点击右键选择【浏览数据】菜单项,可以查看目的表中的数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92582.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP 人工智能 Seq2Seq、K-means应用实践

基于Java和人工智能的Web应用 以下是基于Java和人工智能的Web应用实例,涵盖自然语言处理、计算机视觉、数据分析等领域。这些案例结合了沈七星AI或其他开源框架(如TensorFlow、Deeplearning4j)的实现思路,供开发参考: 自然语言处理(NLP) 1. 智能客服系统 使用Java的Op…

Docker 从入门到实战(一):全面解析容器化革命 | 2025 终极指南

2025 年,全球容器市场规模突破 200 亿美元,超过 80% 的企业生产环境运行在容器之上。掌握 Docker 已成为开发、运维乃至架构师的核心竞争力。本文带你彻底搞懂 Docker 的底层逻辑与核心价值! 一、Docker 是什么?为什么它能改变世界? 想象一下:你开发时运行完美的 Pytho…

Lazada东南亚矩阵营销破局:指纹手机如何以“批量智控+数据中枢”重构运营生态

在Lazada以“超级APP”战略渗透东南亚6国市场的进程中,商家正陷入一个结构性矛盾:如何用有限人力高效管理10个国家账号,却不被数据孤岛拖垮营销效率,更不因账号关联风险引发平台封禁?传统多账号运营依赖“人手一台设备…

操作系统: 线程(Thread)

目录 什么是线程(Thread)? 线程与进程之间的关系 线程调度与并发执行 并发(Concurrency)与并行(Parallelism) 多线程编程的四大核心优势(benefits of multithreaded programmin…

Uber的MySQL实践(一)——学习笔记

MySQL 是Uber数据基础设施的核心支柱,支撑着平台上大量关键操作。Uber 拥有一套庞大的 MySQL 集群,如何构建一个控制平面来管理如此大规模的 MySQL 集群,并同时确保零宕机、零数据丢失是一个十分有挑战性的问题。下面重点介绍 Uber 的 MySQL …

腾讯云EdgeOne产品深度分析报告

一、产品概述腾讯云EdgeOne是腾讯云推出的新一代边缘安全加速平台,集成内容分发网络(CDN)、Web应用防火墙(WAF)、DDoS防护、Bot管理、API安全及边缘计算能力,致力于为企业提供一站式安全加速解决方案。该平…

Spring Boot 优雅配置InfluxDB3客户端指南:@Configuration + @Bean + yml实战

前言 想用Java玩转InfluxDB 3?要是还靠写main函数硬编码配置,那就像穿着睡衣开正式会议,实在有点不靠谱。现代Spring开发套路讲究配置和代码分离,讲究优雅和灵活。用@Configuration配合@Bean注解,再加上yml配置文件集中管理连接信息,简直是为代码打扮一身西装,既整洁又…

记录:rk3568适配开源GPU驱动(panfrost)

rk3568采用的GPU是Mali-G52,该型号的GPU已在5.10内核的panfrost驱动中被支持。下面记录下移植过程。 1.内核dts修改: kernel 5.10: arch/arm64/boot/dts/rockchip/rk3568.dtsigpu: gpufde60000 {compatible "rockchip,rk3568-mali", "ar…

SMBIOS详解:系统管理BIOS的工作原理与实现

1. SMBIOS概述 SMBIOS(System Management BIOS)是由DMTF(分布式管理任务组)制定的行业标准,旨在为计算机系统提供统一的硬件信息描述框架。它定义了计算机硬件组件(如处理器、内存、主板等)的标…

8.5 CSS3多列布局

多列布局 CSS3之多列布局columns CSS3中新出现的多列布局(multi-column)是传统HTML网页中块状布局模式的有力扩充。这种新语法能够让WEB开发人员轻松的让文本呈现多列显示。 设置列宽 column-width: | auto 设置对象的宽度;使用像素表示。 auto&#…

Chrome插件快速上手

目录 前言 一、浏览器插件的主要功能 二、插件的工作原理 插件结构 manifest.json icons background.js content-scripts 三、插件例子 popup popup.html popup.js styles.css background.js content-script.js manifest.json 四、其它 前言 本文不做特殊说明…

moment和dayjs

一:moment和dayjs 区别moment 大且可变、维护模式;dayjs 小且不可变、插件化、tree‑shaking 友好。antd v4 用 moment;antd v5 用 dayjs。请在同一项目中统一其一,避免混用导致组件报错。二: antd 4.24.16&#xff08…

Flutter Packge - 组件应用

一、组件创建1. 在工程根目录创建 packages 目录。mkdir packages #创建文件夹 cd packages 2. 创建纯 Dart Package(适合工具类/UI组件)。flutter create --templatepackage common_network二、组件配置1. 在 common_network 的 pubspec.yaml 中添加…

基于双块轻量级神经网络的无人机拍摄的风力涡轮机图像去雾方法

基于双块轻量级神经网络的无人机拍摄的风力涡轮机图像去雾方法 UAV-Taken Wind Turbine Image Dehazing With a Double-Patch Lightweight Neural Network 我是菜鸡!我是菜鸡!我是菜鸡! 如果老师及学姐学长对该文有任何意见,请…

Spring AI Alibaba 项目接入阿里云百炼平台大模型

1 依赖jdk 21 springboot 3.4.5 spring-ai-alibaba-starter-dashscope 1.0.0.2<properties><java.version>21</java.version><spring-ai.version>1.0.0</spring-ai.version><spring-ai-alibaba.version>1.0.0.2</spring-ai-alibaba.v…

电脑和手机访问网站,自动检测跳转不同网站

自动检测跳转不同网站 自动检测设备手机或电脑来跳转不同网页 开箱即用&#xff0c;不过需要自己修改一下跳转链接 源码截图&#xff1a; 下载地址&#xff1a;电脑和手机访问网站&#xff0c;自动检测跳转不同网站.zip - 蓝奏云

Spring Boot 集成 ShardingSphere 实现读写分离实践

Spring Boot 集成 ShardingSphere 实现读写分离实践 在高并发的业务场景中,数据库往往是系统性能的瓶颈。为了提高系统的吞吐量和稳定性,读写分离是一种常见的优化方案。本文将详细介绍如何使用 Spring Boot 结合 ShardingSphere 实现数据库的读写分离,并提供完整的配置和实…

以rabbitmq为例演示podman导出导入镜像文件

1. 导出镜像为 tar 文件 将镜像保存为压缩包&#xff08;默认格式为 docker-archive&#xff09;&#xff1a; podman save -o rabbitmq_management.tar docker.io/rabbitmq:management-o&#xff1a;指定输出文件名&#xff08;如 rabbitmq_management.tar&#xff09;。镜像名…

LIS(最长上升子序列)与LCS(最长公共子序列)

最长上升子序列定义&#xff1a;给出一个数字序列&#xff08;arr&#xff09;&#xff0c;求出其中长度最长的数值严格递增的子序列做法一&#xff1a;使用动态规划&#xff0c;我们定义dp[i]为以arr[i]结尾的最长上升子序列的长度。#include<bits/stdc.h> using namesp…

javaSE(基础):5.抽象类和接口

抽象类一.理解抽象类思维&#xff1a;假如我想定义一个Shape&#xff08;图形类&#xff09;类&#xff0c;我在这个类中写了一个draw()方法&#xff0c;但是这个方法是不能用来描述图形形状的&#xff08;不能有方法体&#xff09;&#xff0c;因为我只要对他进行了准确描述&a…