
๋งต๋ฆฌ๋์ค์ ์คํํฌ๊ฐ ์์ฃผ ์ ์ฐํ๊ณ ๊ฐ๋ ฅํ ํ๋ ์์ํฌ์ด๊ธดํ์ง๋ง, ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ๋ฐ/๋ฐฐํฌ/์ด์์ ์ต์ํด์ผํ๋ค. ํ์ง๋ง ๋๋ถ๋ถ์ ๋ถ์ ๊ธฐ๋ฒ์ SQL์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ณต์กํ ์ ์ฐจ์์ด ๋ถ์ ์์ ์ด ์ ํธ๋ ๋๊ฐ ์๋ค.
๊ทธ๋์ ํ๋ก์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ SQL๊ณผ ๋น์ทํ ์ธํฐํ์ด์ค๋ก ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ๋ฅผ ๋ค์ด ์๊ฒจ๋ฌ๋ค. ์ด๋ค์ ๋ด๋ถ์ ์ผ๋ก ๋งต๋ฆฌ๋์ค๋ ์คํํฌ๋ฅผ ๊ทผ๊ฐ์ผ๋กํ์ง๋ง, ๋ ์์ ์ธ ์ฐ์ฐ ์์ง์ ๊ฐ์ถ ๊ฒ๋ ์๋ค. ๊ฐ ์์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ฑฐ๋ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ค์ ์ ๋๋ค.
Hive
ํ๋ก์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ง ๊ธฐ์ ์ด๋ค. HDFS์ ์ ์ฅ๋ ์ ํ ๋ฐ์ดํฐ๋ฅผ ํ์ด๋ธQL๋ก ์ฟผ๋ฆฌํ ์ ์๊ฒ ๋ง๋ ์ต์ด์ ๊ธฐ์ ์ด๋ค.
์ด๋ ETL, ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์คํ๋ผ์ธ ๋ฐฐ์น ์์ , ๋ณด๊ณ ์ ๋ฐ์ดํฐ ์์ฑ ๋ฑ์ ์ ํฉํ๋ค.

1. HiveQL ๋ฌธ์ Driver๊ฐ ๋ฐ๊ณ , ๋ฉํ์คํ ์ด์ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์ ํฉํ ํํ๋ก ์ปดํ์ผ
2. ์ปดํ์ผ๋ SQL์ ์คํ ์์ง์ผ๋ก ์คํ
3. ๋ฆฌ์์ค ๋งค๋์ ๊ฐ ํด๋ฌ์คํฐ ์์์ ์ ์ ํ ํ์ฉํ์ฌ ์คํ
4. ์์ฒ ๋ฐ์ดํฐ๋ HDFS๋ฅผ ํ์ฉ
5. ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณํ

