https://parquet.apache.org/docs/concepts/
Motivation
์ฐ๋ฆฌ๋ Parquet๋ฅผ ๊ฐ๋ฐํ ์ด์ ๋ ์์ถ๋ ํจ์จ์ ์ธ columnar data ํํ์ ์ฅ์ ์ Hadoop ์ํ๊ณ์ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ธฐ ์ํด์์ ๋๋ค.
Parquet์ ๋ณต์กํ ์ค์ฒฉ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ์ฌ ๊ตฌ์ถ๋์์ผ๋ฉฐ, Dremel ๋ ผ๋ฌธ์์ ์ค๋ช ํ record shredding ๋ฐ assembly ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ด ์ค์ฒฉ๋ ๋ค์์คํ์ด์ค๋ฅผ ๋จ์ํ ํ๋ฉดํํ๋ ๊ฒ๋ณด๋ค ์ฐ์ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
Parquet์ ๋งค์ฐ ํจ์จ์ ์ธ ์์ถ ๋ฐ ์ธ์ฝ๋ฉ ์คํค๋ง๋ฅผ ์ง์ํ๊ธฐ ์ํด ๊ตฌ์ถ๋์์ต๋๋ค. ์ฌ๋ฌ ํ๋ก์ ํธ์์ ๋ฐ์ดํฐ์ ์ ํฉํ ์์ถ ๋ฐ ์ธ์ฝ๋ฉ ์คํค๋ง๋ฅผ ์ ์ฉํ๋ ๊ฒ์ ์ฑ๋ฅ ์ํฅ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. Parquet์ ์์ถ ์คํค๋ง๋ฅผ ์ด ๋จ์๋ก ์ง์ ํ ์ ์๋๋ก ํ๋ฉฐ, ๋ ๋ง์ ์ธ์ฝ๋ฉ์ด ๋ฐ๋ช ๋๊ณ ๊ตฌํ๋ ์ ์๋๋ก ๋ฏธ๋ ์งํฅ์ ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
Parquet์ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌ์ถ๋์์ต๋๋ค. Hadoop ์ํ๊ณ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ ์์ํฌ๋ก ํ๋ถํ๋ฉฐ, ์ฐ๋ฆฌ๋ ํน์ ํ๋ ์์ํฌ๋ฅผ ์ ํธํ์ง ์์ต๋๋ค. ํจ์จ์ ์ด๊ณ ์ ๊ตฌํ๋ columnar ์ ์ฅ์ ๊ธฐ๋ฐ์ ๋ณต์กํ๊ณ ์ค์ ํ๊ธฐ ์ด๋ ค์ด ์ข ์์ฑ์ ๋น์ฉ ์์ด ๋ชจ๋ ํ๋ ์์ํฌ์ ์ ์ฉํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
Concepts
์ฉ์ด ํด์ค
- Block (hdfs ๋ธ๋ก): ์ด๋ hdfs์ ๋ธ๋ก์ ์๋ฏธํ๋ฉฐ, ์ด ํ์ผ ํ์์ ์ค๋ช ํ๋ ๋ฐ์๋ ๋ณ๊ฒฝ๋์ง ์์ ์๋ฏธ๋ฅผ ๊ฐ์ต๋๋ค. ์ด ํ์ผ ํ์์ hdfs ์์์ ์ ์๋ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- File : ํ์ผ์๋ ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ํ์๋ ์์ต๋๋ค.
- Row group : ๋ฐ์ดํฐ๋ฅผ ๋ก์ฐ๋ก ๋ ผ๋ฆฌ์ ์ผ๋ก ์ํ์ผ๋ก ๋ถํ ํ ๊ฒ์ ๋๋ค. ๋ก์ฐ ๊ทธ๋ฃน์๋ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ์ด์ ๋ํ ์ปฌ๋ผ ์ฒญํฌ๊ฐ ์์ต๋๋ค. ๋ก์ฐ ๊ทธ๋ฃน์๋ ๋ณด์ฆ๋ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค.
- Column chunk : ํน์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ์ฒญํฌ์ ๋๋ค. ์ด๋ค์ ํน์ ๋ก์ฐ ๊ทธ๋ฃน์ ์ํ๋ฉฐ ํ์ผ์์ ์ฐ์์ ์ผ๋ก ๋ณด์ฅ๋ฉ๋๋ค.
- Page : ์ปฌ๋ผ ์ฒญํฌ๋ ํ์ด์ง๋ก ๋ถํ ๋ฉ๋๋ค. ํ์ด์ง๋ ๊ฐ๋ ์ ์ผ๋ก ์์ถ๊ณผ ์ธ์ฝ๋ฉ์ ๋จ์์ ๋๋ค. ์ปฌ๋ผ ์ฒญํฌ์๋ ์ฌ๋ฌ ํ์ด์ง ์ ํ์ด ์์ผ๋ฉฐ, ์ด๋ค์ ์ปฌ๋ผ ์ฒญํฌ ๋ด์์ ๊ต์ฐจ๋์ด ์์ต๋๋ค.
๊ณ์ธต์ ์ผ๋ก, ํ์ผ์ ํ๋ ์ด์์ ๋ก์ฐ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ก์ฐ ๊ทธ๋ฃน์ ๋ฐ์ดํฐ ์ธํธ์ ๊ฐ ์ปฌ๋ผ์ ์ ํํ ํ๋์ ์ปฌ๋ผ ์ฒญํฌ๋ฅผ ํฌํจํฉ๋๋ค. ์ปฌ๋ผ ์ฒญํฌ๋ ํ๋ ์ด์์ ํ์ด์ง๋ฅผ ํฌํจํฉ๋๋ค.
Benefits
- ์ ์ฒด ํ ๋ฐ์ดํฐ๋ฅผ load ํ์ง ์๊ณ ๋ ํน์ ์ด ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ํจ์จ์ ์ธ ์ด ๋จ์ ์์ถ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค, ๋ฐ์ดํฐ ๋งํธ ๋ฑ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผํ OLAP์์ ๋์ ํธํ์ฑ
'๐ข๏ธ Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL] NULLIF, NVL(COALESCE) ํจ์ (0) | 2023.08.19 |
---|---|
[SQL] Count ํจ์, Sequel vs SQL (0) | 2023.08.19 |
[์์ธ] Mysql database ์ ๋ ฌ (0) | 2023.07.31 |
[Mysql] python executemany ์ฌ์ฉ์ TypeError: not all arguments converted during string ... (0) | 2022.03.23 |
[Mysql] Python Sql query Format Error (0) | 2022.03.21 |