MaxCompute Tunnel 技术原理及开发实战

本篇主要通过五个部分介绍MaxCompute Tunnel

  • MaxCompute Tunnel技术原理
  • MaxCompute Tunnel丰富的生态
  • Tunnel功能简介
  • SDK的使用方式
  • 最佳实践

一、MaxCompute Tunnel技术原理

上图是架构图,可以看到对外的服务提供了一个统一的SDK,然后集成到所有的外部服务里。在服务端,提供的服务可以大概分为API层和执行层。API层有两个集群 Frontend集群会负责控制流的介入,Tunnel集群负责数据。在执行层分为控制集群和计算集群,控制集群会负责资源管控,meta的管理,和权限管理这些功能,计算集群就负责实际的计算和存储。

可以看到,Tunnel是属于API层的一个组件,专门负责数据的上传和下载。为什么这么做, 是因为这是一个大数据的系统,所以在MaxCompute上跑一个SQL其实就发了一条控制指令。由于目标的场景是一个大数据量的查询,比如说十亿条这种量级的,这是一个规模比较大的操作,如果在这个场景下想做数据的同步,就不能像MySQL传统输入一样通过insert into,因为insert into走控制集群这个链路是非常浪费资源的,同时也会有一些限制。一次一行的效率特别低,因此设计了分开的控制流和数据流。

Tunnel集群负责的功能是在SDK层提供了Tunnel的API,让用户可以通过一个结构化的方式去访问数据。另外,Tunnel是对外放出来的唯一的数据接口,会对用户写进来的数据做格式检查和权限校验,控制数据安全。同时会保证用户通过Tunnel写出来的数据用SQL可读,不用担心比如SQL读不了写进来的数据,或者写的数据和SQL读出来的值有差异。

另外一点,Tunnel是直接访问存储层的,MaxCompute在底层的存储是一个分布式文件系统,Tunnel是直接访问这个文件系统的,这样在性能上就有了保证。也就是说,Tunnel在理想情况下是可以保证单并发达到10兆每秒的吞吐能力,通过假并发也是可以水平扩展整个吞吐能力。

二、MaxCompute Tunnel丰富的生态

MaxCompute有非常丰富的生态,推荐首先要看一下有什么工具,或者有哪些服务可以做,建议优先使用一些成熟的服务,尽量不要自己先写代码。

官方的SDK有Java SDK和Python SDK。

另外,官方还提供了三种工具。MaxCompute客户端是一个命令行工具,在数据同步这方面支持用户把一个本地文件上传到MaxCompute里面,也可以通过下载一张表到一个本地文件上。MaxCompute Studio是一个idea插件,它也支持文件上传下载这样的方式。MMA2.0迁移工具是最近推出的一个工具,可以帮助用户把数据从现有的大数据系统里迁移到MaxCompute上,这些工具都是基于SDK开发的,都是通过SDK传输。

除了工具以外,MaxCompute在第三方服务上也是集成的,比如云上的数据通道图,SLS(阿里云的日志服务),DataHub(数据通道),他们都是原生就支持MaxCompute投递的,Kafka也是有官方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值