ืคื•ืจืžื˜ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ื‘ื™ื’ ื“ืื˜ื”: ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”

ืคื•ืจืžื˜ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ื‘ื™ื’ ื“ืื˜ื”: ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”
ืืœื•ื”ื•ืช ืžื–ื’ ื”ืื•ื•ื™ืจ ืžืืช ืจืžืจื™ืŸ

ืงื‘ื•ืฆื” ืคืชืจื•ื ื•ืช ืขื ืŸ ืฉืœ Mail.ru ืžืฆื™ืข ืชืจื’ื•ื ืžืืžืจ ื”ืžื”ื ื“ืก Rahul Bhatia ืž-Clairvoyant ืขืœ ืื™ืœื• ืชื‘ื ื™ื•ืช ืงื‘ืฆื™ื ื™ืฉ ื‘ื‘ื™ื’ ื“ืื˜ื”, ืžื”ืŸ ื”ืชื›ื•ื ื•ืช ื”ื ืคื•ืฆื•ืช ื‘ื™ื•ืชืจ ืฉืœ ืคื•ืจืžื˜ื™ื ืฉืœ Hadoop ื•ื‘ืื™ื–ื” ืคื•ืจืžื˜ ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ.

ืžื“ื•ืข ื™ืฉ ืฆื•ืจืš ื‘ืคื•ืจืžื˜ื™ื ืฉื•ื ื™ื ืฉืœ ืงื‘ืฆื™ื?

ืฆื•ื•ืืจ ื‘ืงื‘ื•ืง ืžืจื›ื–ื™ ื‘ื‘ื™ืฆื•ืขื™ื ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ื”ืชื•ืžื›ื™ื ื‘-HDFS ื›ื’ื•ืŸ MapReduce ื•-Spark ื”ื•ื ื”ื–ืžืŸ ืฉืœื•ืงื— ืœื—ื™ืคื•ืฉ, ืงืจื™ืื” ื•ื›ืชื™ื‘ื” ืฉืœ ื ืชื•ื ื™ื. ื”ื‘ืขื™ื•ืช ื”ืœืœื• ืžื•ืจื›ื‘ื•ืช ืžื”ืงื•ืฉื™ ื‘ื ื™ื”ื•ืœ ืžืขืจื›ื™ ื ืชื•ื ื™ื ื’ื“ื•ืœื™ื ืื ื™ืฉ ืœื ื• ืกื›ื™ืžื” ืžืชืคืชื—ืช ื•ืœื ืงื‘ื•ืขื”, ืื• ืื ื™ืฉ ืื™ืœื•ืฆื™ ืื—ืกื•ืŸ ืžืกื•ื™ืžื™ื.

ืขื™ื‘ื•ื“ ื‘ื™ื’ ื“ืื˜ื” ืžื’ื‘ื™ืจ ืืช ื”ืขื•ืžืก ืขืœ ืชืช-ืžืขืจื›ืช ื”ืื—ืกื•ืŸ - Hadoop ืื•ื’ืจืช ื ืชื•ื ื™ื ื‘ืื•ืคืŸ ืžื™ื•ืชืจ ื›ื“ื™ ืœื”ืฉื™ื’ ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช. ื‘ื ื•ืกืฃ ืœื“ื™ืกืงื™ื, ื ื˜ืขื ื™ื ื”ืžืขื‘ื“, ื”ืจืฉืช, ืžืขืจื›ืช ื”ืงืœื˜/ืคืœื˜ ื•ื›ืŸ ื”ืœืื”. ื›ื›ืœ ืฉื ืคื— ื”ื ืชื•ื ื™ื ื’ื“ืœ, ื›ืš ืขื•ืœื” ื’ื ืขืœื•ืช ื”ืขื™ื‘ื•ื“ ื•ื”ืื—ืกื•ืŸ ืฉืœื”ื.

