本文介绍如何使用JDBC数据源进行数据分析或者交互式开发。
建表语法
CREATE TABLE tbName
USING jdbc2
OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);
配置参数说明
参数名 | 说明 | 是否必选 |
---|---|---|
url | 数据库地址。 | 是 |
driver | 数据库连接的JDBC驱动。例如com.mysql.jdbc.Driver”eper.quorum":"a.b.c.d:2181"} 。
|
是 |
dbtable | 数据表名称。 | 是 |
user | 连接的用户名。 | 是 |
password | 连接的密码。 | 是 |
batchsize | 每个批次更新的数据条数。
仅向数据库写入数据时生效。 |
否 |
isolationLevel | 事务隔离级别,默认值为READ_UNCOMMITTED。 | 否 |
事务隔离级别详情如下。
事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
READ_UNCOMMITTED | 是 | 是 | 是 |
READ_COMMITTED | 否 | 是 | 是 |
REPEATABLE_READ | 否 | 否 | 是 |
SERIALIZABLE | 否 | 否 | 否 |
NONE | 无 | 无 | 无 |
Table Schema
创建JDBC表时,无需显式地定义表的字段信息,示例如下所示。
spark-sql> CREATE DATABASE IF NOT EXISTS default;
spark-sql> USE default;
spark-sql> DROP TABLE IF EXISTS rds_table_test;
spark-sql> CREATE TABLE rds_table_test
> USING jdbc2
> OPTIONS (
> url="jdbc:mysql://rm-bp11*********i7w9.mysql.rds.aliyuncs.com:3306/default?useSSL=true",
> driver="com.mysql.jdbc.Driver",
> dbtable="test",
> user="root",
> password="thisisapassword",
> batchsize="100",
> isolationLevel="NONE");
spark-sql> DESC rds_table_test;
id int NULL
name string NULL
Time taken: 0.413 seconds, Fetched 2 row(s)
写入数据
当您需要向数据库中写入数据时,可以通过以下命令设置一个关联的SQL Statement来实现。
spark-sql> SET streaming.query.${queryName}.sql=insert into `test` (`id`,`name`) values(?, ?);
spark-sql> SET ...
spark-sql> INSERT INTO rds_table_test SELECT ...
在文档使用中是否遇到以下问题
更多建议
匿名提交