ืงืืืฆื
ืืืืข ืืฉ ืฆืืจื ืืคืืจืืืื ืฉืื ืื ืฉื ืงืืฆืื?
ืฆืืืืจ ืืงืืืง ืืจืืื ืืืืฆืืขืื ืขืืืจ ืืืฉืืืื ืืชืืืืื ื-HDFS ืืืื MapReduce ื-Spark ืืื ืืืื ืฉืืืงื ืืืืคืืฉ, ืงืจืืื ืืืชืืื ืฉื ื ืชืื ืื. ืืืขืืืช ืืืื ืืืจืืืืช ืืืงืืฉื ืื ืืืื ืืขืจืื ื ืชืื ืื ืืืืืื ืื ืืฉ ืื ื ืกืืืื ืืชืคืชืืช ืืื ืงืืืขื, ืื ืื ืืฉ ืืืืืฆื ืืืกืื ืืกืืืืื.
ืขืืืื ืืื ืืืื ืืืืืจ ืืช ืืขืืืก ืขื ืชืช-ืืขืจืืช ืืืืกืื - Hadoop ืืืืจืช ื ืชืื ืื ืืืืคื ืืืืชืจ ืืื ืืืฉืื ืกืืืื ืืช ืืชืงืืืช. ืื ืืกืฃ ืืืืกืงืื, ื ืืขื ืื ืืืขืื, ืืจืฉืช, ืืขืจืืช ืืงืื/ืคืื ืืื ืืืื. ืืื ืฉื ืคื ืื ืชืื ืื ืืื, ืื ืขืืื ืื ืขืืืช ืืขืืืื ืืืืืกืื ืฉืืื.
ืคืืจืืืื ืฉืื ืื ืฉื ืงืืฆืื ื
- ืืื ืงืจืืื ืืืืจ ืืืชืจ.
- ืืื ืืงืืื ืืืืจ ืืืชืจ.
- ืงืืฆืื ืืฉืืชืคืื.
- ืชืืืื ืืืชืคืชืืืช ืกืืืื.
- ืชืืืืช ืืืืกื ืืืจืืืช.
ืคืืจืืืื ืืกืืืืื ืฉื ืงืืฆืื ืืืืขืืื ืืฉืืืืฉ ืืืื, ืืืจืื ืืฉืืืืฉืื ืกืคืฆืืคืืื ืืืชืจ, ืืืืงื ื ืืขืื ืืขื ืืช ืขื ืืืคืืื ื ื ืชืื ืื ืกืคืฆืืคืืื. ืื ืืืืืจ ืืื ืืืืช ืื ืืืื.
ืคืืจืื ืงืืืฅ Avro
ืขืืืจ ืืกืืจืช ื ืชืื ืื ืืืจื ื ืืฆื ืืฉืืืืฉ ื ืจืื - ืื ืืืืกืก ืืืจืืืช, ืืืืืจ, ืคืืจืื ืืืกืื ื ืชืื ืื ืฉื ืืืจืืืช ื-Hadoop. ืืื ืืืืกื ืืช ืืกืืืื ืืคืืจืื JSON, ืื ืฉืืงื ืขื ืืงืจืืื ืืืคืืจืืฉ ืฉื ืื ืชืืื ืืช. ืื ืชืื ืื ืขืฆืื ืื ืืคืืจืื ืืื ืืจื, ืงืืืคืงืื ืืืขืื.
ืืขืจืืช ืืกืจืืืืืืฆืื ืฉื ืืืจื ืืื ื ืืืจืืืช ืืฉืคื. ื ืืชื ืืขืื ืงืืฆืื ืืืืืื ืฉืคืืช, ืืืื C, C++, C#, Java, Python ื-Ruby.
ืชืืื ื ืืจืืืืช ืฉื Avro ืืื ืืชืืืื ืืืืงื ืฉืื ืืกืืืืืช ื ืชืื ืื ืืืฉืชื ืืช ืขื ืืืื, ืืืืืจ ืืชืคืชืืืช. ืืืจื ืืืื ื ืฉืื ืืืื ืืกืืืื - ืืืืงื, ืืืกืคื ืื ืฉืื ืื ืฉื ืฉืืืช.
Avro ืชืืืืช ืืืืืื ืืื ื ื ืชืื ืื. ืืืืืื, ื ืืชื ืืืฆืืจ ืจืฉืืื ืืืืืื ืืขืจื, ืกืื ืืืืกืคืจ ืืชืช-ืจืฉืืื.
ืคืืจืื ืื ืืืืืืื ืืืชืืื ืืืืืจ ืื ืืืชื (ืืืขืืจ) ืฉื ืืื ื ืชืื ืื (
ืื, ืคืืจืื ืื ืืชืืื ืืืืชืจ ืืืชืืื ืืืืืจ ืื ืืืชื ืฉื ืืื ื ืชืื ืื ืืืกืืืืช ืืืืืช:
- ื ืชืื ืื ืืืืืจ ืื ื ืงืจืืื ืืืจื ืืื ืืฉืืืืชื ืืฆืืจื ืขืืืื ื ืืกืฃ ืขื ืืื ืืขืจืืืช ืืืืจื ืืืจื - ืืคืืจืื ืืืืกืก ืฉืืจืืช ืืขืื ืืืชืจ ืืืงืจื ืื.
- ืืขืจืืืช ืืื ืืืืืืช ืืืืืจ ืืงืืืช ืืืืืืช ืกืืืืช ืืงืืฆืื - ืืื ืฆืืจื ืืืืกื ืกืืืืช ืื ืคืจื ืืืืกืื ืืื ืืืฆืื ื.
- ืื ืฉืื ืื ืืกืืืื ืืืงืืจืืช ืืขืืื ืืงืืืช (ืืชืคืชืืืช ืกืืื).
ืคืืจืื ืงืืืฅ ืคืจืงื
ืคืจืงื ืืื ืคืืจืื ืงืืืฅ ืงืื ืคืชืื ืขืืืจ Hadoop ืืืืืกื ืืื ื ื ืชืื ืื ืืงืื ื ืื ืืคืืจืื ืขืืืื ืฉืืื.
ืืืฉืืืื ืืืืฉืช ืืฉืืจืืช ืืืกืืจืชืืช, ืคืจืงื ืืขืื ืืืชืจ ืืืืื ืช ืืืกืื ืืืืฆืืขืื.
ืื ืฉืืืืฉื ืืืืืื ืขืืืจ ืฉืืืืชืืช ืืงืืจืืืช ืขืืืืืช ืกืคืฆืืคืืืช ืืืืื ืจืืื (ืจืืืช ืขืืืืืช). ืืืืืช ืืคืืจืื ืืงืืืฅ, ืจืง ืืขืืืืืช ืืืจืืฉืืช ื ืงืจืืืช, ืื ืฉื-I/O ื ืฉืืจ ืืืื ืืืื.
ืกืืืื ืงืื ื ืืืกืืจ: ืืื ืืืืื ืืื ืืืชืจ ืืช ืคืืจืื ืืงืืืฅ Parquet ื-Hadoop, ืืืื ื ืจืื ืืื ืคืืจืื ืืืืกืก ืขืืืืืช - ืืืืืจ ืขืืืืืช -. ืคืืจืื ืื ืืืืกื ืขืจืืื ืืืืื ืขืืืจ ืื ืขืืืื ืืื.
ID
ืฉื
ืึทืืึธืงึธื
1
emp1
d1
2
emp2
d2
3
emp3
d3
ืืคืืจืื ืืืจืืืช, ืื ืชืื ืื ืืืฉืืจื ืืืืคื ืืื:
1
emp1
d1
2
emp2
d2
3
emp3
d3
ืืชืื ืืช ืงืืืฅ ืขืืืื, ืืืชื ื ืชืื ืื ืืืฉืืจื ืื:
1
2
3
emp1
emp2
emp3
d1
d2
d3
ืืคืืจืื ืืขืืืืืช ืืขืื ืืืชืจ ืืืฉืจ ืืชื ืฆืจืื ืืืฆืข ืฉืืืืชืืช ืขื ืืกืคืจ ืขืืืืืช ืืืืื. ืื ืืงืจื ืจืง ืืช ืืขืืืืืช ืื ืืจืฉืืช ืืืืืื ืฉืื ืฆืืืืืช. ืืืืคื ืื, ืคืขืืืืช I/O ื ืฉืืจืืช ืืืื ืืืื.
ืืืืืื, ืืชื ืฆืจืื ืจืง ืืช ืืขืืืื NAME. IN
ืืคืืื, ืืคืืจืื ืืขืืืืืช ืืฉืคืจ ืืช ืืืฆืืขื ืืฉืืืืชื ืืืืืื ืฉืืื ืืืจืฉ ืคืืืช ืืื ืืืคืืฉ ืืื ืืืืืข ืืขืืืืืช ืื ืืจืฉืืช ืืืคืืืช ืืช ืืกืคืจ ืคืขืืืืช ื-I/O ืืืืืื ืฉืจืง ืืขืืืืืช ืืจืฆืืืืช ื ืงืจืืืช.
ืืืช ืืชืืื ืืช ืืืืืืืืืช
ืืื ืืืืื ืืช ืคืืจืื ืืงืืืฅ ืฉื Parquet ื-Hadoop, ืขืืื ืืืืืจ ืืช ืืืื ืืื ืืืืื:
- ืงืืืฆืช ืืืชืจืื (ืงืืืฆืช ืฉืืจืืช): ืืืืงื ืืืคืงืืช ืืืืื ืืช ืฉื ื ืชืื ืื ืืฉืืจืืช. ืงืืืฆืช ืฉืืจืืช ืืืจืืืช ืืืืง ืืื ืขืืืื ืืืขืจื ืื ืชืื ืื.
- ืฉืืจ ืขืืืื (ื ืชื ืขืืืื): ืงืืข ืฉื ืขืืืื ืืกืืืืช. ืงืืขื ืขืืืืืช ืืื ืืืื ืืงืืืฆื ืืกืืืืช ืฉื ืฉืืจืืช ืืืืืื ืฉืื ืืืื ืจืฆืืคืื ืืงืืืฅ.
- ืขืืื (ืขืืื): ืฉืืจื ืขืืืืืช ืืืืืงืื ืืืคืื ืืืชืืืื ืืื ืืืจ ืื. ืืืคืื ืืฉ ืืืชืจืช ืืฉืืชืคืช, ืื ืฉื ืืชื ืืืื ืขื ืืืืชืจืืช ืืขืช ืืงืจืืื.
ืืื ืืืืชืจืช ืืืืื ืจืง ืืช ืืกืคืจ ืืงืกื PAR1 (4 ืืชืื) ืืืืื ืืช ืืงืืืฅ ืืงืืืฅ ืคืจืงื.
ืืืืชืจืช ืืชืืชืื ื ืืืืจืช ืืช ืืืืจืื ืืืืื:
- ืืื ื ืชืื ืื ืฉื ืงืืืฅ ืืืืืืื ืืช ืงืืืืจืืื ืืืช ืืืชืืื ืฉื ืืืื ื ืชืื ืื ืฉื ืื ืขืืืื. ืืขืช ืืงืจืืื, ืขืืื ืืงืจืื ืชืืืื ืืช ืืืื ื ืชืื ืื ืฉื ืืงืืืฅ ืืื ืืืฆืื ืืช ืื ืงืืขื ืืขืืืืืช ืืืขื ืืื ืื. ืืืืจ ืืื ืืฉ ืืงืจืื ืืช ืืืงื ืืขืืืื ืืจืฆืฃ. ืืื ื ืชืื ืื ืืืจืื ืืืืืื ืืช ืืจืกืช ืืคืืจืื, ืืกืืืื ืืื ืฆืืื ืืคืชื-ืขืจื ื ืืกืคืื.
- ืืืจื ืืื ื ืชืื ืื (4 ืืชืื).
- ืืกืคืจ ืงืกื PAR1 (4 ืืชืื).
ืคืืจืื ืงืืืฅ ORC
ืคืืจืื ืงืืืฅ ืฉืืจื-ืขืืืื ืืืคืืืืื (ืขืืืืช ืฉืืจื ืืืคืืืืืืช,
ืืืชืจืื ืืช ืฉื ืคืืจืื ORC:
- ืงืืืฅ ืืื ืืื ืืคืื ืฉื ืื ืืฉืืื, ืื ืฉืืคืืืช ืืช ืืขืืืก ืขื ื-NameNode (ืฆืืืช ืฉื).
- ืชืืืื ืืกืืื ื ืชืื ืื ืฉื Hive, ืืืื DateTime, ืกืืื ื ืชืื ืื ืขืฉืจืื ืืื ืืืืจืืืื (ืืื ื, ืจืฉืืื, ืืคื ืืืืืื).
- ืงืจืืื ืื-ืืื ืืช ืฉื ืืืชื ืงืืืฅ ืขื ืืื ืชืืืืืื ืฉืื ืื ืฉื RecordReader.
- ืืืืืช ืืคืฆื ืงืืฆืื ืืื ืกืจืืงื ืืืืชืืจ ืกืื ืื.
- ืืขืจืื ืฉื ืืงืฆืืช ืืืืจืื ืืขืจืืื ืืืงืกืืืืืช ืืืคืฉืจืืช ืืชืืืืื ืงืจืืื/ืืชืืื ืืืชืืกืก ืขื ืืืืข ืืืืชืจืช ืืชืืชืื ื ืฉื ืืงืืืฅ.
- ืืื ื ืชืื ืื ืืืืืกื ืื ืืคืืจืื ืคืจืืืืงืื Buffers ืืื ืืจื ืกืจืืืืืืฆืื, ืืืืคืฉืจ ืืืกืคื ืืืกืจื ืฉื ืฉืืืช.
ORC ืืืืกื ืืืกืคืื ืฉื ืืืจืืืืช ืืงืืืฅ ืืืื, ืืืชืื ืืืืกืฃ, ื ืชืื ื ืืืจืืืช ืืืืืกื ืื ืืคืืจืื ืขืืืื.
ืงืืืฅ ORC ืืืืกื ืงืืืฆืืช ืฉื ืฉืืจืืช ืื ืงืจืืืช ืคืกืื ืืืืืข ืชืืื ืืืืชืจืช ืืชืืชืื ื ืฉื ืืงืืืฅ. ื-Postscript ืืกืืฃ ืืงืืืฅ ืืืื ืคืจืืืจืื ืฉื ืืืืกื ืืืืื ืืืืชืจืช ืืชืืชืื ื ืืืืืกื.
ืืืื ืืคืก ืืืืืืจ ืืืจืืจืช ืืืื ืืื 250 MB. ืืฉื ืคืกืื ืืืืืื ืื ืื, ืืงืจืืื ื-HDFS ืืชืืฆืขืช ืืฆืืจื ืืขืืื ืืืชืจ: ืืืืืงืื ืจืฆืืคืื ืืืืืื.
ืืืืชืจืช ืืชืืชืื ื ืฉื ืืงืืืฅ ืืชืขืืช ืืช ืจืฉืืืช ืื ืชืืืื ืืงืืืฅ, ืืช ืืกืคืจ ืืฉืืจืืช ืืื ื ืชืื ืืืช ืกืื ืื ืชืื ืื ืฉื ืื ืขืืืื. ืืขืจื ืืืชืงืื ืฉื ืกืคืืจื, min, max ืืกืืื ืขืืืจ ืื ืขืืืื ื ืืชื ืื ืฉื.
ืืืืชืจืช ืืชืืชืื ื ืฉื ืืจืฆืืขื ืืืืื ืกืคืจืืื ืฉื ืืืงืืื ืืจืืื.
ื ืขืฉื ืฉืืืืฉ ืื ืชืื ื ืฉืืจืืช ืืขืช ืกืจืืงืช ืืืืืืช.
ื ืชืื ื ืืืื ืืงืก ืืืืืื ืืช ืขืจืื ืืืื ืืืื ืืืืงืกืืืื ืขืืืจ ืื ืขืืืื ืืืช ืืืงืื ืืฉืืจืืช ืืื ืขืืืื. ืืื ืืงืกื ORC ืืฉืืฉืื ืจืง ืืืืืจืช ืคืกืื ืืงืืืฆืืช ืฉืืจืืช, ืื ืืืขื ื ืืฉืืืืชืืช.
ืืฉืืืื ืืื ืคืืจืืืื ืฉืื ืื ืฉื ืงืืฆืื
ืืืจื ืืขืืืช ืคืจืงื
- Avro ืืื ืคืืจืื ืืืกืื ืฉืืจื, ืืขืื ืคืจืงื ืืืืกื ื ืชืื ืื ืืขืืืืืช.
- ืคืจืงื ืืชืืื ืืืชืจ ืืฉืืืืชืืช ืื ืืืืืืช, ืืืืืจ ืคืขืืืืช ืงืจืืื ืืฉืืืืชืช ื ืชืื ืื ืืขืืืื ืืจืื ืืืชืจ ืืืฉืจ ืืชืืื.
- ืคืขืืืืช ืืืชืืื ืืืืจื ืืชืืฆืขืืช ืืฆืืจื ืืขืืื ืืืชืจ ืืืฉืจ ืืคืจืงื.
- ืืืจื ืขืืกืง ืืืชืคืชืืืช ืืขืืืื ืืฆืืจื ืืืืจืช ืืืชืจ. ืคืจืงื ืชืืื ืจืง ืืืืกืคื ืฉื ืกืืืื, ืืขืื ืฉืืืจื ืชืืืืช ืืืืืืืฆืื ืจื ืชืืืืชืืช, ืืืืืจ, ืืืกืคื ืื ืฉืื ืื ืฉื ืขืืืืืช.
- ืคืจืงื ืืืืืืื ืืฉืืืืชื ืฉื ืชืช-ืงืืืฆื ืฉื ืขืืืืืช ืืืืื ืืจืืืช ืขืืืืืช. Avro ืืชืืืื ืืคืขืืืืช ETL ืฉืืื ืื ื ืืืฆืขืื ืฉืืืืชืืช ืืื ืืขืืืืืช.
ORC ื ืื ืคืจืงื
- ืคืจืงื ืืืืกื ื ืชืื ืื ืืงืื ื ืื ืืื ืืืชืจ.
- ORC ืืชืืื ืืืชืจ ื-Phoddown.
- ORC ืชืืื ืืืืคืืื ื ACID.
- ORC ืืืืก ื ืชืื ืื ืืื ืืืชืจ.
ืื ืขืื ืืงืจืื ืื ืืฉื:
ื ืืชืื ืืื ืืืื ืืขื ื: ืืื ืืืจื ืืืืื ืืืืืช ืืืืืื ืช ื ืชืื ืื .ืืืจืื ืฆื ืืข ืืกืืืืืช ืืกืื ื ืชืื ืื .ืขืจืืฅ ืืืืืจื ืฉืื ื ืขื ืืจื ืกืคืืจืืฆืื ืืืืืืืืช .
ืืงืืจ: www.habr.com