溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是Parquet列存儲(chǔ)模式

發(fā)布時(shí)間:2021-06-23 10:30:25 來(lái)源:億速云 閱讀:187 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“什么是Parquet列存儲(chǔ)模式”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“什么是Parquet列存儲(chǔ)模式”吧!

簡(jiǎn)介

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ū)

數(shù)據(jù)模型
  • 原子類型

類型描述
boolean二進(jìn)制值
int3232位有符號(hào)整數(shù)
int6464位有符號(hào)整數(shù)
int9696位有符號(hào)整數(shù)
float(32位)IEEE754單精度浮點(diǎn)數(shù)
double(64位)IEEE754單精度浮點(diǎn)數(shù)
binary8位無(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/> &nbsp;&nbsp;&nbsp;required binary a (UTF-8);<br/> } </td> </tr> <tr> <td>ENUM</td> <td>命名值的集合,可用于binary</td> <td> message m { <br/> &nbsp;&nbsp;&nbsp;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/> &nbsp;&nbsp;&nbsp;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/> &nbsp;&nbsp;&nbsp;required int32 a (DATE);<br/> } </td> </tr> <tr> <td>LIST</td> <td>一組有序的值,可用于注解group</td> <td> message m { <br/> &nbsp;&nbsp;&nbsp;required group a (LIST){</br> &nbsp;&nbsp;&nbsp;required group list{<br/> &nbsp;&nbsp;&nbsp;required int32 element;</br> } } } </td> </tr> <tr> <td>MAP</td> <td> 一組無(wú)序的鍵-值對(duì),可用于注解group </td> <td> message m { <br/> &nbsp;&nbsp;&nbsp;required group a (MAP){</br> &nbsp;&nbsp;&nbsp;required group key_value{<br/> &nbsp;&nbsp;&nbsp;required binary key (UTF-8);</br> &nbsp;&nbsp;&nbsp;optional int32 value;<br/> } } } </td> </tr> </table>

Parquet文件格式

Paruet文件由一個(gè)文件頭,一個(gè)或多個(gè)緊隨其后的文件塊,以及一個(gè)用于結(jié)尾的文件尾構(gòu)成。文件頭中僅包含一個(gè)稱為PAR1的4個(gè)字節(jié)數(shù)字,它用來(lái)識(shí)別整個(gè)Parquet文件格式。文件的所有元數(shù)據(jù)都被保存在文件尾中。

什么是Parquet列存儲(chǔ)模式

Parquet的配置

在設(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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI