本文为您介绍如何将数据上传至MaxCompute或从MaxCompute下载数据,包括服务连接、SDK、工具和数据导入导出、上云等常见操作。
背景信息
MaxCompute提供了多种数据上传下载的通道支持,方便您在各种场景下进行技术方案选型时参考。
-
批量数据通道:支持批量上传及下载数据场景。
-
流式数据通道:提供了以流式的方式把数据写入MaxCompute的能力。
-
实时数据通道:DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布(Publish)、订阅(Subscribe)和分发功能,支持流式数据归档至MaxCompute。
功能介绍
-
批量数据通道上传
使用批量数据通道上传数据时,可以通过单个批量操作将数据上传到MaxCompute中。例如上传数据源可以是外部文件、外部数据库、外部对象存储或日志文件。MaxCompute中批量数据通道上传包含如下方案。
-
Tunnel SDK:您可以通过Tunnel向MaxCompute中上传数据。
-
数据同步服务:您可以通过数据集成(DataWorks)任务,提取、转换、加载(ETL)数据到MaxCompute。
-
数据投递:您可以通过DataHub、SLS、Kafka版服务的MaxCompute Sink Connector、Blink将数据投递至MaxCompute。
-
开源工具及插件:您可以通过Sqoop、Kettle、Flume、Fluentd插件、OGG、MMA将数据上传至MaxCompute。
-
产品工具:MaxCompute客户端基于批量数据通道的SDK,实现了内置的Tunnel命令,可对数据进行上传,Tunnel命令的使用请参见Tunnel命令。
说明
对于离线数据的同步,推荐您优先使用数据集成,详情请参见数据集成概述。
-
-
流式数据通道写入
MaxCompute流式数据通道服务提供了以流式的方式将数据写入MaxCompute的能力,使用与原批量数据通道服务不同的一套全新的API及后端服务。流式数据写入到MaxCompute的方案如下。
-
SDK接口:提供流式语义API,通过流式服务的API可以方便的开发出分布式数据同步服务。
-
数据同步服务:您可以通过数据集成实时同步任务实现流式数据写入(StreamX)。
-
数据投递:您可以通过已集成流式写入API的数据投递模式实现流式数据写入。支持SLS、消息队列Kafka版方式。
-
数据采集:MaxCompute支持将开源Logstash收集的日志数据流式写入MaxCompute。
-
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)。
-
当遇到并发写入时,MaxCompute会根据ACID进行并发写的保障。关于ACID的具体语义请参见ACID语义
-
-
批量数据下载
-
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。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/158556.html