【云驻共创】在GaussDB上搭建开发环境

网友投稿 859 2022-05-30

在当下的云时代,越来越多企业将自己的服务上云,数据库也不例外。作为我们开发者本身只有充分学习了解云数据库才能应对云时代带来的种种挑战。

一、GaussDB数据库驱动

1.  驱动概念介绍

数据库驱动是应用程序和数据库存储之间的一种接口,数据库厂商为了某一种开发语言环境(比如Java,C)能够实现数据库调用而开发的类似翻译员功能的程序,将复杂的数据库操作与通信抽象成为了当前开发语言的访问接口。因此,为了满足用户需求,GaussDB(for MySQL)同时支持JDBC和ODBC等数据库驱动。

首先是驱动应用程序连接驱动标准接口。驱动标准接口是一个标准的通用接口,这时候还不知道用的是什么数据库。通过驱动标准接口下面是数据源管理器,数据源管理器是数据库的一个地址以及数据库类型的一些描述信息在里面,它将数据库连接进行一个抽象。然后接下来就是具体的一个数据库驱动,数据库驱动是基于不同数据库厂商而定的。

2.  JDBC应用开发介绍

JDBC(Java Database Connectivity,Java数据库连接),一种用于执行SQL语句的Java API,可为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。

执行流程为:加载驱动 -> 连接数据库 -> 执行SQL语句 -> 处理结果集 -> 关闭连接。

注意:GaussDB(for MySQL)支持JDBC4.0,意味着在编译程序的时候要用JDK1.8及以上版本。

3. ODBC应用开发介绍

ODBC(Open Database Connectivity,开放数据库互连),是由Microsoft公司基于X/OPEN CLI 提出的用于访问数据库的应用程序编程接口。

执行流程为:申请句柄资源 -> 设置环境属性 -> 连接数据源 -> 执行SQL语句 -> 处理结果集 -> 断开连接 -> 释放句柄资源。

GaussDB(for MySQL)支持ODBC3.0,它除了不让应用程序直连数据库之外,还可以做到程序可扩展性,可移植性。

二、数据库工具

DDM

1.  分布式数据库中间件服务(DDM)

DDM(Distributed Database Middleware),是华为公有云提供的分布式关系数据库中间件服务,以服务的方式为应用提供对多个数据库实例进行分布式透明访问。彻底解决数据库可拓展性问题,实现海量数据的存储和高并发访问。

DDM的三大特点之一:简单易用,兼容MySQL协议,应用代码0改动。

DDM的三大特点之二:无限扩容,自动水平拆分,彻底解决数据库单机限制,业务不中断平滑扩容。

DDM的三大特点之三:性能卓越,高性能集群组网(公测期间为单机),水平扩展实现性能的线性提升。

1.  DDM就是将数据库的存储引擎进行一个分布式集中管理从而做到应用透明来访问数据库。

2.  DDM处于这个环节,对于应用来说只需要知道DDM实例就行了,只要与DDM相连,没有必要知道分片式数据库,针对它是透明的可以不知道存放位置以及所有的业务逻辑。

3.  所有的分发都是由DDM进行路由分发,比如读写这一块。

4.  作为管理员来说,可以通过DDM控制台图形化管理数据库;作为开发人员,可以通过DDM控台来进行部署;作为使用人员只知道访问应用服务就可以了。

2.  为什么需要DDM?

可以通过数据分片来解决数据库拓展的瓶颈。以一个社交网站的数据库拓展路线为例子说明

初始阶段:所有数据存放在一个数据库中

小规模(<500QPS或100TPS,读用户<100,写用户<10):在单库中通过读写分离提升并发读的性能;

中规模(<5000QPS或1000TPS,读用户<5000,写用户<100):垂直分库,将不同的业务分布到不同的数据库;

大规模以上(10K+QPS,10K+TPS,读用户10K+,写用户1K+):数据分片,将数据表分到不同的数据库中。

3.  常用的数据分片解决方案

3.1  应用层分片方案

