hive_format
Last updated
Last updated
νμ΄λΈλ λ κ°μ μ°¨μ, μ¦ λ‘μ° ν¬λ§·κ³Ό νμΌ ν¬λ§·μΌλ‘ ν μ΄λΈ μ μ₯μλ₯Ό κ΄λ¦¬ν©λλ€.
λ‘μ° ν¬λ§·μ νκ³Ό νΉμ νμ νλκ° μ μ₯λ λ°©μμ μ§μν©λλ€. μ§λ ¬μ-μμ§λ ¬μ(Serializer-Deserializer)λ₯Ό νΌν©ν νμ΄λΈ μ λ¬Έ μ©μ΄μΈ SerDeλ‘ μ μλ©λλ€.
ν μ΄λΈμ μ§μνλ κ²½μ°μ κ°μ΄ μμ§λ ¬νλ₯Ό μνν λ SerDeλ νμΌμ μ μ₯λ λ°μ΄νΈμ λ°μ΄ν°νμ νμ΄λΈμμ λ΄λΆμ μΌλ‘ μ¬μ©λλ κ°μ²΄λ‘ μμ§λ ¬ννμ¬ κ·Έ λ°μ΄ν°μ λν μ°μ°μ μνν©λλ€.
νμΌ ν¬λ§·
Text File
ν μ€νΈ νμΌ ν¬λ§·μ νΌκ·Έλ grep,sed,awkμ κ°μ μ λμ€ ν μ€νΈ λꡬ λ±κ³Ό λ°μ΄ν°λ₯Ό 곡μ νκΈ° νΈλ¦¬ν©λλ€. νμΌμ λ΄μ©μ μ§μ λ³΄κ³ μμ νκΈ° μ¬μλλ€.
ν μ€νΈ ν¬λ§·μ λ°μ΄λ리 ν¬λ§·κ³Ό λΉκ΅νλ©΄ μ μ₯ 곡κ°μ ν¨κ³Όμ μΌλ‘ μ¬μ©νμ§λ λͺ»ν©λλ€. μμΆμ μ¬μ©ν μλ μμ§λ§ λ°μ΄λ리 ν¬λ§·μ μ¬μ©ν¨μΌλ‘μ¨ ν μ€νΈ ν¬λ§·λ³΄λ€ λ ν₯μλ λμ€ν¬ I/Oμ ν¨κ³Όμ μΈ λμ€ν¬ κ³΅κ° μ¬μ©ν©λλ€.
SequenceFile
μνμ€νμΌμ λ°μ΄λ리 ν€-κ°μΌλ‘ ꡬμλ νλ« νμΌ(flat file - κ³μΈ΅μ ꡬ쑰λ₯Ό κ°μ§ μκ³ λ¨μν κ°μ νμμ λ μ½λμ λͺ¨μμΌλ‘ μ΄λ£¨μ΄μ‘μ΅λλ€). νμ΄λΈλ 쿼리λ₯Ό 맡리λμ€ μ‘μΌλ‘ λ³νν λ λ μ½λλ‘ μ¬μ©νκΈ° μν μ λΉν ν€-κ° μμ μ ν©λλ€.
μνμ€νμΌμ λΈλκ³Ό λ μ½λ μμ€μμ μμΆμ΄ κ°λ₯νλ―λ‘ λμ€ν¬ κ³΅κ° νμ©κ³Ό I/Oλ₯Ό μ΅μ νν μ μκ³ λ³λ ¬ μ²λ¦¬λ₯Ό μν λΈλ‘ λ¨μ νμΌ λΆν λ κ°λ₯ν©λλ€.
https://towardsdatascience.com/new-in-hadoop-you-should-know-the-various-file-format-in-hadoop-4fcdfa25d42b
νλ‘μ΄ μ§μνλ μνμ€νμΌ ν¬λ§·μ νμΌμ λΈλ‘μΌλ‘ λλ μ μκ³ μ νμ μΌλ‘ λΈλ‘μ μμΆν μ μμ΅λλ€. CREATE TABLE μ μ STORED AS SEQUENCEFILE μ μ μΆκ°νλ©΄ λ©λλ€.
No compressionμ λ°μ΄ν°λ₯Ό μμΆνμ§ μκ³ κ·Έλλ‘ μ μ₯νλ λ°©μμ λλ€. μ΄ λ°©μμ μμΆ λ°©μμ μ¬μ©νμ§ μμΌλ―λ‘ λμ€ν¬ 곡κ°μ μ κ² μ¬μ©ν©λλ€. κ·Έλ¬λ, ν° νμΌμ μ²λ¦¬ν λ μ μΆλ ₯ μλκ° λλ €μ§ μ μμ΅λλ€.
Record compressionμ λ°μ΄ν°μ κ° λ μ½λ(ν€-κ° μ)λ₯Ό μμΆνλ λ°©μμ λλ€. μ΄ λ°©μμ μ¬μ©νλ©΄ λ°μ΄ν°μ ν¬κΈ°κ° μ€μ΄λ€μ΄ λμ€ν¬ 곡κ°μ μ μ½ν μ μμ΅λλ€. Record compressionμ deflate, gzip, bzip2 λ±μ μμΆ λ°©μμ μ§μν©λλ€.
Block compressionμ λ°μ΄ν°λ₯Ό λΈλ‘ λ¨μλ‘ μμΆνλ λ°©μμ λλ€. μ΄ λ°©μμ Record compressionκ³Ό λ¬λ¦¬ λ°μ΄ν°λ₯Ό λΈλ‘ λ¨μλ‘ μ²λ¦¬νλ―λ‘ λΈλ‘ λ¨μλ‘ μ μΆλ ₯μ΄ μνλμ΄ μ²λ¦¬ μλκ° λΉ¨λΌμ§λλ€. Block compressionμ deflate, gzip, bzip2, LZO, Snappy λ±μ μμΆ λ°©μμ μ§μν©λλ€.
RCFile
https://towardsdatascience.com/new-in-hadoop-you-should-know-the-various-file-format-in-hadoop-4fcdfa25d42b
Hiveμ Record Columnar Fileμ λ¨Όμ λ°μ΄ν°λ₯Ό ν λ¨μλ‘ Row GroupμΌλ‘ λλκ³ Row Group λ΄λΆμ λ°μ΄ν°λ₯Ό μ΄λ‘ μ μ₯νλ νμμ νμΌμΌλ‘ MapReduce κΈ°λ° λ°μ΄ν° μ¨μ΄νμ°μ€ μμ€ν μ©μΌλ‘ μ€κ³λ λ°μ΄ν° λ°°μΉ κ΅¬μ‘°μ λλ€
RCFileμ ν μ μ₯μμ μ΄ μ μ₯μμ μ₯μ μ κ²°ν©νμ¬ λΉ λ₯Έ λ°μ΄ν° λ‘λ λ° μΏΌλ¦¬ μ²λ¦¬, μ€ν λ¦¬μ§ κ³΅κ°μ ν¨μ¨μ μΈ μ¬μ© λ° λ§€μ° λμ μΈ μν¬λ‘λ ν¨ν΄μ λν μ μμ±μ λν μꡬλ₯Ό μΆ©μ‘±ν©λλ€.
λλΆλΆ νλ‘κ³Ό νμ΄λΈ μ μ₯ 곡κ°μ λ‘μ° κΈ°λ°μ΄λ©° μ΄λ λλΆλΆ ν¨κ³Όμ μ λλ€. νμΌμ λΈλ‘ λ¨μ μμΆμ λ°λ³΅λλ λ°μ΄ν°λ₯Ό λ€λ£¨λ λ° ν¨μ¨μ μ΄κ³ λ‘μ° κΈ°λ°μ λ°μ΄ν°λ₯Ό μ λ€λ£° μ μλ μ¬λ¬ ν μ€νΈ μ²λ¦¬ λꡬλ λλ²κΉ λꡬ(more,head,awk)μ μ λ§μ΅λλ€.
ν μ΄λΈμ΄ μλ°± κ°μ 컬λΌμ κ°μ§κ³ μκ³ λλΆλΆ 쿼리μμ κ·Έμ€ λͺ κ°λ§ μ¬μ©νλ€λ©΄ λ°μ΄ν°λ₯Ό κ°μ§κ³ μ€κΈ° μν΄ μ 체 λ‘μ°λ₯Ό μ€μΊνλ λ°©μμ λλΉμ λλ€. λμ μ λ°μ΄ν°κ° 컬λΌμ κΈ°μ€μΌλ‘ μ μ₯λμ΄ μλ€λ©΄ νμν λ°μ΄ν° 컬λΌλ§ μ½μ μ μκΈ° λλ¬Έμ μ±λ₯μ΄ ν₯μλ κ²μ λλ€.
νμ΄λΈμ κ°λ ₯ν μ₯μ μ€ νλλ μλ‘ λ€λ₯Έ λ λ°μ΄ν° ν¬λ§·μ κ°λ¨ν λ³ννλ λ₯λ ₯μΌλ‘ μ μ₯ μ 보λ ν μ΄λΈμ λ©νλ°μ΄ν°μ μ μ₯ν©λλ€.
ν μ§ν₯
https://towardsdatascience.com/new-in-hadoop-you-should-know-the-various-file-format-in-hadoop-4fcdfa25d42b
μ΄ μ§ν₯
https://towardsdatascience.com/new-in-hadoop-you-should-know-the-various-file-format-in-hadoop-4fcdfa25d42b
Avro Files
https://www.oreilly.com/library/view/operationalizing-the-data/9781492049517/ch04.html
μ격 νλ‘μμ νΈμΆ λ° λ°μ΄ν° μ§λ ¬ν νλ μμν¬μ λλ€.
Apacheμ Hadoop νλ‘μ νΈ λ΄μμ κ°λ°λμμΌλ©° JSONμ μ¬μ©νμ¬ λ°μ΄ν° μ ν λ° νλ‘ν μ½μ μ μνκ³ λ°μ΄ν°λ₯Ό κ°λ¨ν μ΄μ§ νμμΌλ‘ μ§λ ¬νν©λλ€
ORC Files
https://www.oreilly.com/library/view/operationalizing-the-data/9781492049517/ch04.html
μ΄ νμμΌλ‘ μ μ₯λ ν λ°μ΄ν°μ ν¨κ» νλμ νμΌμ ν λͺ¨μμ μ μ₯ν©λλ€
ν΄λ¬μ€ν° μ 체μμ ν λͺ¨μμ λ³λ ¬λ‘ μ²λ¦¬ν μ μμ΅λλ€. μ΄ λ μ΄μμμ΄ μλ κ° νμΌμ μμΆμ μ΅μ νλμ΄ μμ΅λλ€.
λ°μ΄ν°μ μ΄μ 건λλ°λ©΄ μ½κΈ° λ° μμΆ ν΄μ λ‘λκ° λͺ¨λ μ€μ΄λλλ€.
Parquet
https://www.oreilly.com/library/view/operationalizing-the-data/9781492049517/ch04.html
Hadoopμ© μ€ν μμ€ μ΄ μ§ν₯ μ€ν λ¦¬μ§ νμμ λλ€.
Parquetλ 볡μ‘ν λ°μ΄ν°λ₯Ό λλμΌλ‘ μμ νλλ‘ μ΅μ νλμ΄ μμΌλ©° ν¨μ¨μ μΈ λ°μ΄ν° μμΆ λ° μΈμ½λ© μ νμ μν λ°©λ²μ ν¬ν¨ν©λλ€.
ORC, Parquet λ° Avroμ νμ§
Row or column
Column
Column
Row
Compression
Great
Great
Good
Speedup (compared to text file)
10β100x
10β100x
10x
Schema evolution
Good
Better
Best
Platforms
Hive, Spark, Presto
Hive, Spark, Presto
Hive, Spark
Splittability
Best
Best
Better
File statistics
Yes
Yes
No
Indexes
Yes
Yes
No
Bloom filters
Yes
No
No
Custom INPUTFORMAT and OUTPUTFORMAT
νμ΄λΈλ νλ‘μ μ λ ₯ ν¬λ§·(InputFormat) APIλ₯Ό μ΄μ©ν΄ ν μ€νΈ νμΌ, μνμ€νμΌ, μ¬μ©μ μ μ νμΌκ³Ό κ°μ λ€μν μμ€λ‘λΆν° λ°μ΄ν°λ₯Ό μ½μ΅λλ€. μΆλ ₯ ν¬λ§·(OutputFormat) APIλ₯Ό μ΄μ©νλ©΄ λ€μν ν¬λ§·μΌλ‘ λ°μ΄ν°λ₯Ό μΈ μλ μμ΅λλ€.
μ λ ₯ ν¬λ§·(Input Format)μ μ£Όλ‘ νμΌ ννμ μ λ ₯ μ€νΈλ¦Όμ λ μ½λ λ¨μλ‘ λΆν λλ λ°©λ²μ κ²°μ ν©λλ€. SerDeλ λ μ½λλ₯Ό μ»¬λΌ λ¨μλ‘ λΆμνκ³ μ»€μ€ν μ λ ₯ ν¬λ§·μ INPUTFORMAT λ¬Έμ μ΄μ©ν΄ ν μ΄λΈμ μμ±ν λ μ μΈν μ μμ΅λλ€. κΈ°λ³Έ STORED AS TEXTFILE λͺ μΈμ μ λ ₯ ν¬λ§·μorg.apache.hadoop.mapreduce.lib.input.TextInputFormatμΌλ‘ μλ° κ°μ²΄λ‘ ꡬνλμ΄ μμ΅λλ€.
μΆλ ₯ ν¬λ§·(Output Format)μ μΆλ ₯ μ€νΈλ¦Ό(보ν΅μ νμΌ)μ μ΄λ»κ² λ μ½λλ₯Ό κΈ°λ‘νλμ§ κ²°μ ν©λλ€. SerDeλ κ°λ³ λ μ½λλ₯Ό μ μ ν λ°μ΄νΈ μ€νΈλ¦ΌμΌλ‘ μ§λ ¬ννκ³ μ¬μ©μ μ μ μΆλ ₯ ν¬λ§·μ OUTPUTFORMATλ¬Έμ μ΄μ©ν΄ ν μ΄λΈμ μμ±ν λ μ μΈν μ μμ΅λλ€.
μ¬μ©μ μ μ ν¨μ(UDF), μ¬μ©μ μ μ μ§κ³ ν¨μ(user-defined aggregate function - UDAF), μ¬μ©μ μ μ ν μ΄λΈ μμ± ν¨μ(user-defined table-generating function - UDTF) λ± μΈ μ’ λ₯μ UDFλ₯Ό μ§μν©λλ€. μΈ μ’ λ₯μ μ°¨μ΄μ μ μ λ ₯μΌλ‘ λ°λ νκ³Ό μΆλ ₯λλ νμ κ°μκ° λ€λ₯΄λ€λ κ²μ λλ€.
μ κ· UDFλ λ¨μΌ νμ μ²λ¦¬ν ν λ¨μΌ νμ μΆλ ₯νλ©° μν ν¨μλ λ¬Έμμ΄ ν¨μμ κ°μ λλΆλΆμ ν¨μκ° μ¬κΈ°μ ν΄λΉν©λλ€.
UDAFλ λ€μμ μ λ ₯ νμ μ²λ¦¬ν ν λ¨μΌ νμ μΆλ ₯νλ©° COUNTλ MAXκ°μ μ§κ³ ν¨μκ° μ¬κΈ°μ ν΄λΉν©λλ€.
UDTFλ λ¨μΌ λ‘μ°λ₯Ό μ²λ¦¬ν ν λ€μμ ν(ν μ΄λΈ)μ μΆλ ₯ν¨ν©λλ€.
https://www.amazon.com/Programming-Hive-Warehouse-Language-Hadoop/dp/1449319335
https://www.amazon.com/Hadoop-Definitive-Guide-Tom-White/dp/1449311520
https://www.oreilly.com/library/view/operationalizing-the-data/9781492049517/ch04.html
https://cwiki.apache.org/confluence/display/Hive/FileFormats