Excel 文件转存到 RDS 数据库 本实验将帮助您快速掌握 RDS 产品的实例开通,熟悉 RDS 产品的常用功能与基 础操作,完成云上数据库搭建。 场景描述 我们平时会将一些结构化的数据放在 Excel 表格中进行存储,但当数据量达到 一定规模,在进行复杂的关联查询时,Excel 运行起来就不太友好,这时我们 可以选择将 Excel 中的数据导入到数据库中进行处理,以提高数据存取的效 率。本次实验将带领您,把 Excel 的数据通过数据管理服务 DMS (Data Management Service)导入到 RDS MySQL 数据库中。 实验流程 实验开始,需要创建一个 RDS for MySQL 的实例,再创建数据库和账号,通 过 DMS 对该实例进行接管,DMS 拥有 MySQL 客户端的功能,可以在 SQL 窗口进 行创建存储 Excel 数据的表,然后通过 DMS 的数据导入功能将 Excel 表格数据 导入 RDS 数据库中。最后,会带领大家操作 ECS 连接 RDS 实例,并通过命令 行,做一些简单的增删改查的操作。 背景知识 云数据库 RDS 阿里云关系型数据库 RDS(Relational Database Service)是一种安全稳定 可靠、高性价比、可弹性伸缩的在线数据库服务。RDS 支持 MySQL、 SQL Server、PostgreSQL 和 MariaDB 引擎,并且提供了容灾、备份、恢复、 监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。数据管理 DMS 数据管理 DMSData Management)是一款支撑数据全生命周期的一站式数据管理平 台。DMS 提供全域数据资产管理、数据治理、数据库设计开发、数据集成、数据开发和 数据消费等功能,致力于帮助企业高效、安全地挖掘数据价值,助力企业数字化转型。 一、开启考试在实验考试开始前,请您在右侧窗口中单击创建资源资源创建过程需要 3~5 分钟(视资源不同开通时间有所差异,ACK 等资源开通 时间较长)。完成实验资源的创建后,在实验室页面左侧导航栏中,单击云产 品资源列表,可查看本次实验资源相关信息(例如子用户名称、子用户密码、 AK ID、AK Secret、资源中的项目名称等)。 说明:实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体 的步骤、目的,真正开始做实验时再进行创建。远程连接界面介绍: 1、远程桌面:图形化远程连接桌面,帮助您快速访问阿里云,并登录子用户, 从而创建、管理云资源,顺利完成实验步骤。 2、Web Terminal:命令行终端,帮助您快速进行云服务器 ECS 的远程连接, 执行命令、查看日志等操作。提示:如没有此按钮说明该实验暂不开放此功能。 二、实验场景说明场景描述 我们平时会将一些结构化的数据放在 Excel 表格中进行存储,但当数据量达到 一定规模,在进行复杂的关联查询时,Excel 运行起来就不太友好,这时我们 可以选择将 Excel 中的数据导入到数据库中进行处理,以提高数据存取的效 率。本次实验将带领您,把 Excel 的数据通过数据管理服务 DMS (Data Management Service)导入到 RDS MySQL 数据库中。 实验流程 实验开始,需要创建一个 RDS for MySQL 的实例,再创建数据库和账号,通 过 DMS 对该实例进行接管,DMS 拥有 MySQL 客户端的功能,可以在 SQL 窗口进 行创建存储 Excel 数据的表,然后通过 DMS 的数据导入功能将 Excel 表格数据导入 RDS 数据库中。最后,会带领大家操作 ECS 连接 RDS 实例,并通过命令 行,做一些简单的增删改查的操作。 本实验考试将重点考核以下内容: 1. 是否通过控制台进行创建 RDS for MySQL 实例,并按照要求创建合适的 实例。 2. 是否通过控制台进行创建 RDS 实例的账户,并设置用户为高权限账户。 3. 是否通过控制台创建 RDS 的数据库,并设置数据库的编码方式为 utf8mb4。 4. 是否通过控制台将白名单全放开,允许所以 ip 访问实例。 5. 是否通过控制台开通外网访问地址,外网可通过外网地址访问 RDS 实例 6. 是否通过 DMS 登录创建的 RDS 实例,并完成对数据库中表的创建。 7. 是否通过 DMS 的数据导入功能,讲本地的 Excel 表格的数据,导入到已创 建的 RDS 实例中 8. 是否通过 DMS 对数据进行 SQL 查询,了解 DMS 的客户端的功能。 9. 是否通过 ECS 对数据库进行访问,并通过命令行的方式对数据库进行增删 改查的操作。 三、创建 RDS for MySQL 实例登录 RDS 控制台 本步骤将指导您如何使用实验室页面远程桌面功能,登陆阿里云数据库 RDS 控 制台1. 在实验室页面右侧,单击 图标,切换至远程桌面2. 点击桌面 Chromium Web Browser 图标,打开浏览器会自动打开 阿里云 RAM 用户登录页面。 说明:浏览器如果未自动打开阿里云 RAM 用户登录页面,可通过浏览器手动输 入 RAM 用户登录 URL: https://signin.aliyun.com/login.htm#/main3. 通过子用户名称子用户密码完成 RAM 用户登录。 说明:您可以通过实验室左侧导航栏,点击云产品资源,即可获取子用户名称 和子用户密码。说明:控制台会提示相关教程,可点击跳过教程,继续执行下一步 4. 点击浏览器阿里云控制台首页页面左上角 图标,搜索框输入 “RDS”,点击搜索结果中的云数据库 RDS,进入 RDS 管理控制台。说明:如下图所示,代表您已经进入 RDS 管理控制台。 创建 RDS for MySQL 实例 1. 点击创建实例的按钮,进入实例创建页面。 2. 进入实例创建页面后,进行创建实例选择对应的参数进行配置实例,参数选择如下所示: 说明:详细参数说明,请参考官方文档:快速创建 RDS MySQL 实例计费方式:计费方式选择 按量计费,按量计费可随时释放实例,停止 计费;地域:选择 华东 1(杭州)类型:选择 MySQL8.0 版本系列:选择 高可用版 ,高可用版本实例为一主一备架构,最高 99.99%可用性; 架构:选择 ARM,选择公共实验资源,则无需选择架构,后台已帮大家 选择(X86:每一个 vCPU 都对应一个处理器核心的超线程,ARM:每一个 vCPU 都对 应一个处理器的物理核心,具有性能稳定且资源独享的特点;) 存储类型:选择 ESSD 云盘 PL1 ,ESSD 云盘基于新一代分布式块存 储架构,结合 25GE 网络和 RDMA 技术,为您提供单盘高达 100 万的随机 读写能力和更低的单路时延能力; 主节点可用区:选择 杭州可用区 J 如果界面上无该可用区,也可 选择其他可用区部署方案:选择 单可用区部署 规格:规格分类选择通用规格,实例的规格推荐选择 mysql.n2m.medium.2c,该规格为 2C 的 CPU,4G 内存; 存储空间:选择 20G 3. 点击下一步:实例配置 4. 实例配置页面,在实例描述框中填写 rdstest ,其他配置按照默认 即可。 5. 直接点击下一步:确认订单进入下一步操作。6. 确认订单页面,选择去支付7. 出现该界面,表示已创建完成,可继续其他步骤。四、创建账号和数据库进入 RDS 实例详情页。 1. 登录 RDS 实例管理界面。 https://rdsnext.console.aliyun.com/rdsList/cn-hangzhou/basic a. 在 RDS 控制台界面选择上述步骤已创建好的实例。实例创建过程耗 时 3 分钟左右,若实例 ID 暂不可跳转,请耐心等待,过程中可以刷新页 面,等待实例状态变为运行中,单击实例 ID b. 下图即为实例的管理界面。创建账号 2. 在账号管理界面,单击创建账号,创建 高权限账号,账号为 aliyuntest,密码为实验提供的子账户密码。子账户密码如下显示: a. 参数说明数据库账号:输入数据库账号名称 aliyuntest切记一定要设置账户 名为 aliyuntest,为了后续实验进行评分账号类型:选择高权限账号。 密码:设置账号密码。切记一定要设置为子用户密码,为了后续实验进 行评分确认密码:再次输入密码。 备注:商品管理账户。账号类 说明 高权限 账号 只能通过控制台或 API 创建和管理。 一个实例中只能创建一个高权限账号,可以管理所有普通账号和数据库。 开放了更多权限,可满足个性化和精细化的权限管理需求,例如可按用户 分配不同表的查询权限。 拥有实例下所有数据库的权限。 可以断开任意账号的连接。 普通账 可以通过控制台、API 或者 SQL 语句创建和管理。 一个实例可以创建多个普通账号,具体的数量与实例内核有关。 普通账号默认仅拥有登录数据库的权限,您需要手动给普通账号授予其他 特定的权限。更多信息,请参见修改账号权限普通账号不能创建和管理其他账号,也不能断开其他账号的连接。 b. 显示账号已激活 ,账号已创建完成。若一直处于创建中,请手动 刷新页面。 创建数据库 1. 点击数据库管理,在点击创建数据库,在页面中输入数据库(DB)名 ,选择支持字符集 ,并书写对应的备注说明,点击创建按钮,进行 提交该示例创建数据库名称为:commodity支持的字符集为:utf8mb4 备注说明:商品管理库 MySQL8.0 支持多种字符集,字符集的特点如下: utf8mb4:支持 4 字节 Unicode 字符,可以表示大部分国家的字符,是 现代 web 应用中广泛使用的字符集。 utf8:只支持 3 字节 Unicode 字符,较老的 MySQL 服务器和许多库如 LAMP(Linux + Apache + MySQL + Python/PHP/Perl)默认采用该 字符集。 latin1:最基本的字符集,其它的字符集都可以通过该字符集的不可改 变子集表示。这个字符集支持大部分计算机常见的字符,包括所有西欧 语言的字母、数字、标点符号以及一些特殊字符。它在日语、中文和俄 语等非拉丁字母语言中不适用。 gb2312:早期中国字符集,支持除异体字之外的 3500 左右的中文汉字 和基本的拉丁字母、数字、标点符号,以及一些特殊字符。 gbk:统一汉字编码,是中国的现代字符集,包含了中国国家标准 GB 2312-1980 的全部字符,支持包括繁体字、日本汉字和韩国汉字等 在内的多种汉字。 utf16:Unicode 字符二进制编码的 16 位配对码,支持几乎所有语言的 字符和符号。 总之,选择什么字符集要根据自己的实际情况进行综合考虑,例如需要支持哪 些语言、字符等。utf8mb4 通常是最好的选择,如果面临扩展部署考虑,则可 考虑 utf16 的使用,中文网站中,唯一建议不适用 latin 字符集。 2. 显示如下界面,表示数据库已创建完成。设置白名单 1. 在左侧导航栏中,单击白名单与安全组2. 单击 default 分组右侧的修改说明:如有需要,也可以单击添加白名单分组,并自定义一个分组名称。 a. 全部开放:将 0.0.0.0/0 加入白名单中,点击确定白名单说明: 多个 IP 地址用英文逗号隔开,且逗号前后不能有空格。 单个实例最多添加 1000 个 IP 地址或 IP 段。如果 IP 地址较多,建议将 零散的 IP 合并为 IP 段,例如 10.10.10.0/24。如果第 3 步获取的白名单模式是通用模式,则无额外注意事项。如果是 高安全模式,需注意: o 公网 IP 经典网络 ECS 实例私网 IP 添加至经典网络分组。 o 把专有网络 ECS 实例私网 IP 添加至专有网络分组。 添加后,所有的应用服务器都能访问 RDS 实例。 五、连接数据库连接数据库 1. 在实例基本信息页面上单击 登录数据库 ,跳转 DMS 界面。 在 DMS 界面,输入创建的 数据库账号 数据库密码。完成以上信息填写后,单击左下角的测试链接,测试连通性无问题后, 点击 登录说明 如果测试连接失败,请按照报错提示检查您录入的实例信息。 出现连接成功提示后,单击提交。 连接成功后,点击 跳过,直接使用 六、上传 Excel 表格数据到 RDS 数据库执行 SQL 窗口1. 在 DMS 控制台,单击 首页,点击常用功能,选择 SQL 窗口,进入 SQL 执行窗口。 若出现以下界面,请缩小界面,点击 右上角 关掉广告页面,关掉操作指 引。 2. 进入 SQL 窗口后,选择 commodity 数据库进行连接,点击确认3. 点击 我已知晓,不在提示,进入 SQL 窗口 执行 SQL 1. 将以下 SQL 复制到 SQL 窗口,创建 goods 表,用于存储 Excel 表格 中的数据。 说明:表的名字可自定义,使用数据库的流程是先创建出数据库,然后创建 表,最后在往表中插入数据,关于表的相关操作,可参考数据库 cloud 认证第 二阶段,SQL 基础开发与应用CREATE TABLE `goods` ( `id` bigint(20) NOT NULL COMMENT ‘书籍编号’, `name` varchar(32) NOT NULL COMMENT ‘书籍名称’, `price` decimal(10,0) NOT NULL COMMENT ‘单价’, `stock` int(10) unsigned NOT NULL COMMENT ‘库存’, `author` varchar(128) DEFAULT NULL COMMENT ‘作者’, `publishing_house` varchar(32) DEFAULT NULL COMMENT ‘出版社’, `publishing_date` date DEFAULT NULL COMMENT ‘出版日期’, `type` varchar(16) DEFAULT NULL COMMENT ‘类型’, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’商品信息’;2. 单击执行 ,页面返回执行成功标志,消息通知执行成功3. 可点击 刷新按钮,将会出现新创建的 goods 表。 数据导入1. 下载数据将已准备好的 Excel 表格数据,通过 OSS 的 bucket 地址进行下载到公共资源 中。 https://labfileapp.oss-cnhangzhou.aliyuncs.com/clouder/%E5%95%86%E5%93%81%E7%AE%A1%E7%90%86.xlsx 2. 数据导入。在 DMS 控制台上,选择常用功能—>数据导入数据库:选择创建数据库步骤中所创建的数据库 commodity; 文件类型:选择 Excel 格式; 目标表:选择创建的表 goods; 数据位置:选择第 1 行为数据; 说明: 第 1 行为属性:表格首行是字段名。 第 1 行为数据:表格首行是数据。3. 单击上传文件,将商品管理文件进行上传。4. 单击提交申请5. 预检查阶段,需显示全部通过,单击执行变更6. 单击确定执行7. 界面显示执行成功,即为文件上传成功。至此,已经完成了 Excel 表格数据上传到 RDS 数据库的操作,接下来,让我们 一起在数据库中查询数据。 七、查询导入 RDS 数据库中的数据1. 单击 SQL 窗口,选择数据库,单击确认,进行连接数据库。2. 打开新的 SQL 窗口。 3. SQL 窗口中,输入 SQL,单击执行,查询 goods 表中的全量数据。 select * FROM `goods`;查询出的数据为全量的数据,与 Excel 表格中的数据进行对比,可发现数据一 致。 4. SQL 窗口中,点击+号,新增 SQL 执行窗口,输入 SQL,单击执行在 goods 表中查询 teye 字段为‘计算机’类型的数据。 select * FROM `goods` WHERE type=’计算机’;八、ECS 连接数据库操作数据库连接串准备 1. 通过 ECS 连接数据库,需要输入 MySQL 的命令行进行连接,连接方 式如下: 说明: mysql -h 主机名 -u 用户名 -p 密码 -P 端口 。 -h : 该命令用于指定客户端所要登录的 MySQL 主机名。 -u : 所要登录的用户名。 -p : 告诉服务器将会使用一个密码来登录。 -P:一般默认为 3306。 在进行下面的实验之前,需要找到数据库的连接地址、账户和密码。 2. 开通外网地址,点击实例功能栏左侧数据库连接,点击开通外网地 说明: 外网地址需要手动申请,不需要时也可以释放。 无法通过内网访问 RDS 实例时,您需要申请外网地址。具体场景如下:o ECS 实例访问 RDS 实例,且 ECS 实例与 RDS 实例位于不同地 域,或者网络类型不同。 o 阿里云以外的设备访问 RDS 实例。 3. 开通外网地址以后,将外网地址进行复制,后续步骤会进行使用该 地址。 说明:在页面上显示外网地址,即为开通成功,一般需要等待 1 分钟,刷新页 面即可看到。ECS 服务器登录数据库 1. 在实验室页面右侧,单击单击 图标,切换至 Web Terminal2. 执行如下命令,登录数据库mysql -h rm-bp1gnkhyazncgwof78o.mysql.rds.aliyuncs.com -P3306 – u aliyuntest -p 说明:rm-bp146a37kwq04n6t8oo.mysql.rds.aliyuncs.com 需要将命令行中的 rm-bp1gnkhyazncgwof78o.mysql.rds.aliyuncs.com 地址替 换为上述步骤查找到的外网地址,其他的参数无需更改 外网地址:跳回浏览器界面,进入数据库链接,获取外网地址。 数据库账户为之前步骤中所创建的数据库账号:aliyuntest 数据库密码为之前步骤中所创建的密码:子用户密码3. 返回结果如下,表示登录成功。 执行 SQL 操作 1. 执行如下 SQL 语句,查看所有数据库。 show databases; 返回结果如下,您可查看到 MySQL 数据库中的数据库,其中 commodity 数据库 是之前创建数据库的步骤中创建好的,后续实验所有操作都在 commodity 数据 库中执行2. 执行如下 SQL 语句,选择数据库 commodityuse commodity; 3. 执行如下 SQL 语句,查看所有的表。 show tables; 4. 执行如下 SQL 语句,查询 goods 表中所有数据。 select * from goods;goods 表中的数据为通过 DMS 导入的 Excel 表格中的数据。 5. 执行如下 SQL 语句,创建一个名为 book_types 的表。 CREATE TABLE IF NOT EXISTS `book_types` ( `type_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT ‘书籍类型 ID’, `book_type` varchar(32) NOT NULL DEFAULT ” COMMENT ‘书籍类型’, PRIMARY KEY (`type_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 6. 执行如下 SQL 语句,在 book_types 表中插入数据。 INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (1, ‘计算机’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (2, ‘历史’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (3, ‘小说’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (4, ‘科幻’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (5, ‘随笔’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (6, ‘心理学’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (7, ‘科学’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (8, ‘传记’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (9, ‘励志’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (10, ‘悬疑’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (11, ‘哲学’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (12, ‘语言学’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (13, ‘人工智能’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (14, ‘数据分析’); INSERT INTO `book_types` (`type_id`, `book_type`) VALUES (15, ‘数据挖掘’); 7. 执行如下 SQL 语句,查询 book_types 表中的所有数据select * from book_types;8. 执行如下 SQL 语句,删除 book_types 表中 type_id 等于 1 的数 据,并进行查看。 delete from book_types where type_id=1; select * from book_types; 9. 执行如下 SQL 语句,更新 book_types 表中 type_id 2 数据 book_type 为 python,并进行查看。 update book_types set book_type=’python’ where type_id=2;至此您已经学会了通过 ECS 连接数据库的简单操作,赶快实践起来吧! 九、检查并交卷您检查答题情况,如果检查无误,可以点击屏幕右上角“交卷“按钮。 证书查询:https://edu.aliyun.com/clouder/my/clouderpackage