您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“什么是Parquet列存儲(chǔ)模式”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“什么是Parquet列存儲(chǔ)模式”吧!
Apache Parquet 是一種能夠有效存儲(chǔ)嵌套數(shù)據(jù)的列存儲(chǔ)格式。(列式存儲(chǔ)格式在文件大小和查詢性能上表現(xiàn)優(yōu)秀) Parquet 的突出貢獻(xiàn)在于能夠以真正的列式存儲(chǔ)格式來(lái)保存具有深度嵌套結(jié)構(gòu)的數(shù)據(jù)。 參考博客-簡(jiǎn)書(shū)
原子類型
類型 | 描述 |
---|---|
boolean | 二進(jìn)制值 |
int32 | 32位有符號(hào)整數(shù) |
int64 | 64位有符號(hào)整數(shù) |
int96 | 96位有符號(hào)整數(shù) |
float | (32位)IEEE754單精度浮點(diǎn)數(shù) |
double | (64位)IEEE754單精度浮點(diǎn)數(shù) |
binary | 8位無(wú)符號(hào)字節(jié)序列 |
fixed_len_byte_array | 固定數(shù)量的8位無(wú)符號(hào)字節(jié) |
一個(gè)簡(jiǎn)單的Parquet模式:
message WeatherRecord{ required int32 year; required int32 temperature; required binary stationId (UTF-8); }
parquet 的原子類型不包括字符串類型。required binary stationId (UTF-8); 表示字符串
邏輯類型
<table> <tr> <th>邏輯類型注解</th> <th>描述</th> <th>模式示例</th> </tr> <tr> <td>UTF-8</td> <td> 由UTF-8字符組成的字符串,可用于<br/> 注解binary </td> <td> message m { <br/> required binary a (UTF-8);<br/> } </td> </tr> <tr> <td>ENUM</td> <td>命名值的集合,可用于binary</td> <td> message m { <br/> required binary a (ENUM);<br/> } </td> </tr> <tr> <td>DECIMAL<br/> (precision,scale)</td> <td> 任意精度的有符號(hào)小數(shù),可用于注解<br/> int32、int64、binary或fixed_len_byte_array </td> <td> message m { <br/> required int32 a (DECIMAL(5,2));<br/> } </td> </tr> <tr> <td>DATE</td> <td> 不帶時(shí)間的日期值,可用于注解int32.<br/> 用Unix元年(1970年1月1日)以來(lái)的天<br/>數(shù)表示 </td> <td> message m { <br/> required int32 a (DATE);<br/> } </td> </tr> <tr> <td>LIST</td> <td>一組有序的值,可用于注解group</td> <td> message m { <br/> required group a (LIST){</br> required group list{<br/> required int32 element;</br> } } } </td> </tr> <tr> <td>MAP</td> <td> 一組無(wú)序的鍵-值對(duì),可用于注解group </td> <td> message m { <br/> required group a (MAP){</br> required group key_value{<br/> required binary key (UTF-8);</br> optional int32 value;<br/> } } } </td> </tr> </table>
Paruet文件由一個(gè)文件頭,一個(gè)或多個(gè)緊隨其后的文件塊,以及一個(gè)用于結(jié)尾的文件尾構(gòu)成。文件頭中僅包含一個(gè)稱為PAR1的4個(gè)字節(jié)數(shù)字,它用來(lái)識(shí)別整個(gè)Parquet文件格式。文件的所有元數(shù)據(jù)都被保存在文件尾中。
在設(shè)置文件塊的大小時(shí)需要折中考慮掃描率與內(nèi)存的使用。較大的文件塊包含較多的行,因此掃描效率更高。同時(shí)也可以提高順序I/O操作的效率(因?yàn)樵谠O(shè)置列塊時(shí)的額外開(kāi)銷比較少)。但是,每個(gè)文件塊在讀/寫(xiě)操作時(shí)都需要緩存在內(nèi)存中,這個(gè)限制使得文件塊不能太大。默認(rèn)的文件塊為128MB.
到此,相信大家對(duì)“什么是Parquet列存儲(chǔ)模式”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。