ืคื•ืจืžื˜ื™ื ืฉื•ื ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ Hadoop ื”ื•ืžืฆื ื›ื“ื™ ืœืคืชื•ืจ ื‘ื“ื™ื•ืง ืืช ื”ื‘ืขื™ื•ืช ื”ืœืœื•. ื‘ื—ื™ืจืช ืคื•ืจืžื˜ ื”ืงื•ื‘ืฅ ื”ืžืชืื™ื ื™ื›ื•ืœื” ืœืกืคืง ื›ืžื” ื™ืชืจื•ื ื•ืช ืžืฉืžืขื•ืชื™ื™ื:

  1. ื–ืžืŸ ืงืจื™ืื” ืžื”ื™ืจ ื™ื•ืชืจ.
  2. ื–ืžืŸ ื”ืงืœื˜ื” ืžื”ื™ืจ ื™ื•ืชืจ.
  3. ืงื‘ืฆื™ื ืžืฉื•ืชืคื™ื.
  4. ืชืžื™ื›ื” ื‘ื”ืชืคืชื—ื•ืช ืกื›ื™ืžื”.
  5. ืชืžื™ื›ืช ื“ื—ื™ืกื” ืžื•ืจื—ื‘ืช.

ืคื•ืจืžื˜ื™ื ืžืกื•ื™ืžื™ื ืฉืœ ืงื‘ืฆื™ื ืžื™ื•ืขื“ื™ื ืœืฉื™ืžื•ืฉ ื›ืœืœื™, ืื—ืจื™ื ืœืฉื™ืžื•ืฉื™ื ืกืคืฆื™ืคื™ื™ื ื™ื•ืชืจ, ื•ื—ืœืงื ื ื•ืขื“ื• ืœืขื ื•ืช ืขืœ ืžืืคื™ื™ื ื™ ื ืชื•ื ื™ื ืกืคืฆื™ืคื™ื™ื. ืื– ื”ืžื‘ื—ืจ ื”ื•ื ื‘ืืžืช ื“ื™ ื’ื“ื•ืœ.

ืคื•ืจืžื˜ ืงื•ื‘ืฅ Avro

ืขื‘ื•ืจ ื”ืกื“ืจืช ื ืชื•ื ื™ื ืื‘ืจื• ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ - ื–ื” ืžื‘ื•ืกืก ืžื—ืจื•ื–ืช, ื›ืœื•ืžืจ, ืคื•ืจืžื˜ ืื—ืกื•ืŸ ื ืชื•ื ื™ื ืฉืœ ืžื—ืจื•ื–ืช ื‘-Hadoop. ื”ื•ื ืžืื—ืกืŸ ืืช ื”ืกื›ื™ืžื” ื‘ืคื•ืจืžื˜ JSON, ืžื” ืฉืžืงืœ ืขืœ ื”ืงืจื™ืื” ื•ื”ืคื™ืจื•ืฉ ืฉืœ ื›ืœ ืชื•ื›ื ื™ืช. ื”ื ืชื•ื ื™ื ืขืฆืžื ื”ื ื‘ืคื•ืจืžื˜ ื‘ื™ื ืืจื™, ืงื•ืžืคืงื˜ื™ ื•ื™ืขื™ืœ.

ืžืขืจื›ืช ื”ืกืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ืื‘ืจื• ื”ื™ื ื ื™ื˜ืจืœื™ืช ื‘ืฉืคื”. ื ื™ืชืŸ ืœืขื‘ื“ ืงื‘ืฆื™ื ื‘ืžื’ื•ื•ืŸ ืฉืคื•ืช, ื›ื™ื•ื C, C++, C#, Java, Python ื•-Ruby.

ืชื›ื•ื ื” ืžืจื›ื–ื™ืช ืฉืœ Avro ื”ื™ื ื”ืชืžื™ื›ื” ื”ื—ื–ืงื” ืฉืœื” ื‘ืกื›ื™ืžื•ืช ื ืชื•ื ื™ื ื”ืžืฉืชื ื•ืช ืขื ื”ื–ืžืŸ, ื›ืœื•ืžืจ ืžืชืคืชื—ื•ืช. ืื‘ืจื• ืžื‘ื™ื ื” ืฉื™ื ื•ื™ื™ื ื‘ืกื›ื™ืžื” - ืžื—ื™ืงื”, ื”ื•ืกืคื” ืื• ืฉื™ื ื•ื™ ืฉืœ ืฉื“ื•ืช.