如当当的Sharding-JDBC,淘宝的TDDL等。

优势:直接连接数据库,额外开销少。

劣势:无法实现连接数收敛;应用侵入方式,后续升级更新数量庞大,运维成本高;多数只支持Java语言。

3.2  中间件分片方案

如开源的MyCat,Cobar,商用软件爱可生等。

优势:应用0改动,与语言无关;对应用完全透明地进行数据库扩展;通过连接共享有效收敛连接数。

劣势:由于要经过中间件处理,可能存在额外的时延(<4%)。

4.  DDM关键特性 – 读写分离

4.1  由应用自己控制读写分离

在客户端中配置所有DB信息,并实现读写分离;

DB调整需要同步修改应用;

DB故障需要修改应用,运维跟开发需同步调整配置。

4.2  DDM实现读写分离

即插即用:自动实现读写分离,支持配置不同节点的性能权重;

应用透明:应用感觉仍是操作单节点,DB调整应用不感知;

高可用:主从切换或从节点故障对应用透明。

5.  DDM关键特性 – 数据分片

5.1  由应用自己实现分片

应用逻辑复杂:由应用改写SQL语句,将SQL路由到不同的DB,并聚合结果;

DB故障和调整都需要应用同步调整,运维难度剧增;

应用升级,更新维护工作量大,对于大型系统不可接受。

5.2  DDM实现数据分片,应用0改动

大表分片:支持按Hash等算法实现自动分片;

自动路由:根据分片规则,将SQL路由至真正的数据源;

连接复用:通过MySQL实例的连接池复用,大幅提升数据库并发访问能力。

6.  DDM关键特性 – 数据库平滑扩容

6.1  由应用自己实现数据库水平扩展

扩容时导致应用停机,业务中断;

必须自行开发工具进行数据迁移。

6.2  DDM实现数据库水平扩展,自动均衡数据

无限扩展:支持分片个数无上限,轻松应对海量数据;

全自动化:一键式扩容,异常自动回滚;

业务影响小:秒级中断,其他时间业务无感知。

7.  DDM使用场景

7.1  大型应用高频交易

电商、金融、O2O、零售、社交网络。

特征:用户基数大、营销活动频繁、核心数据库响应日益变慢。

对策:DDM提供线性水平扩展能力,轻松应对高并发的实时交易场景。

7.2  物联网海量传感器触发

工业监控、智慧城市、车联网。

特征:传感设备多,采样频率高,数据规模大,超过单机数据库瓶颈。

对策:DDM提供的容量水平拓展能力,帮助用户低成本的存储海量数据。

7.3  海量视频图片数据索引

互联网,社交应用等。

特征:存在亿级数量的图片,文档,视频等数据,系统为这些文件建立索引,提供实时的增、删、改、读操作,对性能要求极高。

对策:DDM提供超高性能和分布式扩展能力,有效提高索引的检索效率。

7.4  传统方案硬件

政务机构、大型企业、银行。

特征:传统方案强依赖小型机和高端存储等高硬件成本的商业解决方案。

对策:DDM提供线性水平扩展能力,轻松应对高并发的实时交易场景。

8.  DDM使用方法 – 购买数据库中间件实例(1)

进入控制台 -> 任务列表 -> DDM

点击“购买DDM”

9.  DDM使用方法 – 购买数据库中间件实例(2)

计费模式选择“按需付费”。区域,可用分区,实例规格,如无特殊需求,默认,输入实例名。

10.  DDM使用方法 – 购买数据库中间件实例(3)

输入实例名后,选择VPC,子网以及安全组,VPC需要选择与数据库实例相同的,点击“立即购买”。

11.  DDM使用方法 – 购买数据库中间件实例(4)

点击“提交”。

12.  DDM使用方法 – 购买数据库中间件实例(5)

完成创建。

13.  DDM使用方法 – 数据分片(1)

14.  DDM使用方法 – 数据分片(2)

15.  DDM使用方法 – 数据分片(3)

16.  DDM使用方法 – 数据分片(4)

