创建云数据库(RDS/DRDS)结果表

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
实时计算 Flink 版,5000CU*H 3个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介:

关系型数据库(RDS)

阿里云关系型数据库(Relational Database Service)简称RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和高性能存储,RDS支持MySQL、SQL Server、PostgreSQL和PPAS(Postgre Plus Advanced Server,一种高度兼容 Oracle 的数据库)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

注意:
关系型数据库(RDS/DRDS)插件中的WITH参数一致,可以通用。
在使用关系型数据库(RDS/DRDS)作为结果表时,RDS或DRDS中必须要有真实的表存在。

DDL定义

实时计算支持使用RDS/DRDS作为结果输出(目前仅支持MySql数据存储类型)。示例代码如下。

 
 
  1. create table rds_output(
  2. id int,
  3. len int,
  4. content VARCHAR,
  5. primary key(id,len)
  6. ) with (
  7. type='rds',
  8. url='jdbc:mysql:XXXXXXXXXX',
  9. tableName='test4',
  10. userName='test',
  11. password='XXXXXX'
  12. );

注意:

  • 实时计算写入RDS/DRDS数据库结果表原理:针对实时计算每行结果数据,拼接成一行SQL向目标端数据库进行执行。如果使用批量写,需要在url后面加上参数 ?rewriteBatchedStatements=true,否则性能较差。
  • RDS/MySQL支持自增主键。如果需要让实时计算写入数据支持自增主键,在DDL中不声明该自增字段即可。
    例如,ID是自增字段,实时计算DDL不写出该自增字段,则数据库在一行数据写入过程中会自动填补相关的自增字段。
  • 如果DRDS有分区表,拆分键必须在实时计算DDL里primary key()中声明,否则拆分的表无法写入。关于DRDS分库分表的概念可参见DRDS分库分表
  • 建议使用数据存储,参见数据存储云数据库(RDS)

WITH参数

参数 注释说明 备注
url 地址 RDS的URL地址, DRDS的URL地址
tableName 表名
userName 用户名
password 密码 无 
maxRetryTimes 最大尝试插入次数 可选,默认为3
batchSize 每次写的批次大小 可选,默认值50,表示每次写多少条。
bufferSize 去重的buffer大小,需要指定主键才生效 可选,默认值1(1.4.1默认值改为1000),表示输入的数据达到1条就开始输出。
flushIntervalMs 写超时时间 可选,单位毫秒,默认值5000,表示数据超过了5秒,还没有写过,就会将缓存的数据都写一次。
excludeUpdateColumns 对相同key的值更新时排除掉相应的column 可选,默认为空(primary keys 字段默认会排除)
ignoreDelete 是否忽略delete操作 默认为false
partitionBy 写入Sink节点前,会根据该值做hash。数据会流向相应的hash节点。 可选,默认为空。

类型映射

RDS字段类型 实时计算字段类型
text varchar
byte varchar
integer int
long bigint
double double
date varchar
datetime varchar
timestamp varchar
time varchar
year varchar
float float
decimal decimal
char varchar

JDBC 连接参数

参数名称 参数说明 缺省值 最低版本要求
useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true。 false 1.1g
characterEncoding 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk。 false 1.1g
autoReconnect 当数据库连接异常中断时,是否自动重新连接。 false 1.1
autoReconnectForPools 是否使用针对数据库连接池的重连策略。 false 3.1.3
failOverReadOnly 自动重连成功后,连接是否设置为只读。 true 3.0.12
maxReconnects autoReconnect设置为true时,重试连接的次数。 3 1.1
initialTimeout autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒。 2 1.1
connectTimeout 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本。 0 3.0.1
socketTimeout socket操作(读写)超时,单位:毫秒。 0表示永不超时。 0 3.0.1

FAQ

Q:Flink的结果数据写入RDS表,是按主键更新的,还是新生成一条记录?
A:如果在DDL中定义了主键,会采用insert into on duplicate key update的方式更新记录,也就意味着对于不存在的主键字段会直接插入,存在的主键字段则更新相应的值。
如果DDL中没有声明primary key,则会用insert into 方式插入记录,追加数据。

Q:使用RDS表中的唯一索引做GROUP BY需要注意什么?
A:RDS中只有一个自增主键,实时计算作业中不能声明为Primary Key;如果需要使用RDS表中的唯一索引做GROUP BY,需要在作业中的Primary Key中声明这些唯一索引。


本文转自实时计算—— 创建云数据库(RDS/DRDS)结果表
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
2月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
1月前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
177 42
|
6天前
|
SQL 关系型数据库 MySQL
MySQL生产环境迁移至YashanDB数据库深度体验
这篇文章是作者将 MySQL 生产环境迁移至 YashanDB 数据库的深度体验。介绍了 YashanDB 迁移平台 YMP 的产品相关信息、安装步骤、迁移中遇到的各种兼容问题及解决方案,最后总结了迁移体验,包括工具部署和操作特点,也指出功能有优化空间及暂不支持的部分,期待其不断优化。
|
1月前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
136 25
|
17天前
|
关系型数据库 数据库 数据安全/隐私保护
云数据库实战:基于阿里云RDS的Python应用开发与优化
在互联网时代,数据驱动的应用已成为企业竞争力的核心。阿里云RDS为开发者提供稳定高效的数据库托管服务,支持多种数据库引擎,具备自动化管理、高可用性和弹性扩展等优势。本文通过Python应用案例,从零开始搭建基于阿里云RDS的数据库应用,详细演示连接、CRUD操作及性能优化与安全管理实践,帮助读者快速上手并提升应用性能。
|
17天前
|
监控 关系型数据库 MySQL
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
|
25天前
|
SQL 关系型数据库 MySQL
数据库数据恢复——MySQL简介和数据恢复案例
MySQL数据库数据恢复环境&故障: 本地服务器,安装的windows server操作系统。 操作系统上部署MySQL单实例,引擎类型为innodb,表空间类型为独立表空间。该MySQL数据库没有备份,未开启binlog。 人为误操作,在用Delete命令删除数据时未添加where子句进行筛选导致全表数据被删除,删除后未对该表进行任何操作。
|
2月前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
526 0
|
3月前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
92 3
|
3月前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
178 3

热门文章

最新文章