關(guān)于如何消費(fèi)kafka數(shù)據(jù),請(qǐng)參看Vertica的這些事(十四)——Vertica實(shí)時(shí)消費(fèi)kafka實(shí)現(xiàn)
最近有小伙伴提出了消費(fèi)kafka的一些疑問(wèn),答疑如下:
1、 Vertica消費(fèi)kafka機(jī)制是什么?
Vertica通過(guò)scheduler來(lái)按定義的頻度調(diào)度執(zhí)行copy table from kafkasource(...)來(lái)從kafka的主題加載數(shù)據(jù)。
2、 Vertica消費(fèi)kafka的偏移量是怎么維護(hù)的?
Vertica的scheduler會(huì)把每個(gè)主題消費(fèi)到的偏移量存儲(chǔ)到表stream_microbatch_history中(schema由scheduler的參數(shù)指定和創(chuàng)建),沒(méi)加載一批就會(huì)scheduler就會(huì)給它加上,下一次加載的時(shí)候會(huì)作為參數(shù)傳遞給kafkasource。
3、 Vertica消費(fèi)kafka是多個(gè)節(jié)點(diǎn)并發(fā)執(zhí)行?資源怎么控制?
Vertica是多個(gè)節(jié)點(diǎn)并行讀取kafka主題多個(gè)patition的消息的。資源池的EXECUTIONPARALLELISM參數(shù)會(huì)決定節(jié)點(diǎn)內(nèi)解析消息的并行線(xiàn)程數(shù),內(nèi)存等資源也由資源池控制。
4、 Vertica消費(fèi)kafka應(yīng)該怎么監(jiān)控?
MC本身具備kafka消息加載的監(jiān)控界面,表stream_microbatch_history中有詳細(xì)的加載信息。
5、 出現(xiàn)節(jié)點(diǎn)宕機(jī)對(duì)kafka消息讀取有什么影響?
Kafka讀過(guò)的消息偏移量和業(yè)務(wù)數(shù)據(jù)都存放到Vertica中,就算Vertica集群數(shù)據(jù)不完全恢復(fù),他們也會(huì)保證是一致的,恢復(fù)后會(huì)自動(dòng)從數(shù)據(jù)庫(kù)中記錄的偏移量開(kāi)始繼續(xù)加載,不會(huì)出現(xiàn)數(shù)據(jù)對(duì)視。