17.  DDM使用方法 – 数据分片(5)

完成分片操作。

DRS

1.  华为云数据复制服务DRS

数据复制服务(Data Replication Service,DRS)是一种易用、稳定、高效,用于数据库在线迁移和数据库实时同步的云服务。DRS围绕云数据库,降低了数据库之间数据流通的复杂性,有效地帮助减少数据传输的成本。

2.  DRS具备的能力

2.1  在线迁移

【云驻共创】在GaussDB上搭建开发环境

支持通过多种网络链路,实现跨云平台数据库迁移,云下数据库迁移上云或云上跨Region的数据库迁移等多种业务场景。

特点:通过增量迁移技术,能够最大限度允许迁移过程中业务继续对外提供使用,有效的将业务系统中断时间和业务影响最小化,实现数据库平滑迁移上云。

2.2  数据同步

数据同步在决然不同的系统之间实现业务数据的实时流动,不同于迁移,迁移数据库以整体搬迁为目的,同步是维持不同业务系统之间数据的持续流动,常见的场景是:实时分析,报表系统,数仓环境。

特点:聚焦在表和数据,并满足多种同步灵活性的需要,如多对一,一对多,不同表名之间同步数据等。

2.3  多活灾备

通过异地近实时的数据同步可以实现跨区,跨云,本地和云,混合云之间数据库形成灾备关系,提供一键主备倒换、数据比对、时延监控、数据补齐等容灾性,支持容灾演练、真实容灾等场景,支持主从灾备、主主灾备多种灾备架构。

特点:异地远距离传输优化,围绕灾备提供特性,不同于业界基于简单的数据同步形成方案。

2.4  数据订阅

获取数据库中的关键业务的数据变化信息常常是下游业务所需要的,数据订阅将这类消息缓存并提供统一的SDK接口,方便下游业务订阅、获取、并消费,从而实现数据库和下游系统解耦,业务流程解耦。

常见场景:Kafka订阅MySQL增量数据。

3.  DRS关键特性 – 引导式迁移

引导式迁移操作流程分为以下步骤:

a)  进入数据复制服务控制台

b)  开始创建迁移服务

c)  配置源数据库及目标数据库信息

d)  选择迁移模式

e)  预检查及任务确认

f)  查看迁移任务状态

4.  DRS使用方法 – 场景化选择

5.  DRS使用方法 – 迁移实例(1)

6.  DRS使用方法 – 迁移实例(2)

7.  DRS使用方法 – 网络与安全

8.  DRS使用方法 – 多种迁移模式

9.  DRS使用方法 – 用户迁移

10.  DRS使用方法 – 预检查

11.  DRS使用方法 – 参数迁移

1.  大部分参数不迁移,并不会导致迁移失败,但参数往往直接影响到业务的运行和性能表现,DRS支持参数迁移,让数据库迁移后,业务和应用更平滑,更无忧。

2.  业务类参数有(字符集设置;最大连接数;调度相关;锁等待时间;Timestamp默认行文;连接等待时间)

3.  性能类参数(*_buffer_size;*_cache_size)

12.  DRS使用方法 – 迁移监控

步骤1:  宏观查看全量迁移对象的百分比进度,如迁移时长较长的表数据、表结构、表索引等。

步骤2:  通过表格查看具体迁移对象的迁移进展,当“对象数目”和“已迁移数目”相等时,表示该对象迁移完成。

步骤3:  通过“查看详情”精细查看每个对象的迁移进度,当进度显示为100%时,表示迁移完成。

13.  DRS使用方法 – 迁移对比

步骤1:  对象级对比

宏观对比数据对象是否缺失(数据库,表,视图,存储过程,触发器等)。

步骤2:  数据级对比

详细校对数据,不同细度(行数对比,内容对比)。

步骤3:  可以随时取消对比

DAS

1.  数据管理服务(DAS)

数据管理服务(Data Admin Service,简称DAS),是一款专业的简化数据库管理工具,提供良好的可视化操作界面,大幅提高工作效率,让数据管理变得既安全又简单。