Avro ืชื•ืžื›ืช ื‘ืžื’ื•ื•ืŸ ืžื‘ื ื™ ื ืชื•ื ื™ื. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื™ืฆื•ืจ ืจืฉื•ืžื” ื”ืžื›ื™ืœื” ืžืขืจืš, ืกื•ื’ ืžืžื•ืกืคืจ ื•ืชืช-ืจืฉื•ืžื”.

ืคื•ืจืžื˜ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ื‘ื™ื’ ื“ืื˜ื”: ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”
ืคื•ืจืžื˜ ื–ื” ืื™ื“ื™ืืœื™ ืœื›ืชื™ื‘ื” ืœืื–ื•ืจ ื”ื ื—ื™ืชื” (ื”ืžืขื‘ืจ) ืฉืœ ืื’ื ื ืชื•ื ื™ื (ืื’ื ื ืชื•ื ื™ื, ืื• data lake - ืื•ืกืฃ ืฉืœ ืžื•ืคืขื™ื ืœืื—ืกื•ืŸ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ื ืชื•ื ื™ื ื‘ื ื•ืกืฃ ืœืžืงื•ืจื•ืช ื ืชื•ื ื™ื ื™ืฉื™ืจื•ืช).

ืื–, ืคื•ืจืžื˜ ื–ื” ืžืชืื™ื ื‘ื™ื•ืชืจ ืœื›ืชื™ื‘ื” ืœืื–ื•ืจ ื”ื ื—ื™ืชื” ืฉืœ ืื’ื ื ืชื•ื ื™ื ืžื”ืกื™ื‘ื•ืช ื”ื‘ืื•ืช:

  1. ื ืชื•ื ื™ื ืžืื–ื•ืจ ื–ื” ื ืงืจืื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ืฉืœืžื•ืชื ืœืฆื•ืจืš ืขื™ื‘ื•ื“ ื ื•ืกืฃ ืขืœ ื™ื“ื™ ืžืขืจื›ื•ืช ื‘ืžื•ืจื“ ื”ื–ืจื - ื•ืคื•ืจืžื˜ ืžื‘ื•ืกืก ืฉื•ืจื•ืช ื™ืขื™ืœ ื™ื•ืชืจ ื‘ืžืงืจื” ื–ื”.
  2. ืžืขืจื›ื•ืช ืžื˜ื” ื™ื›ื•ืœื•ืช ืœืื—ื–ืจ ื‘ืงืœื•ืช ื˜ื‘ืœืื•ืช ืกื›ืžื•ืช ืžืงื‘ืฆื™ื - ืื™ืŸ ืฆื•ืจืš ืœืื—ืกืŸ ืกื›ืžื•ืช ื‘ื ืคืจื“ ื‘ืื—ืกื•ืŸ ืžื˜ื ื—ื™ืฆื•ื ื™.
  3. ื›ืœ ืฉื™ื ื•ื™ ื‘ืกื›ื™ืžื” ื”ืžืงื•ืจื™ืช ืžืขื•ื‘ื“ ื‘ืงืœื•ืช (ื”ืชืคืชื—ื•ืช ืกื›ืžื”).

ืคื•ืจืžื˜ ืงื•ื‘ืฅ ืคืจืงื˜

