全部产品
Search
文档中心

云原生大数据计算服务 MaxCompute:数据传输服务(上传)场景与工具

更新时间:Jan 05, 2024

本文为您介绍如何将数据上传至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版方式。

    • Flink实时写入:您可以通过Flink平台对流式数据进行实时写入。

解决方案的可靠性

MaxCompute具有服务等级协议(SLA),因批量数据通道、流式数据通道默认使用免费共享资源,您还需考虑实现特定方案的可靠性。Tunnel数据通道服务依照访问的先后顺序,分配服务可用资源(Slot)。

  • 当服务的剩余可用资源为0时,将拒绝任何新增访问,直至可用资源得到释放。

  • 5分钟内未达到100个有效请求的情况,不计为服务不可用,有效请求参见有效状态码

  • 请求延迟不包含在SLA保障范围,限制请求不包含在SLA保障范围,限制请求请参见使用限制

使用限制

  • 批量数据通道使用限制说明

    • 批量数据上传

      • UploadSession生命周期:24小时。

      • 单UploadSession写入分片(block)个数:20000个。

      • 单并发写入速度: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、201为成功请求状态码,其余均为失败请求状态码。

状态码标识

状态码名称

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保障。

注意事项

网络因素对Tunnel上传下载速度的影响较大,正常情况下速度范围为1 MB/s~10 MB/s。当上传的数据量较大时,建议配置Tunnel Endpoint为经典网络或VPC网络相应的Tunnel Endpoint。经典网络或VPC网络需要通过阿里云ECS连通或者通过网络专线开通。如果上传数据速度太慢,可以考虑使用多线程上传方式。

更多Tunnel Endpoint信息,请参见Endpoint