本文为您介绍如何将数据上传至MaxCompute或从MaxCompute下载数据,包括服务连接、SDK、工具和数据导入导出、上云等常见操作。
MaxCompute提供了两种数据上传下载的通道:
- DataHub实时数据通道:包含的工具有OGG插件、Flume插件、LogStash插件和Fluentd插件。
- Tunnel批量数据通道:包含的工具有MaxCompute客户端、DataWorks、DTS、Sqoop、Kettle插件以及MMA迁移工具。
DataHub和Tunnel各自也提供了SDK,而基于这些SDK衍生的数据上传下载的工具,方便您在各种场景下的数据进行上传/下载的需求,更多信息请参考概述。
基于上述丰富的数据上传/下载的工具,可以满足大部分常见的数据上云场景,后续的章节会对工具本身以及Hadoop数据迁移、数据库数据同步、日志采集等数据上云的场景进行介绍,为您进行技术方案选型时提供参考。
说明 对于离线数据的同步,推荐您优先使用数据集成,详情请参见数据集成概述。
使用限制
- Tunnel Upload命令上传限制
- Tunnel命令不支持上传下载Array、Map和Struct类型的数据。
- 上传没有速度限制,上传速度的瓶颈为网络带宽以及服务器性能。
- 重传retry有次数的限制,当重传次数超过限制,就会继续上传下一个block。上传完成后,可以通过
select count(*) from table_name
语句,检查数据是否有丢失。 - 一个项目下Tunnel支持并发的连接数默认上限为2000个。
- 每个Tunnel的Session在服务端的生命周期为24小时,创建后24小时内均可使用,也可以跨进程/线程共享使用,但是必须保证同一个BlockId没有重复使用。
- DataHub上传数据限制
- 每个字段的大小不能超过这个字段本身的限制,详情请参见数据类型版本说明。
说明 STRING的长度不能超过8M。
- 上传的过程中,会将多条数据打包成一个Package来进行上传。
- 每个字段的大小不能超过这个字段本身的限制,详情请参见数据类型版本说明。
- TableTunnel SDK接口限制
- BlockId的取值范围是[0, 20000),单个block上传的数据限制为100G。
- Session的超时时间为24小时。大批量数据传送导致超过24小时,需要自行拆分成多个Session。
- RecordWriter对应的HTTP Request超时时间为120s。如果120s内HTTP连接上没有数据流过,Service端会主动关闭连接。