ืคืจืงื˜ ื”ื•ื ืคื•ืจืžื˜ ืงื•ื‘ืฅ ืงื•ื“ ืคืชื•ื— ืขื‘ื•ืจ 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 ืคื•ืจืžื˜ ืžื—ืจื•ื–ืช ื™ืฉ ืœื˜ืขื•ืŸ ื›ืœ ืจืฉื•ืžื” ื‘ืžืขืจืš ื”ื ืชื•ื ื™ื, ืœื ืชื— ืœืคื™ ืฉื“ื” ื•ืœืื—ืจ ืžื›ืŸ ืœื—ืœืฅ ืืช ื ืชื•ื ื™ NAME. ืคื•ืจืžื˜ ื”ืขืžื•ื“ื” ืžืืคืฉืจ ืœืš ืœื”ืชืขืžืง ื™ืฉื™ืจื•ืช ืœืขืžื•ื“ืช ื”ืฉื ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ื”ืขืจื›ื™ื ืฉืœ ื”ืขืžื•ื“ื” ื”ื–ื• ืžืื•ื—ืกื ื™ื ื™ื—ื“. ืืชื” ืœื ืฆืจื™ืš ืœืกืจื•ืง ืืช ื›ืœ ื”ื”ืงืœื˜ื”.

ืœืคื™ื›ืš, ื”ืคื•ืจืžื˜ ื”ืขืžื•ื“ื•ืช ืžืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืฉืื™ืœืชื” ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ื“ื•ืจืฉ ืคื—ื•ืช ื–ืžืŸ ื—ื™ืคื•ืฉ ื›ื“ื™ ืœื”ื’ื™ืข ืœืขืžื•ื“ื•ืช ื”ื ื“ืจืฉื•ืช ื•ืžืคื—ื™ืช ืืช ืžืกืคืจ ืคืขื•ืœื•ืช ื”-I/O ืžื›ื™ื•ื•ืŸ ืฉืจืง ื”ืขืžื•ื“ื•ืช ื”ืจืฆื•ื™ื•ืช ื ืงืจืื•ืช.

ืื—ืช ื”ืชื›ื•ื ื•ืช ื”ื™ื™ื—ื•ื“ื™ื•ืช ืคืจืงื˜ ื–ื” ืฉื‘ืคื•ืจืžื˜ ื”ื–ื” ื–ื” ื™ื›ื•ืœ ืœืื—ืกืŸ ื ืชื•ื ื™ื ืขื ืžื‘ื ื™ื ืžืงื•ื ื ื™ื. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื‘ืงื•ื‘ืฅ Parquet ื ื™ืชืŸ ืœืงืจื•ื ืืคื™ืœื• ืฉื“ื•ืช ืžืงื•ื ื ื™ื ื‘ื ืคืจื“ ืœืœื ืฆื•ืจืš ืœืงืจื•ื ืืช ื›ืœ ื”ืฉื“ื•ืช ื‘ืžื‘ื ื” ื”ืžืงื•ื ืŸ. ืคืจืงื˜ ืžืฉืชืžืฉ ื‘ืืœื’ื•ืจื™ืชื ื’ืจื™ืกื” ื•ื”ืจื›ื‘ื” ืœืื—ืกื•ืŸ ืžื‘ื ื™ื ืžืงื•ื ื ื™ื.

