主要是在一些问题的处理方面多注意一下即可.
MaxCompute Tunnel是什么? Tunnel是MaxCompute的数据通道,用户可以通过Tunnel向MaxCompute中上传或者下载数据。目前Tunnel仅支持表(不包括视图View)数据的上传下载。
BlockId是否可以重复? 同一个UploadSession里的blockId不能重复。也就是说,对于同一个UploadSession,用一个blockId打开RecordWriter,写入一批数据后,调用close, 然后再commit完成后,写入成功后不可以重新再用该blockId打开另一个RecordWriter写入数据。 Block默认最多20000个,即0-19999。
Block大小是否存在限制? 一个block大小上限 100GB,强烈建议大于64M的数据,每一个Block对应一个文件,小于64MB的文件统称为小文件,小文件过多将会影响使用性能。 使用新版BufferedWriter可以更简单的进行上传功能避免小文件等问题 Tunnel-SDK-BufferedWriter
Session是否可以共享使用,存在生命周期吗? 每个Session在服务端的生命周期为24小时,创建后24小时内均可使用,也可以跨进程/线程共享使用,但是必须保证同一个BlockId没有重复使用,分布式上传可以按照如下步骤: 创建Session->数据量估算->分配Block(例如线程1使用0-100,线程2使用100-200)->准备数据->上传数据->Commit所有写入成功的Block。
Session创建后不使用是否对系统有消耗? 每个Session在创建时会生成两个文件目录,如果大量创建而不使用,会导致临时目录增多,大量堆积时可能造成系统负担,请一定避免此类行为,尽量共享利用session。
遇到Write/Read超时或IOException怎么处理? 上传数据时,Writer每写入8KB数据会触发一次网络动作,如果120秒内没有网络动作,服务端将主动关闭连接,届时Writer将不可用,请重新打开一个新的Writer写入。
建议使用 [Tunnel-SDK-BufferedWriter]接口上传数据,该接口对用户屏蔽了blockId的细节,并且内部带有数据缓存区,会自动进行失败重试。
关于使用Tunnel服务需要注意,在官方文档中对于各地域及不同网络连接方式下的Endpoint信息,以及与其他阿里云产品互访场景中的网络连通性及计费信息都有详细描述,文档地址:https://help.aliyun.com/document_detail/34951.html,
如果您不配置Tunnel Endpoint,系统会自动路由到Endpoint所在网络对应的Tunnel Endpoint。例如Endpoint为外网就会路由到外网的Tunnel Endpoint;Endpoint为经典网络或VPC网络就会路由到经典网络或VPC网络的Tunnel Endpoint。若您已手动配置Tunnel Endpoint,则以手动配置为准,不进行自动路由。
不同地域、不同网络类型下的Tunnel服务计费规则不统一,详细计费规则,请参见计费规则。
更多内容可以参考官方文档,文档地址上面已经贴出
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。