本文为您介绍如何将数据上传至MaxCompute或从MaxCompute下载数据,包括服务连接、SDK、工具和数据导入导出、上云等常见操作。
背景信息
MaxCompute提供了多种数据上传下载的通道支持,方便您在各种场景下进行技术方案选型时参考。
- 批量数据通道:支持批量上传及下载数据场景。
- 流式数据通道:提供了以流式的方式把数据写入MaxCompute的能力。
- 实时数据通道:DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布(Publish)、订阅(Subscribe)和分发功能,支持流式数据归档至MaxCompute。
功能介绍
- 批量数据通道上传
使用批量数据通道上传数据时,可以通过单个批量操作将数据上传到MaxCompute中。例如上传数据源可以是外部文件、外部数据库、外部对象存储或日志文件。MaxCompute中批量数据通道上传包含如下方案。
- Tunnel SDK:您可以通过Tunnel向MaxCompute中上传数据。
- 数据同步服务:您可以通过数据集成(DataWorks)任务,提取、转换、加载(ETL)数据到MaxCompute。
- 开源工具及插件:您可以通过Sqoop、Kettle、Flume、Fluentd插件、OGG将数据上传至MaxCompute。
- 产品工具:MaxCompute客户端基于批量数据通道的SDK,实现了内置的Tunnel命令,可对数据进行上传,Tunnel命令的使用请参见Tunnel命令。
说明 对于离线数据的同步,推荐您优先使用数据集成,详情请参见 数据集成概述。 - 流式数据通道写入
- 数据下载
MaxCompute提供了多种数据下载通道支持,方便您在各种场景下进行技术方案选型时参考。
- MaxCompute客户端基于批量数据通道的SDK,实现了内置的Tunnel命令,可对数据进行下载,Tunnel命令的使用请参见Tunnel命令。
- Tunnel SDK是MaxCompute的数据通道,您可以通过Tunnel从MaxCompute中下载数据,支持单线程、多线程接口实现。
- 数据同步服务:您可以通过数据集成实现从MaxCompute下载数据到本地或外部数据源。
解决方案的可靠性
使用限制
- 批量数据通道使用限制说明
- 批量数据上传
- UploadSession生命周期:24小时。
- 单UploadSession写入Block个数:20000个。
- 单Block写入速度:10 MB/s。
- 单Block写入数据量:100 GB。
- 单表创建UploadSession数:每5分钟500个。
- 单表写入Block数:每5分钟500个。
- 单表并发提交UploadSession数:32个。
- 并发写入Block数:受Slot并发数限制,单次Block写入占用一个Slot。
- 批量数据下载
- DownloadSession生命周期:24小时。
- InstanceDownloadSession生命周期:24小时,受实例生命周期限制。
- 单Project创建InstanceDownloadSession数:每5分钟200个。
- 单表创建DownloadSession数:每5分钟200个。
- 单次下载请求速度:10MB/s。
- 并发创建DownloadSession数:受Slot并发数限制,单次创建DownloadSession占用一个Slot。
- 并发创建InstanceDownloadSession数:受Slot并发数限制,单次创建InstanceDownloadSession占用一个Slot。
- 并发下载请求数:受Slot并发数限制,单次数据下载请求占用一个Slot。
- 批量数据上传
- 流式数据通道使用限制说明
- 单Slot写入速度:1MB/s。
- 单Slot写入请求数:每秒10个。
- 单表并发写入分区数:64个。
- 单分区最大可用Slot数:32个。
- StreamUploadSession占用Slot数:受并发Slot并发数限制,创建StreamUploadSession时指定Slot数。
- DataHub上传数据限制
- 每个字段的大小不能超过这个字段本身的限制,详情请参见数据类型版本说明。
说明 STRING的长度不能超过8 MB。
- 上传的过程中会将多条数据打包成一个Package进行上传。
- 每个字段的大小不能超过这个字段本身的限制,详情请参见数据类型版本说明。
共享资源说明
下表数据为不同区域下免费共享资源(单位:Slot)Project级最多可用Slot数说明。
Region | 城市 | Slot(个数) |
---|---|---|
中国 | 华东1(杭州) | 300 |
中国 | 华东2(上海) | 600 |
中国 | 华东2金融云(上海) | 50 |
中国 | 华北2(北京) | 300 |
中国 | 华北2政务云(北京) | 100 |
中国 | 华北3(张家口) | 300 |
中国 | 华南1(深圳) | 150 |
中国 | 华南1金融云(深圳) | 50 |
中国 | 西南1(成都) | 150 |
中国 | 中国(香港) | 50 |
亚太 | 新加坡 | 100 |
亚太 | 澳大利亚(悉尼) | 50 |
亚太 | 马来西亚(吉隆坡) | 50 |
亚太 | 印度尼西亚(雅加达) | 50 |
亚太 | 日本(东京) | 50 |
欧洲与美洲 | 德国(法兰克福) | 50 |
欧洲与美洲 | 美国(硅谷) | 100 |
欧洲与美洲 | 美国(弗吉尼亚) | 50 |
欧洲与美洲 | 英国(伦敦) | 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 |
注意事项
网络因素对Tunnel上传下载速度的影响较大,正常情况下速度范围为1 MB/s~20 MB/s。当上传的数据量较大时,建议配置Tunnel Endpoint为经典网络或VPC网络相应的Tunnel Endpoint。经典网络或VPC网络需要通过阿里云ECS连通或者通过网络专线开通。如果上传数据速度太慢,可以考虑使用多线程上传方式。
更多Tunnel Endpoint信息,请参见Endpoint。