ืคื•ืจืžื˜ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ื‘ื™ื’ ื“ืื˜ื”: ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”
ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ืคื•ืจืžื˜ ื”ืงื•ื‘ืฅ ืฉืœ Parquet ื‘-Hadoop, ืขืœื™ืš ืœื”ื›ื™ืจ ืืช ื”ืžื•ื ื—ื™ื ื”ื‘ืื™ื:

  1. ืงื‘ื•ืฆืช ืžื™ืชืจื™ื (ืงื‘ื•ืฆืช ืฉื•ืจื•ืช): ื—ืœื•ืงื” ืื•ืคืงื™ืช ื”ื’ื™ื•ื ื™ืช ืฉืœ ื ืชื•ื ื™ื ืœืฉื•ืจื•ืช. ืงื‘ื•ืฆืช ืฉื•ืจื•ืช ืžื•ืจื›ื‘ืช ืžื—ืœืง ืžื›ืœ ืขืžื•ื“ื” ื‘ืžืขืจืš ื”ื ืชื•ื ื™ื.
  2. ืฉื‘ืจ ืขืžื•ื“ื” (ื ืชื— ืขืžื•ื“ื”): ืงื˜ืข ืฉืœ ืขืžื•ื“ื” ืžืกื•ื™ืžืช. ืงื˜ืขื™ ืขืžื•ื“ื•ืช ืืœื” ื—ื™ื™ื ื‘ืงื‘ื•ืฆื” ืžืกื•ื™ืžืช ืฉืœ ืฉื•ืจื•ืช ื•ืžื•ื‘ื˜ื— ืฉื”ื ื™ื”ื™ื• ืจืฆื™ืคื™ื ื‘ืงื•ื‘ืฅ.
  3. ืขืžื•ื“ (ืขืžื•ื“): ืฉื‘ืจื™ ืขืžื•ื“ื•ืช ืžื—ื•ืœืงื™ื ืœื“ืคื™ื ื”ื›ืชื•ื‘ื™ื ื‘ื–ื” ืื—ืจ ื–ื”. ืœื“ืคื™ื ื™ืฉ ื›ื•ืชืจืช ืžืฉื•ืชืคืช, ื›ืš ืฉื ื™ืชืŸ ืœื“ืœื’ ืขืœ ืžื™ื•ืชืจื•ืช ื‘ืขืช ื”ืงืจื™ืื”.

ืคื•ืจืžื˜ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ื‘ื™ื’ ื“ืื˜ื”: ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”
ื›ืืŸ ื”ื›ื•ืชืจืช ืžื›ื™ืœื” ืจืง ืืช ืžืกืคืจ ื”ืงืกื PAR1 (4 ื‘ืชื™ื) ื”ืžื–ื”ื” ืืช ื”ืงื•ื‘ืฅ ื›ืงื•ื‘ืฅ ืคืจืงื˜.

ื”ื›ื•ืชืจืช ื”ืชื—ืชื•ื ื” ืื•ืžืจืช ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

  1. ืžื˜ื ื ืชื•ื ื™ื ืฉืœ ืงื•ื‘ืฅ ื”ืžื›ื™ืœื™ื ืืช ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ื”ื”ืชื—ืœื” ืฉืœ ื”ืžื˜ื ื ืชื•ื ื™ื ืฉืœ ื›ืœ ืขืžื•ื“ื”. ื‘ืขืช ื”ืงืจื™ืื”, ืขืœื™ืš ืœืงืจื•ื ืชื—ื™ืœื” ืืช ื”ืžื˜ื ื ืชื•ื ื™ื ืฉืœ ื”ืงื•ื‘ืฅ ื›ื“ื™ ืœืžืฆื•ื ืืช ื›ืœ ืงื˜ืขื™ ื”ืขืžื•ื“ื•ืช ื”ืžืขื ื™ื™ื ื™ื. ืœืื—ืจ ืžื›ืŸ ื™ืฉ ืœืงืจื•ื ืืช ื—ืœืงื™ ื”ืขืžื•ื“ื” ื‘ืจืฆืฃ. ืžื˜ื ื ืชื•ื ื™ื ืื—ืจื™ื ื›ื•ืœืœื™ื ืืช ื’ืจืกืช ื”ืคื•ืจืžื˜, ื”ืกื›ื™ืžื” ื•ื›ืœ ืฆืžื“ื™ ืžืคืชื—-ืขืจืš ื ื•ืกืคื™ื.
  2. ืื•ืจืš ืžื˜ื ื ืชื•ื ื™ื (4 ื‘ืชื™ื).
  3. ืžืกืคืจ ืงืกื PAR1 (4 ื‘ืชื™ื).

ืคื•ืจืžื˜ ืงื•ื‘ืฅ ORC

