全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
流计算

创建云数据库(RDS维表)

更新时间:2017-11-23 18:23:51

什么是云数据库(RDS)

云数据库MySQL 是全球最受欢迎的开源数据库之一,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用场景

示例

  1. CREATE TABLE rds_dim_table(
  2. id int,
  3. len int,
  4. content VARCHAR,
  5. PRIMARY KEY (id),
  6. PERIOD FOR SYSTEM_TIME--定义了维表的变化周期,即表明该表是一张会变化的表。
  7. ) with (
  8. type='rds',
  9. url='jdbc:mysql:XXXXXXXXXX',
  10. tableName='test4',
  11. userName='test',
  12. password='XXXXXX'
  13. );

注:声明一个维表的时候,必须要指名主键,维表JOIN的时候,ON的条件必须包含所有主键的等值条件。RDS的主键可以定义为表的主键或是唯一索引列。

WITH参数

参数 注释说明 备注
url 地址
tableName 表名
userName 用户名
password 密码
maxRetryTimes 最大尝试插入次数 可选,默认为3

Cache 参数

参数 注释说明 备注
cache 缓存策略 默认 “None”, 可选 “LRU”, “ALL”
cacheSize 缓存大小 当选择 LRU 缓存策略后,可以设置缓存大小,默认 10000 行
cacheTTLMs 缓存超时时间,单位毫秒 当选择 LRU 缓存策略后,可以设置缓存失效的超时时间,默认不过期。当选择 ALL 策略,则为缓存reload 的间隔时间,默认不重新加载。
cacheReloadTimeBlackList ALL Cache 时启用,更新时间黑名单,防止在此时间内做cache 更新(如双11场景) 可选,默认空,格式为 ‘2017-10-24 14:00 -> 2017-10-24 15:00, 2017-11-10 23:30 -> 2017-11-11 08:00’ 。用逗号’,’来分隔多个黑名单,用箭头’->’来分割黑名单的起始结束时间

目前 TDDL 提供三种缓存策略,分别是 None, LRU, ALL。

  • None: 无缓存
  • LRU: 最近使用策略缓存,需要配置相关参数:缓存大小(cacheSize)和 缓存超时时间(cacheTTLMs)
  • ALL: 全量缓存策略。即在 Job 运行前会将远程表中所有数据 load 到内存中,之后所有的维表查询都会走 cache,cache 命中不到则不存在,并在缓存过期后重新加载一遍全量缓存。适合远程表不大、miss key 特别多的场景。需要配置相关配置:缓存更新间隔(cacheTTLMs),更新时间黑名单(cacheReloadTimeBlackList)。注意:使用 cache all 的时候,需要将维表 JOIN 的节点增加一些内存,增加的内存大小为远程表两倍的数据量,因为我们会异步 reload。

如果使用 CACHE ALL,请特别注意节点的内存,防止 OOM。

本文导读目录