實(shí)時(shí)數(shù)據(jù)訂閱
云原生多模數(shù)據(jù)庫(kù) Lindorm支持實(shí)時(shí)數(shù)據(jù)訂閱功能,實(shí)時(shí)數(shù)據(jù)訂閱功能幫助您獲取Lindorm的實(shí)時(shí)增量數(shù)據(jù),您可以根據(jù)自身業(yè)務(wù)需求自由消費(fèi)增量數(shù)據(jù),搭建或?qū)崿F(xiàn)多種業(yè)務(wù)場(chǎng)景。
背景信息
云原生多模數(shù)據(jù)庫(kù) Lindorm數(shù)據(jù)訂閱功能支持任何一個(gè)表的每一條數(shù)據(jù)變更,您可以在客戶端查看數(shù)據(jù)變更記錄。當(dāng)您開(kāi)通某一張表的數(shù)據(jù)訂閱功能后,其變更數(shù)據(jù)的操作就會(huì)被存儲(chǔ)。每次對(duì)Lindorm表格的數(shù)據(jù)執(zhí)行增刪改操作時(shí),數(shù)據(jù)訂閱都會(huì)生成一個(gè)Stream Record鍵值對(duì),鍵值對(duì)的鍵是這一行數(shù)據(jù)的主鍵,值是此次操作的詳細(xì)信息(操作前的值,操作后的值,時(shí)間戳,操作類(lèi)型)。
開(kāi)通模式
開(kāi)通云原生多模數(shù)據(jù)庫(kù) Lindorm數(shù)據(jù)訂閱功能有兩種模式,Pull模式和Push模式。
Pull模式:您可以使用開(kāi)源的Kafka客戶端直接訂閱數(shù)據(jù),服務(wù)端會(huì)暫時(shí)保存數(shù)據(jù),您需要對(duì)保存的數(shù)據(jù)設(shè)置一個(gè)過(guò)期時(shí)間,如果超過(guò)這個(gè)時(shí)間數(shù)據(jù)會(huì)被刪除。具體操作請(qǐng)參見(jiàn)通過(guò)Pull模式創(chuàng)建數(shù)據(jù)訂閱通道。
Push模式:云原生多模數(shù)據(jù)庫(kù) Lindorm數(shù)據(jù)訂閱功能直接將數(shù)據(jù)推送到Kafka客戶端,服務(wù)端不會(huì)存儲(chǔ)數(shù)據(jù)。具體操作請(qǐng)參見(jiàn)通過(guò)Push模式創(chuàng)建數(shù)據(jù)訂閱。
使用限制
云原生多模數(shù)據(jù)庫(kù) Lindorm數(shù)據(jù)訂閱功能僅支持?jǐn)?shù)據(jù)處理語(yǔ)義為至少一次(At-least-once)語(yǔ)義,即同一條數(shù)據(jù)可能因?yàn)閮?nèi)部重試而被重復(fù)消費(fèi)。
云原生多模數(shù)據(jù)庫(kù) Lindorm數(shù)據(jù)訂閱功能中的增量消息以亂序形式存在,即消費(fèi)消息的順序不等同于寫(xiě)入Lindorm寬表的順序。
HBase表的數(shù)據(jù)訂閱功能要求LTS版本為3.7.0及以上。
說(shuō)明如果已開(kāi)通LTS,請(qǐng)?jiān)陂_(kāi)通數(shù)據(jù)訂閱功能前,先將LTS升級(jí)至最新版本。升級(jí)方式,請(qǐng)參見(jiàn)升級(jí)小版本。
如果未開(kāi)通LTS,可以在開(kāi)通數(shù)據(jù)訂閱功能時(shí)購(gòu)買(mǎi),購(gòu)買(mǎi)的LTS默認(rèn)為當(dāng)前最新版本。開(kāi)通方式,請(qǐng)參見(jiàn)開(kāi)通數(shù)據(jù)訂閱。
非SSD實(shí)例不建議開(kāi)啟數(shù)據(jù)訂閱功能,由于數(shù)據(jù)訂閱功能中導(dǎo)出整行數(shù)據(jù)的最新值或更新前的值時(shí)為了獲取更新前的值會(huì)對(duì)Lindorm實(shí)例增加讀操作,每一次寫(xiě)入操作都會(huì)增加一次讀操作。如果您不需要OldImage/NewImage功能,僅需要變更Delta數(shù)據(jù),請(qǐng)提交工單聯(lián)系我們。
通過(guò)Pull模式創(chuàng)建數(shù)據(jù)訂閱通道的訂閱數(shù)據(jù)默認(rèn)保存7天,與Lindorm共享底層的LDFS存儲(chǔ)空間,因此您在開(kāi)啟數(shù)據(jù)訂閱功能前需要先確認(rèn)有充足的存儲(chǔ)空間。