Q:invalid cluster id: xxxx
A:這個(gè)錯(cuò)誤可能會(huì)在show backends 或 show frontends 命令的結(jié)果中出現(xiàn)疆柔。通常出現(xiàn)在某個(gè)FE或BE節(jié)點(diǎn)的錯(cuò)誤信息列中。這個(gè)錯(cuò)誤的含義是套媚,Master FE向這個(gè)節(jié)點(diǎn)發(fā)送心跳信息后肠缔,該節(jié)點(diǎn)發(fā)現(xiàn)心跳信息中攜帶的 cluster id和本地存儲(chǔ)的 cluster id不同神僵,所以拒絕回應(yīng)心跳囤躁。
Doris的 Master FE 節(jié)點(diǎn)會(huì)主動(dòng)發(fā)送心跳給各個(gè)FE或BE節(jié)點(diǎn)德崭,并且在心跳信息中會(huì)攜帶一個(gè)cluster_id常潮。cluster_id是在一個(gè)集群初始化時(shí)弟胀,由Master FE生成的唯一集群標(biāo)識(shí)。當(dāng)FE或BE第一次收到心跳信息后喊式,則會(huì)將cluster_id以文件的形式保存在本地孵户。FE的該文件在元數(shù)據(jù)目錄的image/目錄下,BE則在所有數(shù)據(jù)目錄下都有一個(gè)cluster_id文件岔留。之后夏哭,每次節(jié)點(diǎn)收到心跳后,都會(huì)用本地cluster_id的內(nèi)容和心跳中的內(nèi)容作比對(duì)献联,如果不一致竖配,則拒絕響應(yīng)心跳。
該機(jī)制是一個(gè)節(jié)點(diǎn)認(rèn)證機(jī)制里逆,以防止接收到集群外的節(jié)點(diǎn)發(fā)送來的錯(cuò)誤的心跳信息进胯。
如果需要恢復(fù)這個(gè)錯(cuò)誤。首先要先確認(rèn)所有節(jié)點(diǎn)是否都是正確的集群中的節(jié)點(diǎn)原押。之后胁镐,對(duì)于FE節(jié)點(diǎn),可以嘗試修改元數(shù)據(jù)目錄下的 image/VERSION 文件中的 cluster_id 值后重啟FE。對(duì)于BE節(jié)點(diǎn)盯漂,則可以刪除所有數(shù)據(jù)目錄下的 cluster_id 文件后重啟 BE颇玷。
Q:Doris 是否支持修改列名?
A:不支持修改列名就缆。
Doris支持修改數(shù)據(jù)庫名帖渠、表名、分區(qū)名违崇、物化視圖(Rollup)名稱阿弃,以及列的類型、注釋羞延、默認(rèn)值等等渣淳。但遺憾的是,目前不支持修改列名伴箩。
因?yàn)橐恍v史原因入愧,目前列名稱是直接寫入到數(shù)據(jù)文件中的。Doris在查詢時(shí)嗤谚,也是通過類名查找到對(duì)應(yīng)的列的棺蛛。所以修改列名不僅是簡單的元數(shù)據(jù)修改,還會(huì)涉及到數(shù)據(jù)的重寫巩步,是一個(gè)非常重的操作旁赊。
我們不排除后續(xù)通過一些兼容手段來支持輕量化的列名修改操作。
Q:Unique Key模型的表是否支持創(chuàng)建物化視圖椅野?
A:
不支持终畅。Unique Key模型的表是一個(gè)對(duì)業(yè)務(wù)比較友好的表,因?yàn)槠涮赜械陌凑罩麈I去重的功能竟闪,能夠很方便的同步數(shù)據(jù)頻繁變更的業(yè)務(wù)數(shù)據(jù)庫离福。因此,很多用戶在將數(shù)據(jù)接入到Doris時(shí)炼蛤,會(huì)首先考慮使用Unique Key模型妖爷。
但遺憾的是,Unique Key模型的表是無法建立物化視圖的理朋。原因在于絮识,物化視圖的本質(zhì),是通過預(yù)計(jì)算來將數(shù)據(jù)“預(yù)先算好”嗽上,這樣在查詢時(shí)直接返回已經(jīng)計(jì)算好的數(shù)據(jù)笋除,來加速查詢。在物化視圖中炸裆,“預(yù)計(jì)算”的數(shù)據(jù)通常是一些聚合指標(biāo)垃它,比如求和、求count。這時(shí)国拇,如果數(shù)據(jù)發(fā)生變更洛史,如udpate或delete,因?yàn)轭A(yù)計(jì)算的數(shù)據(jù)已經(jīng)丟失了明細(xì)信息酱吝,因此無法同步的進(jìn)行更新也殖。比如一個(gè)求和值5,可能是 1+4务热,也可能是2+3忆嗜。因?yàn)槊骷?xì)信息的丟失,我們無法區(qū)分這個(gè)求和值是如何計(jì)算出來的崎岂,因此也就無法滿足更新的需求捆毫。