DAS三个版本之一:控制台版

这个版本面向DBA&运维。从基本的主机和实例性能数据,到慢SQL和全量SQL分析,从实时的性能分析诊断,到历史运行数据的综合分析,能够快速定位出数据库运行中的每一个问题,提前发现潜在风险点。

DAS三个版本之二:标准版

这个版本面向开发人员。最好用的数据库客户端:无需安装本地客户端,所见即所得的可视化操作体验,提供数据和表结构的同步,在线编辑,SQL输入的智能提示等丰富的数据库开发功能。

DAS三个版本之三:企业版

这个版本面向企业DevOPS平台。基于权限最小化控制和审批流程机制,提供数据保护、变更审核、操作审计、研发自助化等数据库DevOPS平台,帮助企业实现大规模数据库下的标准化、规范化、高效率、超安全的管理手段。

2.  DAS功能介绍(1)

2.1  轻松管理

实现云上可视化界面连接和管理数据库

2.2  易操作

简单方便访问数据,且支持类似Excel方式编辑数据,SQL零基础也能无障碍进行表数据编辑及统计分析操作;支持保存常用的SQL,并提供SQL模板,且随时引用执行,简单易用。

2.3  高效率

实现云端研发测试,快速部署,快速访问数据库,提升研发效率。

2.4  安全防护

云端专用通道管理数据,华为云严格控制数据库访问。

2.5  操作安全保障

内置了安全保护措施,有效保障数据库的稳定运行,让用户操作起来更安心;比如:用户执行一个慢SQL时,DAS会自动设置超时机制,防止因慢SQL执行时间过久而导致的数据库性能抖动。

2.6  可视化对象管理

导航树形结构,清晰展示各个对象并实现可视化结构管理功能。

3.  DAS功能介绍(2)

总的来说DAS功能可以归纳为:

a)  像填表单一样建表

b)  像编辑Excel一样查看、编辑、插入、删除表数据

c)  自动化SQL输入提示,帮你写SQL

d)  链式依赖图展示实时锁等待的会话关系,可以做一回专业DBA

e)  自动生成表数据,让开发工作更方便调试

f)  误修改或删除数据时,发起一个回滚任务,就可以帮你找回数据

g)  自动超时机制,不用担心因SQL执行太长而把数据库给拖垮

4.  DAS系统架构

从DAS图可以得出DAS系统架构的几个功能组件

1.  Conn Consoles:DAS连接管理的控制台;DAS Consoles:DAS Consoles是数据管理服务的统一入口,在Consoles Home中体现为统一入口。

2.  API-for-DAS:对外API的统一入口,负责对外API协议转换,同时进行权限控制和API审计。

3.  DAS Service:提供数据库维护、管理,包括数据库、表、索引、字段、视图等对象的增删改查维护等。

4.  通过TCP与不同厂商的数据库相连。

5.  DAS应用场景:标准版

5.1  元数据

库、表列表、表大小、索引大小、存储过程、函数

5.2  SQL查询窗口

智能化的SQL输入提示

查询结果在线编辑

历史查询记录快速复用

5.3  数据操作

快速,自动化填充表的测试数据

基于binlog解析,对误删除数据进行找回

5.4  SQL优化

SQL语句优化改写

索引优化建议

执行计划展示

5.5  同步

10G大小的SQL附件导入

整库、指定表、查询SQL等多种方式的数据导出

可跨实例的库之间的表结构一致性对比与同步

5.6  结构操作

所见即所得的表结构在线编辑

6.  DAS应用场景:企业版

数据是企业的核心资产,如何控制敏感数据访问权限、实现数据库变更安全、操作可回溯审计、降低DBA人力成本,是数据库实例数量上一定规模时,企业的重要诉求。

6.1  数据访问安全

员工不接触数据库登录名和密码,对库的查询需要先申请权限;支持每天查询的总次数、总数据行数、每次查询的最大返回行数等多维度查询控制。

6.2  敏感数据保护