ืคื•ืจืžื˜ ืงื•ื‘ืฅ ืฉื•ืจื”-ืขืžื•ื“ื” ืื•ืคื˜ื™ืžืœื™ (ืขืžื•ื“ืช ืฉื•ืจื” ืื•ืคื˜ื™ืžืœื™ืช, CRO) ืžืฆื™ืข ื“ืจืš ื™ืขื™ืœื” ืžืื•ื“ ืœืื—ืกืŸ ื ืชื•ื ื™ื ื•ื ื•ืขื“ ืœื”ืชื’ื‘ืจ ืขืœ ื”ืžื’ื‘ืœื•ืช ืฉืœ ืคื•ืจืžื˜ื™ื ืื—ืจื™ื. ืžืื—ืกืŸ ื ืชื•ื ื™ื ื‘ืฆื•ืจื” ืงื•ืžืคืงื˜ื™ืช ืœื—ืœื•ื˜ื™ืŸ, ื”ืžืืคืฉืจ ืœืš ืœื“ืœื’ ืขืœ ืคืจื˜ื™ื ืžื™ื•ืชืจื™ื - ืžื‘ืœื™ ืœื”ื™ื“ืจืฉ ืœื‘ื ื™ื™ืช ืื™ื ื“ืงืกื™ื ื’ื“ื•ืœื™ื, ืžื•ืจื›ื‘ื™ื ืื• ืžืชื•ื—ื–ืงื™ื ื™ื“ื ื™ืช.

ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืคื•ืจืžื˜ ORC:

  1. ืงื•ื‘ืฅ ืื—ื“ ื”ื•ื ื”ืคืœื˜ ืฉืœ ื›ืœ ืžืฉื™ืžื”, ืžื” ืฉืžืคื—ื™ืช ืืช ื”ืขื•ืžืก ืขืœ ื”-NameNode (ืฆื•ืžืช ืฉื).
  2. ืชืžื™ื›ื” ื‘ืกื•ื’ื™ ื ืชื•ื ื™ื ืฉืœ Hive, ื›ื•ืœืœ DateTime, ืกื•ื’ื™ ื ืชื•ื ื™ื ืขืฉืจื•ื ื™ื™ื ื•ืžื•ืจื›ื‘ื™ื (ืžื‘ื ื”, ืจืฉื™ืžื”, ืžืคื” ื•ืื™ื—ื•ื“).
  3. ืงืจื™ืื” ื‘ื•-ื–ืžื ื™ืช ืฉืœ ืื•ืชื• ืงื•ื‘ืฅ ืขืœ ื™ื“ื™ ืชื”ืœื™ื›ื™ื ืฉื•ื ื™ื ืฉืœ RecordReader.
  4. ื™ื›ื•ืœืช ืœืคืฆืœ ืงื‘ืฆื™ื ืœืœื ืกืจื™ืงื” ืœืื™ืชื•ืจ ืกืžื ื™ื.
  5. ื”ืขืจื›ื” ืฉืœ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื”ืขืจื™ืžื” ื”ืžืงืกื™ืžืœื™ืช ื”ืืคืฉืจื™ืช ืœืชื”ืœื™ื›ื™ ืงืจื™ืื”/ื›ืชื™ื‘ื” ื‘ื”ืชื‘ืกืก ืขืœ ืžื™ื“ืข ื‘ื›ื•ืชืจืช ื”ืชื—ืชื•ื ื” ืฉืœ ื”ืงื•ื‘ืฅ.
  6. ืžื˜ื ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘ืคื•ืจืžื˜ ืคืจื•ื˜ื•ืงื•ืœ Buffers ื‘ื™ื ืืจื™ ืกืจื™ืืœื™ื–ืฆื™ื”, ื”ืžืืคืฉืจ ื”ื•ืกืคื” ื•ื”ืกืจื” ืฉืœ ืฉื“ื•ืช.

ืคื•ืจืžื˜ื™ื ืฉืœ ืงื‘ืฆื™ื ื‘ื‘ื™ื’ ื“ืื˜ื”: ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”
ORC ืžืื—ืกืŸ ืื•ืกืคื™ื ืฉืœ ืžื—ืจื•ื–ื•ืช ื‘ืงื•ื‘ืฅ ื‘ื•ื“ื“, ื•ื‘ืชื•ืš ื”ืื•ืกืฃ, ื ืชื•ื ื™ ืžื—ืจื•ื–ืช ืžืื•ื—ืกื ื™ื ื‘ืคื•ืจืžื˜ ืขืžื•ื“ื”.

