本文为您介绍如何将数据上传至MaxCompute或从MaxCompute下载数据,包括服务连接、SDK、工具和数据导入导出、上云等常见操作。

背景信息

MaxCompute提供了多种数据上传下载的通道支持,方便您在各种场景下进行技术方案选型时参考。
  • 批量数据通道:支持批量上传及下载数据场景。
  • 流式数据通道:提供了以流式的方式把数据写入MaxCompute的能力。
  • 实时数据通道:DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布(Publish)、订阅(Subscribe)和分发功能,支持流式数据归档至MaxCompute。

功能介绍

  • 批量数据通道上传
    使用批量数据通道上传数据时,可以通过单个批量操作将数据上传到MaxCompute中。例如上传数据源可以是外部文件、外部数据库、外部对象存储或日志文件。MaxCompute中批量数据通道上传包含如下方案。
    • Tunnel SDK:您可以通过Tunnel向MaxCompute中上传数据。
    • 数据同步服务:您可以通过数据集成(DataWorks)任务,提取、转换、加载(ETL)数据到MaxCompute。
    • 开源工具及插件:您可以通过SqoopKettleFlumeFluentd插件、OGG将数据上传至MaxCompute。
    • 产品工具:MaxCompute客户端基于批量数据通道的SDK,实现了内置的Tunnel命令,可对数据进行上传,Tunnel命令的使用请参见Tunnel命令
    说明 对于离线数据的同步,推荐您优先使用数据集成,详情请参见数据集成概述
  • 流式数据通道写入
    MaxCompute流式数据通道服务提供了以流式的方式将数据写入MaxCompute的能力,使用与原批量数据通道服务不同的一套全新的API及后端服务。流式数据写入到MaxCompute的方案如下。
    • 数据同步服务:您可以通过数据集成实时同步任务实现流式数据写入(StreamX)。
    • 数据投递:您可以通过已集成流式写入API的数据投递模式实现流式数据写入。支持SLS、消息队列Kafka版方式。
  • 数据下载
    MaxCompute提供了多种数据下载通道支持,方便您在各种场景下进行技术方案选型时参考。
    • MaxCompute客户端基于批量数据通道的SDK,实现了内置的Tunnel命令,可对数据进行下载,Tunnel命令的使用请参见Tunnel命令
    • Tunnel SDK是MaxCompute的数据通道,您可以通过Tunnel从MaxCompute中下载数据,支持单线程多线程接口实现。
    • 数据同步服务:您可以通过数据集成实现从MaxCompute下载数据到本地或外部数据源。
    基于上述丰富的数据上传、下载的工具,可以满足大部分常见的数据上云场景,后续的章节会对工具本身以及Hadoop数据迁移、数据库数据同步等数据上云的场景进行介绍,为您进行技术方案选型时提供参考。
    说明 对于上云场景,推荐您参考上云工具说明,详情请参见数据上云工具

解决方案的可靠性

MaxCompute具有服务等级协议(SLA),因批量数据通道、流式数据通道默认使用免费共享资源,您还需考虑实现特定方案的可靠性。Tunnel数据通道服务依照访问的先后顺序,分配服务可用资源(Slot)。
  • 当服务的剩余可用资源为0时,将拒绝任何新增访问,直至可用资源得到释放。
  • 5分钟内未达到100个有效请求的情况,不计为服务不可用,有效请求参见有效状态码
  • 请求延迟不包含在SLA保障范围,限制请求不包含在SLA保障范围,限制请求请参见使用限制
说明 为满足特定解决方案对资源申请的要求,后续会提供单独资源购卖服务,用以解决高资源使用需求。请关注后续产品公告动态,获知最新进度信息。

使用限制

  • 批量数据通道使用限制说明
    • 批量数据上传
      • 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
说明 如您有临时高资源使用需求,可提工单申请临时上调Slot数,系统会根据可用资源情况确认是否通过工单申请,上调Slot资源可用时间最长不超过一周。

有效状态码

状态码标识 状态码名称
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