敏感字段自动识别并进行打标;员工在执行查询和导出时,敏感数据脱敏显示;

6.3  变更安全

所有对库的操作,均有审计日志记录,数据库操作行为可追溯;

6.4  操作审计

变更SQL的风险识别;业务审核控制;变更执行时的数据库水位自动检测;大数据表的数据清理;

6.5  提效率降成本

灵活的安全风险和审批流程自定义;库上的业务Owner和DBA角色的赋权,将低风险的库变更操作流程下放到业务主管,降低企业的DBA人力成本。

7.  DAS使用方法 – 新增数据库连接(1)

8.  DAS使用方法 – 新增数据库连接(2)

9.  DAS使用方法 – 新增数据库连接(3)

10.  DAS使用方法 – 新增数据库连接(4)

11.  DAS使用方法 – 新增数据库连接(5)

12.  DAS使用方法 – 新建对象(1)

13.  DAS使用方法 – 新建对象(2)

14.  DAS使用方法 – 新建对象(3)

15.  DAS使用方法 – 新建对象(4)

16.  DAS使用方法 – 新建对象(5)

17.  DAS使用方法 – 新建对象(6)

18.  DAS使用方法 – SQL操作(1)

19.  DAS使用方法 – SQL操作(2)

20.  DAS使用方法 – SQL操作(3)

21.  DAS使用方法 – 导入导出(1)

导入

22.  DAS使用方法 – 导入导出(2)

导出

23.  DAS使用方法 – 表结构对比

三、客户端工具

客户端工具的存在主要是为了让用户便捷连接数据库,对数据库进行操作和调试。

1.  gsql

gsql是一款向GaussDB(DWS)提供在命令行运行的交互式数据库连接工具。

gsql - 下载

访问:https://console.huaweicloud.com/dws;

gsql - 配置数据库服务器(1)

完成1、2、3、4操作后在弹出的窗口输入用户名和密码即可。

gsql – 配置数据库服务器(2)

1.  cd命令打开客户端存放文件夹

2.  ll命令列出文件夹的文件的详细信息

3.  看到了客户端文件

4.  unzip命令对其进行解压

gsql - 配置数据库服务器(3)

1.  输入命令source gsql_env.sh

2.  出现All things done。表示客户端配置成功

gsql - 连接数据库

1.  使用gql客户端连接GaussDB(DWS)集群中的数据库

Gsql -d <数据库名称> -h <集群地址> -U <用户名> -p <端口> -r

2.  参数说明如下:

“数据库名称”:输入所要连接的数据库名称。首次使用客户端连接集群时,请指定为集群的默认数据库“postgres”。

“集群地址”:如果通过公网地址连接,请指定为集群“公网访问地址”或“公网访问域名”,如果通过内网地址连接,请指定为集群“内网访问地址”或“内网访问域名”。

“数据库用户”:输入集群数据库的用户名。首次使用客户端连接集群时,请指定为创建集群时设置的默认管理员用户,例如:“dbadmin”。

“数据库端口”:输入创建集群时设置的“数据库端口”。

gsql - 使用方法

gsql可以直接将查询语句发送给数据库执行,并返回结果:

Postgres=# select * from dual;

gsql工具还提供一些比较实用的元命令,用来快速与数据库交互。比如快速查看对象定义:

1.  Postgres=# \d dual

2.  View “pg_catalog.dual”

3.  Column|Type|Modifiers

4.  Column:字段名

5.  Type:字段类型

6.  Modifier:约束信息

7.  更多命令可以使用“\?”查看

2.  Data Studio

Data Studio介绍

Data Studio是一款GUI工具,可以通过它来连接GaussDB(DWS)数据库,执行SQL语句,开发存储过程,以及管理数据库对象。

Data Studio目前支持GaussDB(DWS)的大部分基本特性,为数据库开发人员提供友好的图形化界面,简化数据库开发及应用开发任务,能显著提高构建程序的效率。

下载安装Data Studio

GaussDB(DWS)提供了基于Windows平台的图形界面客户端,该工具依赖JDK,要现在主机安装Java 1.8.0_141或以上版本的JDK,但支持Java8版本。

在Windows系统中,可以访问JDK官网下载对应的版本,并根据指导安装。

解压下载下来的压缩包到需要安装的路径,然后打开安装目录,双击(或右键,以管理员身份运行)。

Data Studio连接数据库

1.  选择数据库类型

2.  输入自定义名称

3.  输入数据库IP

4.  输入端口号

5.  输入数据库名称

6.  输入用户名

7.  输入密码

8.  点击确定进行连接

Data Studio主界面的组成

1.  顶层菜单栏

2.  对象浏览器

3.  SQL编辑窗口

4.  查询结果窗口

5.  SQL语法助手

Data Studio的基本功能

对象浏览器

以数据库连接为根节点,使用树状层级结构展示各类数据库对象;通过右键菜单的形式提供各类对象管理操作的入口,如创建数据库、断开连接、创建对象、编辑表数据、查看对象属性信息、执行存储过程等。

SQL编辑窗口

编辑、格式化和执行各类SQL语句;在SQL编辑过程会根据用户输入进行自动联想并提供补全建议。

查询结果窗口

展示查询语句返回的结果,用户可对结果执行排序、动态筛选、复制、导出、编辑等操作。

SQL语法助手

根据用户在SQL编辑窗口中的输入,动态匹配并展示相应的SQL语法。

存储过程管理

查看、修改和编译存储过程的代码;执行或调试存储过程;针对GaussDB语法提供相应的存储过程创建模板。

首选项配置

用户可针对自身的使用习惯对DS的部分功能进行个性化配置,如自动保存的时间间隔、查询结果每次加载的记录数、SQL语句高亮规则、自定义快捷键等。

3.  MySQL Workbench

MySQL Workbench介绍

MySQL Workbench是一款GUI工具,可以使用它设计和创建新的数据库图示,建立数据库文档,以及进行复杂的MySQL迁移。

MySQL Workbench是可视化数据库设计、管理的工具,它同时有开源和商业版的两个版本。该软件支持Windows和Linux系统。MySQL Workbench能为数据库开发人员提供友好的图形化界面,简化数据库开发及应用开发任务,能显著提高构建程序的效率。

下载安装MySQL Workbench

然后点击打开安装包进行安装。

使用MySQL Workbench连接数据库

1.  填写自定义的连接名

2.  连接方式(保持默认)

3.  填写IP地址

4.  填写端口号(MySQL默认3306)

5.  填写用户名

6.  点击测试连接

MySQL Workbench主界面组成

1.  顶部菜单栏

2.  导航栏

3.  SQL编辑窗口

4.  查询结果窗口

5.  数据库情况

MySQL Workbench的基本功能

导航栏

展示数据库的管理功能,例如检查状态,管理连接,用户管理,数据导入导出;提供各类对象管理操作的入口,如启停实例、查询日志、查看操作文件;展示数据库的表现情况,可以进行设置或生成报表。

SQL编辑窗口

编辑、格式化和执行各类SQL语句;在SQL编辑过程会根据用户输入进行自动联想并提供补全建议。

查询结果窗口

展示查询语句返回的结果,用户可对结果执行排序、动态筛选、复制、导出、编辑等操作。

数据库基本情况

展示已有的数据库以及数据库下的各级对象基本情况。

数据库备份

根据客户需求,MySQL Workbench能提供企业级的在线备份以及备份恢复功能。

审核检查

搜索字段提供标准缩小显示的操作事件,包括类型的展会活动获取和查询类型的显示事件,并默认为显示所有活动。自定义过滤器也可以用。

本文整理自华为云社区【内容共创系列】活动。

查看活动详情:https://bbs.huaweicloud.com/blogs/314887

相关任务详情:数据库开发环境

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

上一篇:[当人工智能遇上安全] 5.基于机器学习算法的主机恶意代码识别研究
下一篇:基于Spotify的敏捷转型实践
相关文章