您好,登錄后才能下訂單哦!
本篇內容主要講解“什么是Parquet列存儲模式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“什么是Parquet列存儲模式”吧!
Apache Parquet 是一種能夠有效存儲嵌套數據的列存儲格式。(列式存儲格式在文件大小和查詢性能上表現優秀) Parquet 的突出貢獻在于能夠以真正的列式存儲格式來保存具有深度嵌套結構的數據。 參考博客-簡書
原子類型
類型 | 描述 |
---|---|
boolean | 二進制值 |
int32 | 32位有符號整數 |
int64 | 64位有符號整數 |
int96 | 96位有符號整數 |
float | (32位)IEEE754單精度浮點數 |
double | (64位)IEEE754單精度浮點數 |
binary | 8位無符號字節序列 |
fixed_len_byte_array | 固定數量的8位無符號字節 |
一個簡單的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> 任意精度的有符號小數,可用于注解<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> 不帶時間的日期值,可用于注解int32.<br/> 用Unix元年(1970年1月1日)以來的天<br/>數表示 </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> 一組無序的鍵-值對,可用于注解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文件由一個文件頭,一個或多個緊隨其后的文件塊,以及一個用于結尾的文件尾構成。文件頭中僅包含一個稱為PAR1的4個字節數字,它用來識別整個Parquet文件格式。文件的所有元數據都被保存在文件尾中。
在設置文件塊的大小時需要折中考慮掃描率與內存的使用。較大的文件塊包含較多的行,因此掃描效率更高。同時也可以提高順序I/O操作的效率(因為在設置列塊時的額外開銷比較少)。但是,每個文件塊在讀/寫操作時都需要緩存在內存中,這個限制使得文件塊不能太大。默認的文件塊為128MB.
到此,相信大家對“什么是Parquet列存儲模式”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。