Hive Services
ํ์ด๋ธ๋ ์ฌ์ฉ์ ์ฟผ๋ฆฌ๋ฅผ ํ์ฑํ๊ณ , ์ต์ ํํด์ ํ๋ ์ด์์ ์ฐ์ ๋ฐฐ์น ์ฐ์ฐ์ผ๋ก ์ปดํ์ผํ๋ฉฐ ์ด๋ฅผ ํด๋ฌ์คํฐ์์ ์คํํ๋ค.
- HiveServer2: ํด๋ผ์ด์ธํธ์์ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋ ์ฟผ๋ฆฌ์๋ฒ, ๋ค์ค ๋์ ์ ์์ ์ง์ํ๋ฉฐ ์ฃผํคํผ๋ฅผ ํตํด ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ค.
- Hive Driver: HiveQL์ ์ํ๋ฅผ ํ์ธํ๊ณ , ์ฟผ๋ฆฌ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ์ธ์ ์ ์์ฑํ๋ค.
- Metastore: HiveQL์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ฉํ์คํ ์ด ์๋ฒ
- Hive Compiler: ๋ฉํ์คํ ์ด์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์๋ก ๋ค๋ฅธ ์ฟผ๋ฆฌ ๋ธ๋ก๊ณผ ์ฟผ๋ฆฌ ํํ์์ ๋ํด ์๋ฏธ ๋ถ์ ๋ฐ ์ ํ ๊ฒ์ฌ๋ฅผ ์ํํ๊ณ , ์คํ ๊ณํ์ ์์ฑํ๋ค.
- Optimizer: ์คํ ๊ณํ์ ์์ ๋ค์ ๋ถ์ฐํ์ฌ ์ฐ์ฐ์ ํจ์จ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํจ๋ค.
Processing & Resource Management
๋ค์์ ์ฐ์ ๋ฐฐ์น ์ฐ์ฐ ์์ ์ ๋ฐ์ ๋ค์์ ์์ปค๋ฅผ ํตํด ์ฐ์ฐ ์์ ์ ์คํํ๋ค. ์ด๋ฐ ์ฐ์ฐ์ ๋ณดํต ๋งต๋ฆฌ๋์ค ์์ ์ผ๋ก ์คํ๋์ง๋ง, Apache Tez๋ Spark๋ฅผ ์คํ ์์ง์ผ๋ก ์ฌ์ฉํ ์๋ ์๋ค.
Impala
๋๊ท๋ชจ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์์ง์ผ๋ก์, ํ๋ก์ด๋ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง์ ์ ์ฅ๋ ๋์ฉ๋ ๋ฐ์ดํฐ์ ์ ๋ํ ๊ณ ์, ๋ํํ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋์๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ถ์ ์ ๋ฌด์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ณ , ์ฝ๊ฒ ์ป์ ์ ์๋ค.
์๋์ ํจ์จ์ ์ด์ ์ ๋ง์ถ๋ฏ๋ก ์์ฒด ๋ถ์ฐ Query Engine์ ์ฌ์ฉํ๋ค. Impala์์๋ ๋ฐ์ดํฐ๊ฐ ๋ถ์ฐ ์ฐ์ฐ์ ํธ๋ฆฌ๋ฅผ ์คํธ๋ฆผ์ผ๋ก ํต๊ณผํ๋ฉด์ ์ฒ๋ฆฌ๋๋ค.
ํ ์คํธ ํ์ผ, HBase ํ ์ด๋ธ, Avro ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ง์ํ๋ค.



ํ๋ก์ธ์ค
- ํด๋ผ์ด์ธํธ์์ ์ฟผ๋ฆฌ๋ฅผ ์ ์กํ ์์ปค ํ๋ก์ธ์ค(Impala ๋ฐ๋ชฌ)๋ฅผ ์ ํํ๋ค. ํด๋น Demon์ ์ฝ๋๋ค์ดํฐ ๋ ธ๋๋ผ๊ณ ๋ช ๋ช ํ๋ค. ์ด ๋ ธ๋๋ ํ๋๊ทธ๋จผํธ(๋ถ์ฐ ์ฟผ๋ฆฌ ๊ณํ์ ์ผ๋ถ)๋ฅผ ๋ค๋ฅธ ๋ฐ๋ชฌ์๊ฒ ์ ์ก
- ์ ์ก๋ฐ์ ๋๋จธ์ง ๋ฐ๋ชฌ์ ํ๋๊ทธ๋จผํธ์ ๋ค์ด์๋ ์ฐ์ฐ์์ ๋ฐ๋ผ ์ฐ์ฐ์ ์ํํ๋ค. ๊ฐ ๋ฐ๋ชฌ์ ๋ก์ปฌ์ ์๋ ๋ฐ์ดํฐ์ ๋ํด ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ค. ํ์ํ๋ค๋ฉด ๋ฐ๋ชฌ๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์๋ก ๊ตํํ๋ค. (๋ถ์ฐ ์คํ)
- ์์ ์ ๋ง์น๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋๋ค์ดํฐ๋ก ์คํธ๋ฆฌ๋ฐํ๊ณ , ์ฝ๋๋ค์ดํฐ๋ ์ต์ข ์ง๊ณ์ ์ฐ์ฐ์ ์ํํ ํ ํด๋ผ์ด์ธํธ์ ์คํฐ๋ฆฌ๋ฐํ๋ค.
Hive vs Impala
Hive: Java๋ก ๊ตฌํ, Hive SQL์ ์ฌ์ฉ, ๋ฐฐ์น์ฑ ์์ , ETL ์ ํ์ ๋๋ ๋ฐ์ดํฐ์ ๋ํ ์ฅ๊ธฐ์ /์์ ์ ์ธ ์ผ๊ด ์ฒ๋ฆฌ ์์ ์ ์ ํฉ
Impala: C++๋ก ๊ตฌํ, ํ์ค SQL์ ์ฌ์ฉ, ์ค์๊ฐ์ฑ ์์ , ๋ฐ์ดํฐ ๋ถ์์ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ป๋ ์์ ์ ์ ํฉ
Presto
Presto๋ ๋ถ์ฐ SQL ์ฟผ๋ฆฌ ์์ง์ผ๋ก Impala์ ๋น์ทํ ํน์ง๋ค์ ๊ฐ์ง๊ณ ์๋ค. ์ฆ, ํ์ค SQL์ ์ง์ํ๋ฉฐ ๋ฐ์ดํฐ ๋ถ์๊ฐ์ ๊ฐ๋ฐ์๊ฐ ๋งค์ฐ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ๋ฐ๋์๋ค.
ํํ๋ฐ์ดํธ ๊ธ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ Presto๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํ๋ค. ๋ํ ETL์์ด ๋ฐ๋ก ์คํ ๋ฆฌ์ง์ ์ ๊ทผํ ์ ์๋ ์ฅ์ ๋ ์๋ค. ๋ค๋ง HDFS์ ๋ํ ์ง์์ Impala์ ๋นํด ๋ถ์กฑํ๋ค.
Hive, Cassandra, RDB, AWS S3 ๋ฑ ๋ค์ํ ์์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฌ ์ ์๋ค.

ํ๋ก์ธ์ค
- Parser: ํด๋ผ์ด์ธํธ์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ฌ๋ฐ๊ณ , Metadata API์ ์ฐ๊ฒฐํ์ฌ ๋ฉํ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ด
- Planner: ์ ๋ฌ๋ฐ์ ์ฟผ๋ฆฌ๊ฐ ์๋ํ๋๋ก ์ฟผ๋ฆฌ ํ๋์ ์์ฑํ๋ค.
- Scheduler: Worker๊ฐ ์ผ์ ์ํํ๊ฒ ๋ ์์ ์ ์ ๋ฌํ๋ค.
- Worker: Data stream API๋ฅผ ๊ฐ์ ธ์ ๋ค์์ ๋ฐ์ดํฐ ์์ค์์ ์ฟผ๋ฆฌ๊ฐ ์๋ํ๋๋ก ์์ ์ ์ํํ๋ค. ์ด ์์ ์ Memory ์์์ ์ํ๋๋ฉฐ, ์คํ ๋ฆฌ์ง์ ์ ์ฅ๋์ง ์๋๋ค. ์ด๋ก ์ธํด ์ปดํจํ ๊ณผ ์คํ ๋ฆฌ์ง๊ฐ ๋ณ๋๋ก ์ํ๋๋ค.
Top 5 reasons Presto is the foundation of the data analytics
์ต๊ทผ Presto๋ ๋ฐ์ดํฐ ๋ถ์ผ์์ ํซํ ์ ์ง๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์๋ ์๋ฃ์์๋ ๋ค์๊ณผ ๊ฐ์ด 5๊ฐ์ง ์ด์ ๋ฅผ ๋ค๊ณ ์๊ณ , ์ด๋ฅผ ๊ณต์ ํ๊ณ ์ ํ๋ค.
- Easier integration with ecosystem
๊ธฐ์กด์ ์งํ ์ค์ธ ๋ฐ์ดํฐ ์์คํ ์ ์์ ํ ํ์ ์์ด ๊ธฐ์กด์ ์ํ๊ณ์ ์ํํ๊ฒ ํตํฉ๋๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋งค์ฐ ์ ํฉํ๋ค. ๊ฒ๋ค๊ฐ ์ถ๊ฐ ์ปดํจํ ๊ณ์ธต์ ํตํด ๋ ๋น ๋ฅธ ๋ถ์์ด ๊ฐ๋ฅํด์ก๋ค. - Unified SQL interface
Presto๋ ํ์ค SQL์ ์ง์ํ๊ณ , ๋ง์ ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ค์ด SQL์ ์ต์ํ๋ค. - Performance
Impala์ ๊ฐ์ BI ์ฟผ๋ฆฌ๋ ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ์ง ์๊ณ , Hive์ Spark๊ฐ ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ๋ BI ์ฟผ๋ฆฌ์๋ ์ ํฉํ์ง ์๋ค.
Presto๋ ์ฝ๋ ์์ฑ, ์ธ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ ๋ฐ ํ์ดํ๋ผ์ธ ์คํ๊ณผ ๊ฐ์ ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ๊ณ ์ฑ๋ฅ์ ์ํด ๊ตฌ์ถ๋์์ผ๋ฉฐ ๋์ฉ๋ ์ฒ๋ฆฌ์ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋ค. - Query Federation
๋ชจ๋ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ถ์ํํ๋ ๋จ์ผ ํตํฉ SQL ์ธ์ด๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ๊ธฐ๋ณธ ์์คํ ์ ์ฐ๊ฒฐ ๋ฐ SQL ์ธ์ด๋ฅผ ์ดํดํ ํ์๊ฐ ์๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด๋ค. - Design suitable for cloud
์ปดํจํ ๊ณผ ์คํ ๋ฆฌ์ง๊ฐ ๋ณ๋๋ก ์ํ๋๋ ์ค๊ณ๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ด์๋๊ธฐ ๋งค์ฐ ํธ๋ฆฌํ๋ค. Presto ํด๋ฌ์คํฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์์ค ์์ด ์๋ ํ์ฅ๋ ์ ์๋ค.
์คํ ๋ฆฌ์ง์ ์ปดํจํ ์ด ๋ถ๋ฆฌ๋์ง ์๋๋ค๋ฉด ๋ธ๋ ํ๋ผ์ด๋ฐ์ด์ ๊ฐ์ด ํธ๋ํฝ์ด ๋ง์ ๊ธฐ๊ฐ์ ์ปดํจํ ์ ํ์ฅ์ด ํ์ํ ๋ ์คํ ๋ฆฌ์ง๊ฐ ์ถ๊ฐ๋ก ํ์ํ๊ฑฐ๋ ์คํ ๋ฆฌ์ง์ ํ์ฅ์ด ํ์ํ ๋ ์ปดํจํ ์ ํ์ง์ด ํ์ํ ์ ์๋ค. ์ด๋ฌํ ๋ถํ์ํ ์ง์ถ์ ์ค์ผ ์ ์๋ค
https://ahana.io/blog/top-5-reasons-presto-is-the-foundation-of-the-data-analytics-stack/
Top 5 reasons Presto is the foundation of the data analytics stack and why you should use Presto
Data platform teams are increasingly using the federated SQL query engine PrestoDB to run such analytics for a variety of use cases across a wide range of data lakes and databases in-place, without the need to move data. Here's a look at some important cha
ahana.io
ํด๋น ๋ด์ฉ์ ๋ค์ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.
์ํฐํ๋ผ์ด์ฆ ๋ฐ์ดํฐ ํ๋ซํผ ๊ตฌ์ถ
์ํฐํ๋ผ์ด์ฆ ๋ฐ์ดํฐ ํ๋ซํผ ๊ตฌ์ถ - YES24
์์ฒด ์์คํ ๋ถํฐ ํด๋ผ์ฐ๋๊น์ง ์ํฐํ๋ผ์ด์ฆ ํ๋ก๊ณผ ๋น ๋ฐ์ดํฐ ํ๋ซํผ ์ด์, ๊ตฌ์ถ, ์ค๊ณ์ ๋ชจ๋ ๊ฒ๋น ๋ฐ์ดํฐ ๊ธฐ์ ์ ๋ํ ์ ๋ณด๋ ๋์ณ๋์ง๋ง ์ด ๋ชจ๋ ๊ธฐ์ ์ ๋งค๋๋ฝ๊ฒ ์ฐ๊ฒฐํด์ ์๋ฒฝํ ์ํฐํ๋ผ
www.yes24.com
'Engineering ๐ป > BigData' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Hadoop] Spark ๋์ ๋จ๊ณ (0) | 2022.01.18 |
|---|---|
| [Hadoop] ์ค์ผ์คํธ๋ ์ด์ (feat. Oozie, Airflow) (0) | 2022.01.13 |
| [Hadoop] ์ฐ์ฐ ํ๋ ์์ํฌ (feat. MapReduce, Spark, Flink) (0) | 2022.01.11 |
| [Hadoop] ํต์ฌ ์ปดํฌ๋ํธ (feat. HDFS, YARN, ZooKeeper, Hive Metastore) (0) | 2022.01.11 |
| [DW] ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๊ธฐ์ด (0) | 2022.01.10 |