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 进行相应的操作。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
134 6
|
27天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
62 3
|
27天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
34 3
|
2月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
67 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
75 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
104 1
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
69 1
|
2月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
57 2
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
47 0