ืงื•ื‘ืฅ ORC ืžืื—ืกืŸ ืงื‘ื•ืฆื•ืช ืฉืœ ืฉื•ืจื•ืช ื”ื ืงืจืื•ืช ืคืกื™ื ื•ืžื™ื“ืข ืชื•ืžืš ื‘ื›ื•ืชืจืช ื”ืชื—ืชื•ื ื” ืฉืœ ื”ืงื•ื‘ืฅ. ื”-Postscript ื‘ืกื•ืฃ ื”ืงื•ื‘ืฅ ืžื›ื™ืœ ืคืจืžื˜ืจื™ื ืฉืœ ื“ื—ื™ืกื” ื•ื’ื•ื“ืœ ื”ื›ื•ืชืจืช ื”ืชื—ืชื•ื ื” ื”ื“ื—ื•ืกื”.

ื’ื•ื“ืœ ื”ืคืก ื”ืžื•ื’ื“ืจ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื”ื•ื 250 MB. ื‘ืฉืœ ืคืกื™ื ื’ื“ื•ืœื™ื ื›ืœ ื›ืš, ื”ืงืจื™ืื” ืž-HDFS ืžืชื‘ืฆืขืช ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ: ื‘ื‘ืœื•ืงื™ื ืจืฆื™ืคื™ื ื’ื“ื•ืœื™ื.

ื”ื›ื•ืชืจืช ื”ืชื—ืชื•ื ื” ืฉืœ ื”ืงื•ื‘ืฅ ืžืชืขื“ืช ืืช ืจืฉื™ืžืช ื”ื ืชื™ื‘ื™ื ื‘ืงื•ื‘ืฅ, ืืช ืžืกืคืจ ื”ืฉื•ืจื•ืช ื‘ื›ืœ ื ืชื™ื‘ ื•ืืช ืกื•ื’ ื”ื ืชื•ื ื™ื ืฉืœ ื›ืœ ืขืžื•ื“ื”. ื”ืขืจืš ื”ืžืชืงื‘ืœ ืฉืœ ืกืคื™ืจื”, min, max ื•ืกื›ื•ื ืขื‘ื•ืจ ื›ืœ ืขืžื•ื“ื” ื ื›ืชื‘ ื’ื ืฉื.

ื”ื›ื•ืชืจืช ื”ืชื—ืชื•ื ื” ืฉืœ ื”ืจืฆื•ืขื” ืžื›ื™ืœื” ืกืคืจื™ื™ื” ืฉืœ ืžื™ืงื•ืžื™ ื–ืจืžื™ื.

ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื ืชื•ื ื™ ืฉื•ืจื•ืช ื‘ืขืช ืกืจื™ืงืช ื˜ื‘ืœืื•ืช.

ื ืชื•ื ื™ ื”ืื™ื ื“ืงืก ื›ื•ืœืœื™ื ืืช ืขืจื›ื™ ื”ืžื™ื ื™ืžื•ื ื•ื”ืžืงืกื™ืžื•ื ืขื‘ื•ืจ ื›ืœ ืขืžื•ื“ื” ื•ืืช ืžื™ืงื•ื ื”ืฉื•ืจื•ืช ื‘ื›ืœ ืขืžื•ื“ื”. ืื™ื ื“ืงืกื™ ORC ืžืฉืžืฉื™ื ืจืง ืœื‘ื—ื™ืจืช ืคืกื™ื ื•ืงื‘ื•ืฆื•ืช ืฉื•ืจื•ืช, ืœื ืœืžืขื ื” ืœืฉืื™ืœืชื•ืช.

ื”ืฉื•ื•ืื” ื‘ื™ืŸ ืคื•ืจืžื˜ื™ื ืฉื•ื ื™ื ืฉืœ ืงื‘ืฆื™ื

