1.關(guān)系型數(shù)據(jù)庫中的表結(jié)構(gòu)
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫中盈咳,表結(jié)構(gòu)如下圖所示:
為了保持?jǐn)?shù)據(jù)的一致性耿眉,每一行記錄都具有相同的列,而且每一列都要有值鱼响,哪怕是NULL值鸣剪,也要填充完整。
2.Pig中的”表”Bag結(jié)構(gòu)
Pig中的”表”不像關(guān)系型數(shù)據(jù)庫中的表那樣是方方正正的表格形式热押,而是一種叫做Bag的包結(jié)構(gòu)西傀,如下圖所示:
關(guān)于bag有以下幾點(diǎn)說明:
- Pig中的“表”叫做bag,bag中的”行”叫做tuple桶癣,tuple中的”列”叫做field拥褂。
- Pig的表bag不要求每一行tuple都具有相同的列field。
- Pig的表bag中的”行”tuple可以嵌套”表”bag牙寞。
3.Pig中的”關(guān)系”結(jié)構(gòu)
雖然說Pig中的包bag不要求每一行tuple都擁有相同的field饺鹃,但是很多時(shí)候我們需要使用相同列的表結(jié)構(gòu),如下圖所示:
這時(shí)候间雀,我們就可以人為的將每一行設(shè)置成相同的列悔详,如此就形成一個(gè)”關(guān)系”。
可以看到惹挟,”關(guān)系”結(jié)構(gòu)更像RDBMS中的表結(jié)構(gòu)茄螃。