• 国网云(华为组件)使用


    一、国网云(华为组件)介绍

    一、项目各项环境

    在这里插入图片描述

    各项环境的介绍
    1. MRS-Hive:MRS支持在大数据存储量大,计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中。使用MRS集群仅做数据计算处理的存算分离模式。
    2. DWS(高斯200):云原生数据库Gauss DB(DWS)1:融合分析能力是云原生数据GaussDB(DWS)核心亮点之一. DWS采用一套SQL引擎多数据源融合分析并通过算子下推,加速集群等技术对分,析结果性能优化,在数据免搬迁的前提下,实现了跨源数据免迁移,高效分析。DWS云源生数据仓库支持冷热数据多温存储,热数据存储到.数仓内部。冷数据存储在 obs内降低存值成本。
    3. RDS:云数据库R ds供容灾、备份、恢复、监控、迁移。
    4. Flink:实时数据开发计算框架,用来替换mapreduce、spark等
    5. CDL:CDL是一种简单高效的数据实时集成服务,能够从各种oltp数据路中抓取data change 事件 然后推送至kafka中,最后由sink connector 消费topic。
    6. DRS:数据复制服务(data replication service 简称 drs)是一种易用,稳定,高效,用于数据库在线迁移和数据库实时同步的云服务。
    7. HetuEngine:华为mrs实时数据湖 这是交互查询引擎; 生产库数据通过CDC工具(debezium)实时录入到MRS集群中Kafka的指定topic里;在MRS集群启动一个SparkStreaming任务,实时读取Kafka指定topic里的数据;同时该SparkStreaming任务将读取到的数据进行解析处理并写入到一张hudi表中;写入hudi表的同时可以指定该数据也写入hive表;通过MRS提供的交互式查询引擎HetuEngine对数据进行快速的交互式查询。
    8. Hudi:小文件问题。不论是spark的microbatch模式,还是flink的逐条处理模式,每次写入HDFS时都是几MB甚至几十KB的文件。长时间下来产生的大量小文件,会对HDFS namenode产生巨大的压力,对update操作的支持。HDFS系统本身不支持数据的修改,无法实现同步过程中对记录进行修改。事务性。不论是追加数据还是修改数据,如何保证事务性。即数据只在流处理程序commit操作时一次性写入HDFS,当程序rollback时,已写入或部分写入的数据能随之删除,Hudi就是针对以上问题的解决方案之一。使用Hudi自带的DeltaStreamer工具写数据到Hudi,开启–enable-hive-sync 即可同步数据到hive表。
    9. kafka: kafka是一款分布式、支持分区的、多副本,基于zookeeper协调的分布式消息系统。最大的特性就是可以实时处理大量数据来满足需求。
    10. cdm(云数据迁移)提供/异构异构迁移迁移服务,帮助数据,帮助客户实现数据自由流动流动。支持客户客户自建自建和和和公有云公有云公有云公有云上文件文件云服务,对象存储等数据源。
    11. KMS:通过简单、便捷的管理界面,为云上加密提供易用、高安全性的密钥管理服务(Key Management Service)。让您安心使用云服务, 专注于核心业务领域。

    二、准备工作

    1. 工作流程介绍

    DataArts(原DGC)的工作流程。当然,在企业级使用的时候,一般是一个现成的工作环境,这里只是展示一下。
    如果需要连接RDS或者oracle的情况下,是需要配置驱动文件,如果没有驱动文件,就会出现报错的情况。

    2. 环境说明

    参 数说 明
    资源地如果需要使用华为云一整套服务,必须确保资源地区均相同,华为云的资源跨区域是不互通的(比如,都选择华北-北京4)
    vpcDataArts Studio实例中的数据集成CDM集群所属的VPC。VPC即虚拟私有云,是通过逻辑方式进行网络隔离,提供安全、隔离的网络环境。如果DataArts Studio实例或CDM集群需连接云上服务(如DWS、MRS、RDS等),则您需要确保CDM集群与该云服务网络互通。同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通,如果同虚拟私有云而子网或安全组不同,还需配置路由规则及安全组规则。
    安全组DataArts Studio实例中的数据集成CDM集群所属的安全组。安全组是一组对弹性云服务器的访问规则的集合,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。如果DataArts Studio实例或CDM集群需连接云上服务(如DWS、MRS、RDS等),则您需要确保CDM集群与该云服务网络互通。同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通,如果同虚拟私有云而子网或安全组不同,还需配置路由规则及安全组规则。
    子网DataArts Studio实例中的数据迁移CDM集群所属的子网。通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。如果DataArts Studio实例或CDM集群需连接云上服务(如DWS、MRS、RDS等),则您需要确保CDM集群与该云服务网络互通。同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通,如果同虚拟私有云而子网或安全组不同,还需配置路由规则及安全组规则。
    2.1 增量包

    对于HDFS和关系型数据库类型的数据源,不方便暴露节点的场景,可选择在源端网络中部署Agent。CDM通过Agent拉取客户内部数据源的数据,但不支持写入数据。

    1 创建增量包(agent)

    进入CDM主界面,单击左侧导航上的“集群管理”,选择集群后的“作业管理 > Agent管理 > 新建Agent”,根据需求配置Agent相关信息。
    在这里插入图片描述

    2 agent参数说明

    这里的vpc、安全组、子网是根据你的cdm
    在这里插入图片描述

    3 工作原理

    由图可知,创建agent的前提,是需要一个已知的CDM集群,由此可见上述的参数默认就是与自己创建的cdm集群保持一致的。
    工作原理

    agent的使用流程

    2.2 KMS(密钥管理服务)

    密钥管理服务(KMS)是一套密钥管理系统, 可以针对云上数据/各端上的加密需求精心设计的密码应用服务,为您的应用提供符合各种要求的密钥服务及极简应用加解密服务,助您轻松使用密钥来加密保护敏感的数据资产。

    可直接在华为云工作台中搜索KMS来创建密钥

    在这里插入图片描述

    2.3 标签

    标签是由您自定义的、用于标识当前实例的键值对,由标签“键”和标签“值”组
    成。
    当前DataArts Studio实例标签支持的使用场景如下:
    ● 当拥有大量云资源时,您可以按使用者、维护者或用途等各类维度为云资源(包
    括DataArts Studio实例)添加标签,最后您可以在标签管理服务(简称TMS)通
    过标签识别、管理多种云资源,使资源管理变得更加轻松。
    ● 当拥有多个DataArts Studio实例时,您可以按使用者、维护者或用途等各类维度
    为各实例添加标签,然后在DataArts Studio实例列表页面,可以通过标签搜索、
    识别DataArts Studio实例。
    在这里插入图片描述
    在这里插入图片描述

    2.4 obs桶
    (1)概念

    桶(Bucket)是OBS中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。

    OBS中桶和对象的关系

    每个桶都有自己的存储类别、访问权限、所属区域等属性,用户可以在不同区域创建不同存储类别和访问权限的桶,并配置更多高级属性来满足不同场景的存储诉求。

    对象存储服务设置有三类存储类别,分别为:标准存储、低频访问存储、归档存储,从而满足客户业务对存储性能、成本的不同诉求。创建桶时可以指定桶的存储类别,桶的存储类别可以修改。

    在OBS中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与其他用户创建的桶名称相同。桶所属的区域在创建后也不能修改。每个桶在创建时都会生成默认的桶ACL(Access Control List),桶ACL列表的每项包含了对被授权用户授予什么样的权限,如读取权限、写入权限等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。

    一个账号可创建100个桶。每个桶中存放的对象的数量和大小总和没有限制,用户不需要考虑数据的可扩展性。

    由于OBS是基于REST风格HTTP和HTTPS协议的服务,您可以通过URL(Uniform Resource Locator)来定位资源。

    (2)工作流程

    在这里插入图片描述

    (3)创建obs桶

    一般在企业级别的关系来说,obs桶的权限不一定会划分出来,这里只是做介绍,实际生产开发中根据权限划分需求来决定。
    创建obs直接在控制台中搜索obs即可,根据需求来创建所需的obs。
    在这里插入图片描述

    2.5工作空间
    (1)什么是工作空间

    系统将默认为其创建一个默认的工作空间“default”,并赋予该用户管理员角色,您可以使用默认的工作空间,也可以自己创建一个新的工作空间。

    DataArts Studio实例内的工作空间作为成员管理、角色和权限分配的基本单元,包含了完整的DataArts Studio功能,工作空间的划分通常按照分子公司(如集团、子公司、部门等)、业务领域(如采购、生产、销售等)或者实施环境(如开发、测试、生产等),没有特定的划分要求。划分规则随意。

    工作空间从系统层面为管理者提供对使用DataArts Studio的用户(成员)权限、资源、DataArts Studio底层计算引擎配置的管理能力。为实现多角色协同开发,管理员可将相关用户加入到工作空间,并赋予DataArts Studio预设的项目管理员、开发者、运维者、访客等角色,其他帐号也只有在加入工作空间并被分配权限后,才可具备管理中心、数据集成、数据架构、数据开发、数据目录、数据质量、数据服务、数据安全模块系列的操作权限。

    (2)约束条件

    存储作业日志和脏数据依赖于OBS服务;如无OBS服务,则不支持作业日志和脏数据存储。obs桶的创建见上面的说明。

    (3)创建工作空间
    1. 使用帐号进入DataArts Studio(DGC)控制台。
    2. 单击控制台的“空间管理”页签,进入工作空间页面。
    3. 单击“新建”,在空间信息页面请根据页面提示配置参数,参数说明如图所
      示,配置完成后,单击“确定”完成工作空间的创建。
      在这里插入图片描述
    (4)配置说明

    在这里插入图片描述

    (5)工作空间配置

    查看工作空间配额使用量

    1. 登录DataArts Studio控制台。
    2. 找到所需要的DataArts Studio实例,在DataArts Studio实例上单击“进入控制
      台”。然后,选择“空间管理”页签。
    3. 在“空间管理”页面,找到所需编辑的工作空间,单击其所在行的“配额使用
      量”,此时显示“配额使用量”页面。
    4. 在“配额使用量”页面,您可以查看当前空间内,各配额规格的使用量。

    编辑工作空间

    1. 登录DataArts Studio控制台。
    2. 找到所需要的DataArts Studio实例,在DataArts Studio实例上单击“进入控制
      台”。然后,选择“空间管理”页签。
    3. 在“空间管理”页面,找到所需编辑的工作空间,单击其所在行的“编辑”,此
      时显示“空间信息”页面。
    4. 在“空间信息”页面的最上方,单击编辑按钮,您就可以编辑空间信息以及管理
      空间成员,可以给空间成员授予相关权限。请根据页面提示进行配置。

    在这里插入图片描述

    2. 微服务调试

    2.1 什么是应用管理与运维平台(ServiceStage)

    应用管理与运维平台(ServiceStage)是面向企业的应用管理与运维平台,提供应用发布、部署、监控与运维等一站式解决方案。支持Java、Go、Node.js、Docker、Tomcat等运行环境。支持Apache ServiceComb Java Chassis(Java Chassis)、Spring Cloud、Dubbo、Mesher服务网格等微服务应用,让企业应用上云更简单。

    ServiceStage主要包含如下能力:

    1. 应用管理:支持应用生命周期管理、环境管理。
    2. 微服务应用接入:支持Java Chassis、Go Chassis、Spring Cloud、Dubbo微服务框架;支持Mesher服务网格。配合微服务引擎可实现服务注册发现、配置管理和服务治理,请参考微服务开发指南
    3. 应用运维:通过日志、监控、告警支持应用运维管理。
    4. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ghUXwm4-1669364023999)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118133840650.png)]

    ​ 数据中台有53个微服务需要部署,部署微服务有专业的团队完成,我们只需要对微服务进行调试不报错即可。

    数据中台的微服务主要是为了支持看板、标签、报表等一系列产品的API接口服务,来满足对应的数据支撑。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZClEKg5-1669364024002)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118134116312.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-daXReQFd-1669364024004)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118134204522.png)]

    图示为数据中台的微服务名称(其功能在文件夹中有相应的介绍)

    2.2 微服务调试

    在控制面板中打开,应用管理与运维平台(这个权限和数据中台时划分开的,所以需要问微服务部署人员使用一下其相关账号「冉鹏」)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jKhBRNy-1669364024007)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118134713133.png)]

    3. 权限申请

    4. 环境部署、贯通测试

    5. 数据接入

    5.1 前期配置

    5.1.1 配置数据库
    5.1.1.1 obs桶驱动

    如果想要连接mysql或者oracle,需要在obs中上传相关的驱动包。直接在控制台搜索obs-进入管理控制台-在已经创建的obs中上传驱动包即可。(不过需要注意的是,obs的权限由于种种原因,不一定会给中台展现出来,需要在cdm中配置相关驱动。)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5PXLftzh-1669364024011)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118140028540.png)]

    5.1.1.2 cdm驱动管理

    在cdm集群中->连接管理->驱动管理中,可以看到这些驱动管理,在这里上传相关驱动即可(内置驱动可能会显示驱动连接失败\驱动不存在等问题。)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7nuTBuO-1669364024013)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118140749345.png)]

    5.2 数据接入(整库迁移)

    1. 在cdm集群中->连接管理->新建连接创建一个新的连接。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gb3F8n1w-1669364024014)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118141515951.png)]

    1. 在cdm集群中选择整库迁移->新建作业进行作业配置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-st3IGcbm-1669364024016)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118141806627.png)]

    值得注意的是,迁移的时候不能改变名字,如果需要改表名,需要在作业名称加上名字前缀。所以这个局限性就在于只能按类别去迁移表名。比如一次性将cuc的表迁移过来。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q1LzFVr7-1669364024017)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118142046877.png)]

    1. 选择需要迁移的表,将表拉入到目的端中

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Lb7CzdU-1669364024017)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118142214834.png)]

    1. 选择任务配置,根据自己的需求来配置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wpqifz1A-1669364024018)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118142308641.png)]

    1. 迁移完成

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dTcpX1Wn-1669364024019)(/Users/kayleigh/Library/Application Support/typora-user-images/image-20221118142456186.png)]

    至此,离线数据迁移任务已经完成了,下面来配置实时增量数据的接入讲解。

    5.2 DRS+kafka实时迁移数据

    6. 链路监控配置

    7. java实现脚本语言差异化的替换(1.0版本,待优化)

    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    
    /**
     * @Description:oracle的sql语句转换成mysql的sql语句 
     * @作者:mateo
     * @date 2022-11-15
     */
    public class OracleSqlConvert4MysqlSqlTool {
    	
    	public static void main(String[] args) throws IOException {
    		
    		String oriPath = "D:\\oracle_path.sql";//oracle sql文件地址
    		String desPath = "D:\\mysql_path.sql";//mysql sql程序生成目标地址
    		
    		BufferedReader reader = null;
    		PrintWriter writer = null;
    		
            try {
            	 reader = new BufferedReader(new InputStreamReader(new FileInputStream(oriPath),"gbk"));
        		 writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(desPath),"utf-8"));
    
        		String l;
        		while ((l = reader.readLine()) != null) {
        			if (l.startsWith("prompt")) continue;
        			if (l.startsWith("set"))continue;
        		
        			if (l.startsWith("values")) {
        				l = l.replace("dd-mm-yyyy hh24:mi:ss.ff", "%d-%m-%Y %H:%i:%s.%f");
        				l = l.replace("dd-mm-yyyy hh24:mi:ss", "%d-%m-%Y %H:%i:%s");
        				l = l.replace("03-01-0001", "03-01-1970");
        				l = l.replace("01-01-1970", "03-01-1970");
        				l = l.replace("to_date", "str_to_date");
        				l = l.replace("to_timestamp", "str_to_date");
        				l = l.replace("' || chr(10) || '", " ");
        				l = l.replace("' || chr(13) || '", " ");
        			}
        			writer.println(l);
        		}
            } finally {
                if (reader != null) {
                	reader.close();
                }
                if (writer != null) {
                	writer.close();
                }
            }
            
    	}
    	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
  • 相关阅读:
    Linux与Shell学习--shell系列5--Shell运算符1(算数运算符和关系运算符)
    Vue2 零基础入门 Vue2 零基础入门第二天 2.1 vue简介 && 2.2 vue的基本使用 && 2.3 vue的调试工具
    【校招VIP】前端网络之路由选择协议
    期货开户经理是期市中的良师益友
    web前端期末大作业网课设计与实现 _简单DIV布局旅游网页——简洁的旅游酒店公寓(15页)html css javascript
    【软件测试】软件测试分类
    Android 中如何使用 App Links
    阿里云&腾讯云服务器安装oracle11g
    idea显示maven或者gradle无法从仓库获取到项目中的jar包,jar包所在仓库无法访问解决方法,百试百灵
    Win10远程桌面连接黑屏
  • 原文地址:https://blog.csdn.net/Kayleigh520/article/details/128039923