数据传输服务是MaxCompute数据进出的最重要通道,其中包括适用于批量操作的普通Tunnel和适用于流式写入的Stream Tunnel,同时在所有Region提供免费限量使用的数据传输服务共享资源组,供您采购使用。
使用分类
命令。
目前命令只能通过MaxCompute客户端(odpscmd)执行。
批量操作。
普通Tunnel可以对数据进行离线批操作,对数据进行上传与下载,包括单表数据上传下载和查询实例下载。
流式操作。
Stream Tunnel可以对流式数据做数据微批的方式写入表。
数据传输服务使用限制
批量数据通道使用限制说明。
批量数据上传。
限制项
限制说明
UploadSession生命周期
24小时。
单UploadSession写入Block个数
20000个。
单Block写入速度
10 MB/s。
单Block写入数据量
100 GB。
单表创建UploadSession数
每5分钟500个。
单表写入Block数
每5分钟500个。
单表并发提交UploadSession数
32个。
并发写入Block数
受Slot并发数限制,单次Block写入占用一个Slot。
并发写入
MaxCompute会根据ACID进行并发写入的保障。关于ACID的具体语义请参见ACID语义。
批量数据下载。
限制项
限制说明
DownloadSession生命周期
24小时。
InstanceDownloadSession生命周期
24小时,受实例生命周期限制。
单Project创建InstanceDownloadSession数
每5分钟200个。
单表创建DownloadSession数
每5分钟200个。
单次下载请求速度
10 MB/s。
并发创建DownloadSession数
受Slot并发数限制,单次创建DownloadSession占用一个Slot。
并发创建InstanceDownloadSession数
受Slot并发数限制,单次创建InstanceDownloadSession占用一个Slot。
并发下载请求数
受Slot并发数限制,单次数据下载请求占用一个Slot。
说明批量数据支持Delta Table的Upsert功能,使用限制如下:
UpsertSession生命周期:24小时(h)。
UpsertSession最大写入速度:表或分区Bucket数*10 MB/s。
UpsertSession最大Slot Quota占用:表或分区Bucket数。
UpsertSession Commit频率:Delta Table每个分区1分钟(min)内仅允许Commit 1次。如果某个分区Commit间隔小于1分钟,将会收到
ErrorCode=FlowExceeded, ErrorMessage=CommitUpsert QPS Quota exceeded
系统报错信息。
流式数据通道使用限制说明。
限制项
限制说明
单Slot写入速度
1 MB/s。
单Slot写入请求数
每秒10个。
单表并发写入分区数
64个。
单分区最大可用Slot数
32个。
StreamUploadSession占用Slot数
受Slot并发数限制,创建StreamUploadSession时指定Slot数。
上传数据限制。
每个字段的大小不能超过该字段本身的限制,详情请参见数据类型版本说明。
说明STRING类型的字段大小不能超过8 MB。
上传的过程中会将多条数据打包成一个Package进行上传。
数据传输网络限制(独享资源组)。
只支持云上VPC网络访问,暂时不支持公共网络访问。
只支持同地域的数据传输服务,暂时不支持跨地域的数据传输服务。
网络因素对数据传输服务上传下载速度的影响较大,正常情况下速度范围为1 MB/s~20 MB/s。如果上传数据速度太慢,可以考虑使用多线程上传方式。
数据传输服务共享资源组说明
下表数据为不同区域下免费共享资源(单位:Slot)Project级最多可用Slot数说明。
站点 | 地域 | Slot(个数) |
中国 | 华东1(杭州) | 300 |
中国 | 华东2(上海) | 600 |
中国 | 华东2金融云(上海) | 50 |
中国 | 华北2(北京) | 300 |
中国 | 华北2政务云(北京) | 100 |
中国 | 华北3(张家口) | 300 |
中国 | 华北6(乌兰察布) | 300 |
中国 | 华南1(深圳) | 150 |
中国 | 华南1金融云(深圳) | 50 |
中国 | 西南1(成都) | 150 |
中国 | 中国(香港) | 50 |
亚太 | 新加坡(新加坡) | 100 |
亚太 | 澳大利亚(悉尼)关停中 | 50 |
亚太 | 马来西亚(吉隆坡) | 50 |
亚太 | 印度尼西亚(雅加达) | 50 |
亚太 | 日本(东京) | 50 |
欧洲与美洲 | 德国(法兰克福) | 50 |
欧洲与美洲 | 美国(硅谷) | 100 |
欧洲与美洲 | 美国(弗吉尼亚) | 50 |
欧洲与美洲 | 英国(伦敦) | 50 |
中东与印度 | 阿联酋(迪拜) | 50 |
数据传输服务有效状态码
状态码标识 | 状态码名称 |
200 | HTTP_OK |
201 | HTTP_CREATED |
400 | HTTP_BAD_REQUEST |
401 | HTTP_UNAUTHORIZED |
403 | HTTP_FORBIDDEN |
404 | HTTP_NOT_FOUND |
405 | HTTP_METHOD_NOT_ALLOWED |
409 | HTTP_CONFLICT |
422 | HTTP_UNPROCESSABLE_ENTITY |
429 | HTTP_TOO_MANY_REQUESTS |
499 | HTTP_CLIENT_CLOSED_REQUEST |
500 | HTTP_INTERNAL_SERVER_ERROR |
502 | HTTP_BAD_GATEWAY |
503 | HTTP_SERVICE_UNAVAILABLE |
504 | HTTP_GATEWAY_TIME_OUT |
请求失败重试策略
客户端需要在收到请求失败后等待一段时间再重新发起请求。
连续失败请求等待时间需要满足指数增长规则,最短1秒。例如:1s,2s,4s,8s,16s,32s,32s...
重复请求
URL相同(URI和URI Parameter)。
相同客户端IP连续发起。
有效请求
返回码为有效状态码且满足失败重试策略。
非法请求
返回码为有效状态码但不满足失败重试策略的请求。
说明非法请求不受服务SLA保障。
攻击类请求
针对流控状态码429、503,未遵守失败重试策略的请求。
针对攻击类请求,服务侧会对发起攻击的客户端IP、UID、Project进行隔离处理,被隔离的对象无法正常访问服务。
说明攻击类请求不受服务SLA保障。
常见问题
数据传输服务变慢一般由什么原因导致?
受服务架构限制,MaxCompute Tunnel服务在以下几种场景中会出现偶发的请求延迟问题(单次上传、下载10MB数据耗时从秒级增长到分钟级)。
共享Tunnel服务资源用满(CPU/网络带宽)
持续时间:几分钟~几小时。
受服务架构限制无法避免,有强保障需求的用户,可以购买独享资源Tunnel。
客户端到Tunnel服务网络链路不稳定(公网上传/下载)
持续时间:无法评估。
公网稳定性无法保障,稳定性要求高的用户建议使用阿里云内网。
客户端资源用满(CPU/网络带宽)
持续时间:无法评估。
需要用户对客户端物理资源做充分的评估。
客户端代码逻辑不合理(长连接做上传、下载过程有耗时很长的数据处理逻辑)
持续时间:无法评估。
需要用户在代码设计上充分考虑数据传输性能。