详情页标题前

阿里云云原生大数据计算服务 MaxComputeTunnelBufferedWriter-云淘科技

详情页1

本文向您介绍TunnelBufferedWriter接口,此接口用于上传数据

一次完整的上传流程通常包括以下步骤:

  1. 先对数据进行划分。
  2. 为每个数据块指定block Id,即调用openRecordWriter(id)。
  3. 用一个或多个线程分别将这些block上传上去,并在某个block上传失败以后,需要对整个block进行重传。
  4. 在所有block都上传以后,向服务端提供上传成功的blockid list进行校验,即调用session.commit([1,2,3,…])。

    由于服务端对block管理、连接超时等一些限制,上传过程逻辑变得比较复杂,为了简化上传过程,SDK提供了更高级的一种RecordWriter—TunnelBufferedWriter。

TunnelBufferedWriter接口定义

public class TunnelBufferedWriter implements RecordWriter {
    public TunnelBufferedWriter(TableTunnel.UploadSession session, CompressOption option) throws IOException;
    public long getTotalBytes();
    public void setBufferSize(long bufferSize);
    public void setRetryStrategy(RetryStrategy strategy);
    public void write(Record r) throws IOException;
    public void close() throws IOException;
}

TunnelBufferedWriter接口说明

  • 生命周期:从创建RecordWriter到数据上传结束。
  • 创建TunnelBufferedWriter实例:通过调用UploadSession的openBufferedWriter接口创建。
  • 数据上传:调用Write接口,数据会先写入本地缓存区,缓存区满后会批量提交到服务端,这样可以避免连接超时。此外,如果数据上传失败,则会自动进行重试。
  • 结束上传:调用close接口,最后再调用UploadSession的commit接口,即可完成上传。
  • 缓冲区控制:可以通过setBufferSize接口修改缓冲区占内存的字节数(bytes),建议设置大于等于64MB,避免服务端产生过多小文件,影响性能。最小可设置为1MB,最大1000MB,通常无需设置,维持默认值64MB即可。
  • 重试策略设置:您可以选择三种重试回避策略,指数回避(EXPONENTIAL_BACKOFF)、线性时间回避(LINEAR_BACKOFF)、常数时间回避(CONSTANT_BACKOFF)。例如,下面这段代码可以将Write的重试次数调整为6,每一次重试之前先分别回避4s、8s、16s、32s、64s和128s(默认设置为从4开始的指数递增的序列),通常不建议调整此回避设置。
    RetryStrategy retry 
      = new RetryStrategy(6, 4, RetryStrategy.BackoffStrategy.EXPONENTIAL_BACKOFF)
    writer = (TunnelBufferedWriter) uploadSession.openBufferedWriter();
    writer.setRetryStrategy(retry);

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/157278.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云云原生大数据计算服务 MaxComputePyODPS使用第三方包-云淘科技

    本文为您介绍如何在PyODPS中使用第三方包。PyODPS制作第三方包的操作请参见PyODPS制作第三方包。 前提条件 已开通MaxCompute产品。如何开通请参见开通MaxCompute。 已开通DataWorks产品。如何开通请参见开通DataWorks。 上传三方包 使用三方包前,请确保您生成的包已被上传至MaxCompute Archive资源。上…

  • 阿里云日志服务SLSGetHistograms-云淘科技

    调用GetHistograms接口查询指定Logstore中满足查询语法条件的日志分布情况,返回结果显示某时间区间中的日志条数(数量)。 接口说明 请求语法中Host由Project名称和日志服务Endpoint构成,您需要在Host中指定Project。 已创建并获取AccessKey。更多信息,请参见访问密钥。 阿里云账号AccessKey拥有所有API…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云大数据开发治理平台 DataWorksAmazon Redshift数据源-云淘科技

    Amazon Redshift数据源为您提供读取和写入Amazon Redshift的双向通道,方便您后续可以通过向导模式和脚本模式配置数据同步任务。本文为您介绍Amazon Redshift数据同步能力支持情况。 支持的Amazon Redshift版本 Amazon Redshift使用的驱动版本是redshift-jdbc4.2 Driver 2.1.…

  • 阿里云ECS云服务器云盘分析-云淘科技

    您可以通过EBS控制台的数据洞察(CloudLens for EBS)开启云盘的数据采集功能,实时采集并存储云盘性能的秒级监控数据,并将数据进行展示。 开通CloudLens for EBS 首次登录CloudLens for EBS控制台时,需要根据页面提示开通CloudLens for EBS。说明 开通CloudLens for EBS并且开始采集云盘…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云RDS数据库跨地域恢复数据-云淘科技

    如果您已完成跨地域备份数据,可以使用备份文件将数据恢复到跨地域备份所在地域的新实例上。 前提条件 已完成跨地域备份。具体操作,请参见跨地域备份。 说明 更多数据恢复方案,请参见恢复方案概览。 MySQL跨地域恢复,请参见MySQL跨地域恢复。 SQL Server跨地域恢复,请参见SQL Server跨地域恢复。 跨地域恢复到新实例 登录RDS管理控制台,在…

    阿里云数据库 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。