MaxCompute流式數據通道服務提供了以流式的方式把數據寫入MaxCompute的能力,使用與原批量數據通道服務不同的一套全新的API及后端服務。流式服務在API上極大簡化了分布式服務的開發成本,同時解決了批量數據通道在高并發、高QPS(Queries-per-second)場景下的性能瓶頸。本文為您介紹如何使用流式數據通道服務。
功能介紹
MaxCompute流式數據通道服務已商業化且不計費,您可以免費使用。
MaxCompute流式數據通道服務自2021年1月1日起開始公測,公測期間可直接免費使用,后續商業化通知請關注公告。
以下服務支持使用流式數據通道模式將數據寫入MaxCompute。
流計算Flink:默認使用批量數據通道,支持流式數據通道插件,詳情請參見使用阿里云Flink(流式數據傳輸)。
實時數據同步: 默認使用批量數據通道,支持流式數據通道模式,需要聯系DataWorks值班同學后臺打開。
什么是云消息隊列 Kafka 版?:默認使用批量數據通道,支持流式數據通道模式,需要聯系Kafka值班同學后臺打開。
LogStash日志采集端:使用Logstash(流式數據傳輸)。
MaxCompute流式數據通道服務功能點如下:
提供流式語義API:通過流式服務的API可以方便地開發出分布式數據同步服務。
支持自動創建分區:解決數據同步服務并發創建分區導致的并發搶鎖問題。
支持增量數據異步聚合(Merge):提升數據存儲效率。
MaxCompute流式數據通道服務可以解決流式服務使用批量數據通道寫入數據引發的各種問題,優勢如下:
更優化的數據存儲結構,解決高QPS寫入導致的碎片文件問題。
提供了增量數據異步處理機制,可以在使用過程中無感知情況下對新寫入的增量數據做進一步處理,已經支持數據聚合(Merge): 提升存儲效率。
應用場景
MaxCompute流式數據通道服務應用場景如下。
場景 | 說明 | 特點 |
大量事件日志實時寫入MaxCompute | 日志采集數據直接寫入MaxCompute進行批量處理。 | 無需通過中間存儲服務做中轉,節約成本。 |
流式計算結果實時寫入MaxCompute | 流式服務寫入MaxCompute解除并發數及 | 解決高并發搶鎖導致流式服務不可用,避免 |
流式存儲服務(DataHub、Kafka)實時同步MaxCompute | 輕量消息隊列實時同步MaxCompute解除并發數及 | 解決輕量消息隊列實時同步到MaxCompute的問題,支持高并發、大批量同步。 |
使用限制
MaxCompute流式數據通道服務的使用限制如下:
加鎖寫入的表或分區:在向MaxCompute流式寫入數據期間,MaxCompute流式數據通道服務會對寫入的表或分區進行加鎖。即流式寫入數據期間會屏蔽所有涉及數據修改的DML操作,例如
insert into|insert overwrite
。流式寫入結束后,MaxCompute會對表或分區進行解鎖,之后可以執行所有操作。如果寫入的表Schema有修改,則不能支持流式寫入。
熱數據存儲量會出現增長情況:在開啟異步處理的場景下(Merge或Zorder),MaxCompute流式數據通道服務會對最近一小時寫入的數據保存兩份,一份為原始數據,一份為異步聚合后的數據,數據的存儲量會有一定程度的冗余。冗余數據的保存周期默認是1小時。