ืื‘ืจื• ืœืขื•ืžืช ืคืจืงื˜

  1. Avro ื”ื•ื ืคื•ืจืžื˜ ืื—ืกื•ืŸ ืฉื•ืจื”, ื‘ืขื•ื“ ืคืจืงื˜ ืžืื—ืกืŸ ื ืชื•ื ื™ื ื‘ืขืžื•ื“ื•ืช.
  2. ืคืจืงื˜ ืžืชืื™ื ื™ื•ืชืจ ืœืฉืื™ืœืชื•ืช ืื ืœื™ื˜ื™ื•ืช, ื›ืœื•ืžืจ ืคืขื•ืœื•ืช ืงืจื™ืื” ื•ืฉืื™ืœืชืช ื ืชื•ื ื™ื ื™ืขื™ืœื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืžืืฉืจ ื›ืชื™ื‘ื”.
  3. ืคืขื•ืœื•ืช ื”ื›ืชื™ื‘ื” ื‘ืื‘ืจื• ืžืชื‘ืฆืขื•ืช ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ ืžืืฉืจ ื‘ืคืจืงื˜.
  4. ืื‘ืจื• ืขื•ืกืง ื‘ื”ืชืคืชื—ื•ืช ืžืขื’ืœื™ื ื‘ืฆื•ืจื” ื‘ื•ื’ืจืช ื™ื•ืชืจ. ืคืจืงื˜ ืชื•ืžืš ืจืง ื‘ื”ื•ืกืคื” ืฉืœ ืกื›ื™ืžื”, ื‘ืขื•ื“ ืฉืื‘ืจื• ืชื•ืžื›ืช ื‘ืื‘ื•ืœื•ืฆื™ื” ืจื‘ ืชื›ืœื™ืชื™ืช, ื›ืœื•ืžืจ, ื”ื•ืกืคื” ืื• ืฉื™ื ื•ื™ ืฉืœ ืขืžื•ื“ื•ืช.
  5. ืคืจืงื˜ ืื™ื“ื™ืืœื™ ืœืฉืื™ืœืชื” ืฉืœ ืชืช-ืงื‘ื•ืฆื” ืฉืœ ืขืžื•ื“ื•ืช ื‘ื˜ื‘ืœื” ืžืจื•ื‘ืช ืขืžื•ื“ื•ืช. Avro ืžืชืื™ืžื” ืœืคืขื•ืœื•ืช ETL ืฉื‘ื”ืŸ ืื ื• ืžื‘ืฆืขื™ื ืฉืื™ืœืชื•ืช ื‘ื›ืœ ื”ืขืžื•ื“ื•ืช.

ORC ื ื’ื“ ืคืจืงื˜

  1. ืคืจืงื˜ ืžืื—ืกืŸ ื ืชื•ื ื™ื ืžืงื•ื ื ื™ื ื˜ื•ื‘ ื™ื•ืชืจ.
  2. ORC ืžืชืื™ื ื™ื•ืชืจ ืœ-Phoddown.
  3. ORC ืชื•ืžืš ื‘ืžืืคื™ื™ื ื™ ACID.
  4. ORC ื“ื•ื—ืก ื ืชื•ื ื™ื ื˜ื•ื‘ ื™ื•ืชืจ.

ืžื” ืขื•ื“ ืœืงืจื•ื ื‘ื ื•ืฉื:

  1. ื ื™ืชื•ื— ื‘ื™ื’ ื“ืื˜ื” ื‘ืขื ืŸ: ืื™ืš ื—ื‘ืจื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžื•ื›ื•ื•ื ืช ื ืชื•ื ื™ื.
  2. ืžื“ืจื™ืš ืฆื ื•ืข ืœืกื›ื™ืžื•ืช ืžืกื“ื™ ื ืชื•ื ื™ื.
  3. ืขืจื•ืฅ ื”ื˜ืœื’ืจื ืฉืœื ื• ืขืœ ื˜ืจื ืกืคื•ืจืžืฆื™ื” ื“ื™ื’ื™ื˜ืœื™ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”