SparkSQL 读写_JDBC_MySQL 环境准备 | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习 SparkSQL 读写_JDBC_MySQL 环境准备

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段SparkSQL 读写_JDBC_MySQL 环境准备】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12064


SparkSQL 读写_JDBC_MySQL 环境准备

 

内容介绍:

一、JDBC

二、MySQL 环境的配置

 

在之前的课程中,我们已经学习过许多 SparkSQL 读取的格式,包括 Parquet、分区、JSON、Hive,今天学习最后一种格式 JDBC,主要学习如何使用 SparkSQL 读写 JDBC 中的 MySQL 环境准备。

 

一、JDBC

JDBC 是一个通用的协议,用于让 Java 可以访问多种关系型数据库的概念,所以在 JDBC 这一环节当中,我们以 MySQL 作为基准。MySQL 是我们现阶段最常见的关系型数据库。

 

二、MySQL 环境的配置

我们常会面临要去创建用户,创建表,甚至创建库等操作。环境配置环节的整个步骤包括:连接 MySQL、创建库、创建表、创建用户。当然,先创建用户也可以,但是按照这样的步骤进行配置相对安全性更高。因为我们最终要为用户进行赋权,而在赋权时,要先有数据库才可以。

1、原始代码:

以下为先创建用户配置 MySQL 环境的过程,值得注意的是选择先创建用户的配置方法,GRANT ALL 赋权的指令应在创建完数据库之后执行。

(1)连接 MySQL 数据库

在 MySQL 所在的主机上执行如下命令

mysql -u root -p

(2)创建 Spark 使用的用户登进 MySQL 后,需要先创建用户

CREATE USER 'spark' @ '% ' IDENTIFIED BY 'Spark123!';

GRANT ALL ON spark_test.* TO 'spark' @ '%';

(3)创建库和表

CREATE DATABASE spark_test;

USE spark_test;

CREATE TABLE IF NOT EXISTS 'student'(

'id' INT AUTO INCREMENT.

'name' VARCHAR(100) NOT NULL,

'age'  INT NOT NULL,

'gpa'  FLOAT,

PRIMARY KEY ('id')

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、实操

进入代码编辑窗口,进行如下操作:

(1)连接 MySQL

只有连接到 MySQL,才能执行 sql 语句。输入如下命令:

mysql -u root -p

//指定用户和密码

回车之后输入 root 用户的密码。输入密码之后就进入了 MySQL 的窗口,在该窗口当中,下一步是建立数据库。

(2)创建库

创建 Spark 使用的用户登进 MySQL 后,需要先创建用户。

create database spark02;

//创建数据库 spark02

use  spark02;

//使用数据库 spark02

(3)创建表

create table if not exists 'student'{

//在 MySQL 支持若不存在表时创建表 student

//左侧单引号往往是标注其中是一个字符串,无需进行优化和改编

//指定表的结构

->  'id'INT AUTO_INCRIMENT

//往往会先指定 ID 列,因为 MySQL 的表与 Hive 的表是不同

的,MySQL 的表是有索引的,在一般情况下,如果使用 InnoDB

引擎,即默认为索引文件,存表的文件按照 id 来进行索引的文

件。因此,要创建 id 方可,要有主键。

//“AUTO_INCRIMENT”自增主键

->  'name'VARCHAR(100)not null

//创建 name 列,其文件类型是 VARCHAR,这里与 Hive 有一

定区别,后者的文件类型多为 string、int 等等。

//not null 表明 name 列不为空。

->'age'INT not null,

-> 'gpa' FLOAT not null,

->  primary key ('id')

//此时,表已大致创建完成

->  >engine = InnoDB default CHARSET=utf8;

//指定一个 engine 为 InnoDB,指定默认的数据集 default

CHARSET utf8。

回车显示 Query OK,说明表创建成功。

输入 show tables,输出结果如下:

image.png

再输入 desc student,输出结果如下:

image.png

类型无误,有一个名为 auto_increment 的 primary key。

外部应使用 spark 来访问该表,则应为 spark 创建用户,而非所

有的外部访问都使用 root 用户来访问,安全性太低。

(4)创建用户

create user  'spark03' @ '% '  identified by 'Spark03!';

// @ '% '表示可以在任意位置访问(本地或外部)

//指定密码时既有大写又有小写,还有数字和符号,安全级别高

//以上完成了用户的创建,但是目前用户无法访问当前的 spark02 的数据库

grant all on  spark02.* tO 'spar k03' @ '%';

//grant all 表示将某表某文件所有权限都赋予该用户。因此通过该操作可以将数据库 spark02 下的所有文件赋权给用户 spark03

//@ '%'表示在任何位置都可访问

运行代码,运行结果无误。

就此整体上准备好了 MySQL 的环境,接下来就可以使用 SparkSQL 进行相应的操作。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
127
分享
相关文章
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
165 11
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
182 28
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
463 81
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
279 6
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
236 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
187 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
528 3
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
265 3
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
1488 1
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
137 1

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问