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

创建云数据库维表

更新时间:2017-12-29 15:19:52

DDL定义

通常受限于关系型模型,RDS对于大容量高并发请求的支持不如TableStore,因此流计算和RDS搭配的情况更多在将RDS作为结果表,但对于小批量低并发的数据情况下,流计算仍然可以使用RDS作为维表。从RDS读取数据,目前支持数据存储类型有MySql/SqlServer/Oracle/PostgreSQL。

实例代码如下:

  1. create dim table dim_table_1
  2. (
  3. word string,
  4. a1 bigint,
  5. b1 bigint,
  6. c1 double,
  7. primary key(word)
  8. ) with (
  9. type = 'rds',
  10. url = 'jdbc:mysql://xxxxxxx.rds.aliyuncs.com:3306/galaxy_test',
  11. username = 'xxx',
  12. password = 'xxx',
  13. tableName = 'galaxy_rds_mysql_test',
  14. cacheTTL = '120000',
  15. cacheType = 'LRU'
  16. );

注意:

  • 维表必须有主键列,即RDS建表必须指定主键,否则流计算无法去查询记录。

  • 不支持维度表中所有列都是主键列的情况,即一个RDS表中不能所有的字段都是主键。

  • 目前对于RDS版本有要求:

    • Oracle支持版本: 9i及9i+

    • SqlServer支持版本: 2008及2008+

不同的数据库引擎对于DDL定义不太一样,主要反映在url的定义不一致,如下:

Mysql定义

  1. create dim table dim_table_1
  2. (
  3. word string,
  4. a1 bigint,
  5. b1 bigint,
  6. c1 double,
  7. primary key(word)
  8. ) with (
  9. type = 'rds',
  10. url = 'jdbc:mysql://xxxxxxx.rds.aliyuncs.com:3306/galaxy_test',
  11. username = 'xxx',
  12. password = 'xxx',
  13. tableName = 'galaxy_rds_mysql_test',
  14. cacheTTL = '120000',
  15. cacheType = 'LRU'
  16. );

SqlServer定义

  1. create dim table dim_table_1
  2. (
  3. word string,
  4. a1 bigint,
  5. b1 bigint,
  6. c1 double,
  7. primary key(word)
  8. ) with (
  9. type = 'rds',
  10. url = 'jdbc:sqlserver://testsqlserver.sqlserver.rds.aliyuncs.com:3433;DatabaseName=xxx',
  11. username = 'xxx',
  12. password = 'xxx',
  13. tableName = 'galaxy_rds_mysql_test'
  14. );

PostgreSQL定义

  1. create dim table dim_table_1
  2. (
  3. word string,
  4. a1 bigint,
  5. b1 bigint,
  6. c1 double,
  7. primary key(word)
  8. ) with (
  9. type = 'rds',
  10. url = 'jdbc:postgresql://rm-xxx.pg.rds.aliyuncs.com:3432/galaxy',
  11. username = 'xxx',
  12. password = 'xxx',
  13. tableName = 'galaxy_rds_mysql_test'
  14. );

WITH参数

字段名称 说明
type 必须为RDS
url 数据库连接串
username 数据库用户名
password 数据库密码
tableName 表名

注意:

  • RDS有白名单限制,在流计算中使用RDS必须支持预先给流计算的机器列表开通白名单。具体请参见《RDS注册》

类型映射

不同数据引擎对于字段类型支持不一致,需要分开说明:

mysql类型

Mysql字段类型 建议流计算字段类型
float/double Double
char/varchar/tinytext/text/mediumtext/longtext String
tinyint/smallint/mediumint/int/bigint Bigint

注意:

  • Mysql维表类型支持较少,除上述类型之外,其他暂时均不支持。

SqlServer类型

SqlServer字段类型 建议流计算字段类型
bigint/bit/numeric/smallint/smallmoney/int/tinyint/money/decimal Bigint
float/real Double
char/varchar/text/nchar/nvarchar/ntext String

注意:

  • SqlServer维表类型支持较少,除上述类型之外,其他暂时均不支持。

PostgreSQL类型

SqlServer字段类型 建议流计算字段类型
smallint/integer/bigint/numeric Bigint
real/double precision/numeric Double
varchar/char/text String

注意:

  • PostgreSQL维表类型支持较少,除上述类型之外,其他暂时均不支持。
本文导读目录