分析型数据库(AnalyticDB)
分析型数据库(AnalyticDB)是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务。使得您可以在毫秒级时单位时间内针对千亿级数据进行即时的多维分析透视和业务探索。分析型数据库对海量数据的自由计算和极速响应能力,能让您在瞬息之间进行灵活的数据探索,快速发现数据价值,并可直接嵌入业务系统,为终端用户提供分析服务。
DDL定义
实时计算支持使用AnalyticDB作为结果输出。示例代码如下。
CREATE TABLE stream_test_hotline_agent (
id INTEGER,
len BIGINT,
content varchar,
primary key(id)
) WITH (
type='ads',
url='jdbc:mysql:/XXXXXXX/ads_test',
tableName='blink_test',
userName='DXP_6XXXXXXXyun.com',
password='1XXXXXX4',
batchSize='500'
);
注意:在声明AnalyticDB primary key时一定要和数据库里的主键一致,包括大小写也要一致。否则会出现数组索引越界的异常情况。
WITH参数
参数 | 注释说明 | 备注 |
---|---|---|
url | jdbc连接地址 | AnalyticDB详情地址 ,例如:(jdbc:mysql://mydbname-xxxx.ads-hz.aliyuncs.com:5544/my_ads_db) |
tableName | 表名 | 无 |
username | 账号 | 无 |
password | 密码 | 无 |
maxRetryTimes | 写入重试次数 | 可选,默认为10 |
bufferSize | 去重的buffer大小 | 可选,默认为5000,表示输入的数据达到5000条就开始输出 |
batchSize | 每次写的批次大小 | 可选,默认为1000 |
batchWriteTimeoutMs | 写超时时间 | 可选,单位毫秒,默认值5000:如果数据超过了5秒,还没有往OTS写入过,就会将缓存的数据都写一次 |
connectionMaxActive | 单连接池最大连接数 | 可选,默认值30 |
ignoreDelete | 是否忽略delete操作 | 默认为false |
注意:如果错代码是20015,则表示batchSize设置的过大。AnalyticDB单次batch不能超过1M,如果batchSize设置为
1000
,平均每条记录大小不能超过1Kb。您可以根据这个逻辑来合理的设置batchSize数目。
类型映射
建议使用AnalyticDB和实时计算字段类型对应关系进行DDL声明。
AnalyticDB字段类型 | 实时计算字段类型 |
---|---|
boolean | boolean |
tinyint | int |
smallint | int |
int | int |
bigint | bigint |
double | double |
varchar | varchar |
date | date |
本文转自实时计算——
创建分析型数据库(AnalyticDB)结果表