流式数据通道概述

MaxCompute流式数据通道服务提供了以流式的方式把数据写入MaxCompute的能力,使用与原批量数据通道服务不同的一套全新的API及后端服务。流式服务在API上极大简化了分布式服务的开发成本,同时解决了批量数据通道在高并发、高QPS(Queries-per-second)场景下的性能瓶颈。本文为您介绍如何使用流式数据通道服务。

功能介绍

MaxCompute流式数据通道服务已商业化且不计费,您可以免费使用。

MaxCompute流式数据通道服务自2021年1月1日起开始公测,公测期间可直接免费使用,后续商业化通知请关注公告

以下服务支持使用流式数据通道模式将数据写入MaxCompute。

MaxCompute流式数据通道服务功能点如下:

  • 提供流式语义API:通过流式服务的API可以方便地开发出分布式数据同步服务。

  • 支持自动创建分区:解决数据同步服务并发创建分区导致的并发抢锁问题。

  • 支持增量数据异步聚合(Merge):提升数据存储效率。

MaxCompute流式数据通道服务可以解决流式服务使用批量数据通道写入数据引发的各种问题,优势如下:

  • 更优化的数据存储结构,解决高QPS写入导致的碎片文件问题。

  • 提供了增量数据异步处理机制,可以在使用过程中无感知情况下对新写入的增量数据做进一步处理,已经支持数据聚合(Merge): 提升存储效率。

应用场景

MaxCompute流式数据通道服务应用场景如下。

场景

说明

特点

大量事件日志实时写入MaxCompute

日志采集数据直接写入MaxCompute进行批量处理。

无需通过中间存储服务做中转,节约成本。

流式计算结果实时写入MaxCompute

流式服务写入MaxCompute解除并发数及batch size的限制。

解决高并发抢锁导致流式服务不可用,避免batch size太小导致MaxCompute产生大量小文件的问题。

流式存储服务(DataHub、Kafka)实时同步MaxCompute

轻量消息队列实时同步MaxCompute解除并发数及batch size的限制。

解决轻量消息队列实时同步到MaxCompute的问题,支持高并发、大批量同步。

使用限制

MaxCompute流式数据通道服务的使用限制如下:

  • 加锁写入的表或分区:在向MaxCompute流式写入数据期间,MaxCompute流式数据通道服务会对写入的表或分区进行加锁。即流式写入数据期间会屏蔽所有涉及数据修改的DML操作,例如insert into|insert overwrite。流式写入结束后,MaxCompute会对表或分区进行解锁,之后可以执行所有操作。

  • 如果写入的表Schema有修改,则不能支持流式写入。

  • 热数据存储量会出现增长情况:在开启异步处理的场景下(Merge或Zorder),MaxCompute流式数据通道服务会对最近一小时写入的数据保存两份,一份为原始数据,一份为异步聚合后的数据,数据的存储量会有一定程度的冗余。冗余数据的保存周期默认是1小时。