рдЯреЛрд▓реА
рдХрд┐рди рдлрд░рдХ рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ?
HDFS-рд╕рдХреНрд╖рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЬрд╕реНрддреИ MapReduce рд░ Spark рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдкреНрд░рдореБрдЦ рдкреНрд░рджрд░реНрд╢рди рдмрд╛рдзрд╛ рдпреЛ рдбреЗрдЯрд╛ рдЦреЛрдЬреА рдЧрд░реНрди, рдкрдвреНрди рд░ рд▓реЗрдЦреНрди рд▓рд╛рдЧреНрдиреЗ рд╕рдордп рд╣реЛред рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдареВрд▓рд╛ рдбрд╛рдЯрд╛ рд╕реЗрдЯрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрди рдХрдард┐рдирд╛рдИрд▓реЗ рдЬрдЯрд┐рд▓ рд╣реБрдиреНрдЫрдиреН рдпрджрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдирд┐рд╢реНрдЪрд┐рдд рдПрдХрдХреЛ рд╕рдЯреНрдЯрд╛ рд╡рд┐рдХрд╕рд┐рдд рдпреЛрдЬрдирд╛ рдЫ, рд╡рд╛ рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣реА рднрдгреНрдбрд╛рд░рдг рдЕрд╡рд░реЛрдзрд╣рд░реВ рдЫрдиреНред
рдареВрд▓рд╛ рдбрд╛рдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛ рднрдгреНрдбрд╛рд░рдг рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдорд╛ рд▓реЛрдб рдмрдвреНрдЫ - Hadoop рд▓реЗ рддреНрд░реБрдЯрд┐ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдкрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред рдбрд┐рд╕реНрдХрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░реЛрд╕реЗрд╕рд░, рдиреЗрдЯрд╡рд░реНрдХ, рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдгрд╛рд▓реА, рд░ рдпрддрд┐ рд▓реЛрдб рд╣реБрдиреНрдЫрдиреНред рдбрд╛рдЯрд╛рдХреЛ рдорд╛рддреНрд░рд╛ рдмрдвреНрджреИ рдЬрд╛рдБрджрд╛, рддреНрдпрд╕рд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рд░ рднрдгреНрдбрд╛рд░рдгрдХреЛ рд▓рд╛рдЧрдд рдкрдирд┐ рдмрдвреНрдЫред
рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛рд╣рд░реВ
- рдЫрд┐рдЯреЛ рдкрдвреНрдиреЗ рд╕рдордпред
- рдЫрд┐рдЯреЛ рд░реЗрдХрд░реНрдбрд┐рдЩ рд╕рдордпред
- рд╕рд╛рдЭрд╛ рдлрд╛рдЗрд▓рд╣рд░реВред
- рд╕реНрдХреАрдорд╛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред
- рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрдореНрдкреНрд░реЗрд╕рди рд╕рдорд░реНрдердиред
рдХреЗрд╣реА рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛рд╣рд░реВ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐, рдЕрд░реВрд╣рд░реВ рдердк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд░ рдХреЗрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реЛред рддреНрдпрд╕реИрд▓реЗ рдЫрдиреЛрдЯ рд╕рд╛рдБрдЪреНрдЪреИ рдареВрд▓реЛ рдЫред
Avro рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛
рдЧрд░реНрди рдбрд╛рдЯрд╛ рдХреНрд░рдорд┐рдХрд░рдг Avro рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ - рдпреЛ рд╕реНрдЯреНрд░рд┐рдЩ рдЖрдзрд╛рд░рд┐рдд, рддреНрдпреЛ рд╣реЛ, Hadoop рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдврд╛рдБрдЪрд╛ред рдпрд╕рд▓реЗ рд╕реНрдХрд┐рдорд╛рд▓рд╛рдИ JSON рдврд╛рдБрдЪрд╛рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫ, рдпрд╕рд▓рд╛рдИ рдкрдвреНрди рд░ рдХреБрдиреИ рдкрдирд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред рдбрд╛рдЯрд╛ рдЖрдлреИрдВ рдмрд╛рдЗрдирд░реА рдврд╛рдБрдЪрд╛рдорд╛ рдЫ, рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рд░ рдХреБрд╢рд▓ред
Avro рдХреЛ рдХреНрд░рдордмрджреНрдз рдкреНрд░рдгрд╛рд▓реА рднрд╛рд╖рд╛ рддрдЯрд╕реНрде рдЫред рдлрд╛рдЗрд▓рд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд╣рд╛рд▓ C, C++, C#, Java, Python рд░ Rubyред
Avro рдХреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рднрдиреЗрдХреЛ рдбрд╛рдЯрд╛ рд╕реНрдХреАрдорд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рдмрд▓рд┐рдпреЛ рд╕рдорд░реНрдерди рд╣реЛ рдЬреБрди рд╕рдордпрд╕рдБрдЧреИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдЕрд░реНрдерд╛рддреН, рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдиреНрдЫред Avro рд▓реЗ рд╕реНрдХрд┐рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдмреБрдЭреНрджрдЫ тАФ рдореЗрдЯрд╛рдЙрдиреЗ, рдердкреНрдиреЗ, рд╡рд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗред
Avro рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдИрд▓реЗ рдПрдЙрдЯрд╛ рд░реЗрдХрд░реНрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╕рдорд╛ рдПрд░реЗ, рдПрдХ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдкреНрд░рдХрд╛рд░, рд░ рд╕рдмрд░реЗрдХрд░реНрдб рд╣реБрдиреНрдЫред
рдпреЛ рдврд╛рдБрдЪрд╛ рдбреЗрдЯрд╛ рддрд╛рд▓рдХреЛ рдЕрд╡рддрд░рдг (рд╕рдВрдХреНрд░рдордг) рдХреНрд╖реЗрддреНрд░рдорд╛ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫ (
рддреНрдпрд╕реЛрднрдП, рдпреЛ рдврд╛рдБрдЪрд╛ рдирд┐рдореНрди рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрдЯрд╛ рддрд╛рд▓рдХреЛ рдЕрд╡рддрд░рдг рдХреНрд╖реЗрддреНрд░рдорд╛ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреБрдХреНрдд рдЫ:
- рдпрд╕ рдХреНрд╖реЗрддреНрд░рдХреЛ рдбрд╛рдЯрд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдердк рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рдкреВрд░реНрдгрддрд╛рдорд╛ рдкрдврд┐рдиреНрдЫ - рд░ рдкрдЩреНрдХреНрддрд┐-рдЖрдзрд╛рд░рд┐рдд рдврд╛рдБрдЪрд╛ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдмрдвреА рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд╣реБрдиреНрдЫред
- рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓реЗ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдлрд╛рдЗрд▓рд╣рд░реВрдмрд╛рдЯ рд╕реНрдХрд┐рдорд╛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫрдиреН - рдмрд╛рд╣реНрдп рдореЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдгрдорд╛ рд╕реНрдХрд┐рдорд╛рд╣рд░реВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред
- рдореВрд▓ рд╕реНрдХреАрдорд╛рдорд╛ рдХреБрдиреИ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫ (рд╕реНрдХреАрдорд╛ рд╡рд┐рдХрд╛рд╕)ред
рдкрд╛рд░реНрдХреЗрдЯ рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛
Parquet Hadoop рдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ рд╣реЛ рдЬреБрди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ рд╕рдорддрд▓ рд╕реНрддрдореНрдн рдврд╛рдБрдЪрд╛рдорд╛ рдиреЗрд╕реНрдЯреЗрдб рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ.
рдкрд░рдореНрдкрд░рд╛рдЧрдд рдкрдЩреНрдХреНрддрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рддреБрд▓рдирд╛рдорд╛, рдкрд╛рд░реНрдХреЗрдЯ рднрдгреНрдбрд╛рд░рдг рд░ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЫред
рдпреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╡рд┐рд╕реНрддреГрдд (рдзреЗрд░реИ рд╕реНрддрдореНрднрд╣рд░реВ) рддрд╛рд▓рд┐рдХрд╛рдмрд╛рдЯ рд╡рд┐рд╢реЗрд╖ рд╕реНрддрдореНрднрд╣рд░реВ рдкрдвреНрдиреЗ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рдЫред рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрдореНрднрд╣рд░реВ рдкрдврд┐рдиреНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ I/O рдиреНрдпреВрдирддрдо рд░рд╛рдЦрд┐рдПрдХреЛ рдЫред
рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рд╡рд┐рд╖рдпрд╡рд╕реНрддреБ рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛: Hadoop рдорд╛ Parquet рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕реНрддрдореНрдн-рдЖрдзрд╛рд░рд┐рдд - рдЕрд░реНрдерд╛рддреН рд╕реНрддрдореНрдн - рдврд╛рдБрдЪрд╛ рдХреЗ рд╣реЛ рд╣реЗрд░реМрдВред рдпреЛ рдврд╛рдБрдЪрд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рдорд╛рдирд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред
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 рдЕрдкрд░реЗрд╢рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдШрдЯрд╛рдЙрдБрдЫ рдХрд┐рдирднрдиреЗ рдХреЗрд╡рд▓ рдЗрдЪреНрдЫрд┐рдд рд╕реНрддрдореНрднрд╣рд░реВ рдкрдврд┐рдиреНрдЫрдиреНред
рдЕрджреНрд╡рд┐рддреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ рдордзреНрдпреЗ рдПрдХ
Hadoop рдорд╛ Parquet рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ рдмреБрдЭреНрди, рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рд╕рд░реНрддрд╣рд░реВ рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
- рддрд╛рд░рд╣рд░реВрдХреЛ рд╕рдореВрд╣ (рдкрдЩреНрдХреНрддрд┐ рд╕рдореВрд╣): рдкрдЩреНрдХреНрддрд┐рд╣рд░реВрдорд╛ рдбреЗрдЯрд╛рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рддреЗрд░реНрд╕реЛ рд╡рд┐рднрд╛рдЬрдиред рдкрдЩреНрдХреНрддрд┐ рд╕рдореВрд╣рд▓реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯрдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рдЯреБрдХреНрд░рд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред
- рд╕реНрддрдореНрдн рдЯреБрдХреНрд░рд╛ (рд╕реНрддрдореНрдн рдЯреБрдХреНрд░рд╛): рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрддрдореНрдн рдХреЛ рдПрдХ рдЯреБрдХреНрд░рд╛ред рдпреА рд╕реНрддрдореНрдн рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВрдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдореВрд╣рдорд╛ рдмрд╕реНрдЫрдиреН рд░ рдлрд╛рдЗрд▓рдорд╛ рд╕рдиреНрдирд┐рд╣рд┐рдд рд╣реБрдиреЗ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░рд┐рдиреНрдЫред
- рдкреГрд╖реНрда (рдкреГрд╖реНрда): рд╕реНрддрдореНрднрдХрд╛ рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдПрдХ рдкрдЫрд┐ рдЕрд░реНрдХреЛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдкреГрд╖реНрдард╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реБрдиреНрдЫрдиреНред рдкреГрд╖реНрдард╣рд░реВрдорд╛ рд╕рд╛рдЭрд╛ рд╢реАрд░реНрд╖рдХ рдЫ, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдкрдвреНрджрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХрд╣рд░реВрд▓рд╛рдИ рдЫреЛрдбреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдпрд╣рд╛рдБ рд╢реАрд░реНрд╖рдХрдорд╛ рдХреЗрд╡рд▓ рдЬрд╛рджреБрдИ рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ PAR1 (рек рдмрд╛рдЗрдЯреНрд╕) рдЬрд╕рд▓реЗ рдлрд╛рдЗрд▓рд▓рд╛рдИ рдкрд░реНрдХреЗрдЯ рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдЫред
рдлреБрдЯрд░рд▓реЗ рдирд┐рдореНрди рднрдиреНрдЫ:
- рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдлрд╛рдЗрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ред рдкрдвреНрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЪрд╛рд╕реЛрдХрд╛ рд╕рдмреИ рд╕реНрддрдореНрдн рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рдлрд╛рдЗрд▓рдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрдвреНрдиреБ рдкрд░реНрдЫред рддреНрдпрд╕рдкрдЫрд┐ рд╕реНрддрдореНрднрдХрд╛ рднрд╛рдЧрд╣рд░реВ рдХреНрд░рдорд╢рдГ рдкрдвреНрдиреБрдкрд░реНрдЫред рдЕрдиреНрдп рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рдврд╛рдБрдЪрд╛ рд╕рдВрд╕реНрдХрд░рдг, рд╕реНрдХреАрдорд╛, рд░ рдХреБрдиреИ рдкрдирд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдЮреНрдЬреА-рдорд╛рди рдЬреЛрдбреАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред
- рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд▓рдореНрдмрд╛рдЗ (рек рдмрд╛рдЗрдЯреНрд╕)ред
- рдЬрд╛рджреБрдИ рд╕рдВрдЦреНрдпрд╛ PAR1 (рек рдмрд╛рдЗрдЯреНрд╕)ред
ORC рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛
рдЕрдиреБрдХреВрд▓рд┐рдд рдкрдЩреНрдХреНрддрд┐-рд╕реНрддрдореНрдн рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ (рдЕрдиреБрдХреВрд▓рд┐рдд рдкрдЩреНрдХреНрддрд┐ рд╕реНрддрдореНрдн,
ORC рдврд╛рдБрдЪрд╛рдХрд╛ рдлрд╛рдЗрджрд╛рд╣рд░реВ:
- рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ, рдЬрд╕рд▓реЗ NameNode (рдирд╛рдо рдиреЛрдб) рдорд╛ рд▓реЛрдб рдШрдЯрд╛рдЙрдБрдЫред
- Hive рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди, рдорд┐рддрд┐ рд╕рдордп, рджрд╢рдорд▓рд╡ рд░ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ (рд╕рдВрд░рдЪрдирд╛, рд╕реВрдЪреА, рдирдХреНрд╕рд╛ рд░ рд╕рдВрдШ) рд╕рд╣рд┐рддред
- рд╡рд┐рднрд┐рдиреНрди RecordReader рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдПрдЙрдЯреИ рдлрд╛рдЗрд▓рдХреЛ рдПрдХрд╕рд╛рде рдкрдврд╛рдЗред
- рдорд╛рд░реНрдХрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрдпрд╛рди рдирдЧрд░реА рдлрд╛рдЗрд▓рд╣рд░реВ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ред
- рдлрд╛рдЗрд▓ рдлреБрдЯрд░рдорд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдкрдвреНрдиреЗ/рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдзрд┐рдХрддрдо рд╕рдореНрднрд╛рд╡рд┐рдд рд╣рд┐рдк рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрдирдХреЛ рдЕрдиреБрдорд╛рдиред
- рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░реЛрдЯреЛрдХрд▓ рдмрдлрд░ рдмрд╛рдЗрдирд░реА рдХреНрд░рдорд┐рдХрд░рдг рдврд╛рдБрдЪрд╛рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдердкреНрди рд░ рд╣рдЯрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
ORC рд▓реЗ рдПрдХрд▓ рдлрд╛рдЗрд▓рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрдХреЛ рд╕рдЩреНрдХрд▓рди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫ, рд░ рд╕рдЩреНрдХрд▓рди рднрд┐рддреНрд░, рд╕реНрдЯреНрд░рд┐рдЩ рдбрд╛рдЯрд╛ рд╕реНрддрдореНрдн рдврд╛рдБрдЪрд╛рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫред
рдПрдЙрдЯрд╛ ORC рдлрд╛рдЗрд▓рд▓реЗ рдлрд╛рдЗрд▓рдХреЛ рдлреБрдЯрд░рдорд╛ рд╕реНрдЯреНрд░рд╛рдЗрдк рд░ рд╕рдорд░реНрдерди рдЬрд╛рдирдХрд╛рд░реА рднрдирд┐рдиреЗ рд▓рд╛рдЗрдирд╣рд░реВрдХреЛ рд╕рдореВрд╣ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдЫред рдлрд╛рдЗрд▓рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд░рд╣реЗрдХреЛ рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдХрдореНрдкреНрд░реЗрд╕рди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рдлреБрдЯрд░рдХреЛ рд╕рд╛рдЗрдЬ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрдЯреНрдЯреА рдЖрдХрд╛рд░ 250 MB рд╣реЛред рддреНрдпрд╕реНрддрд╛ рдареВрд▓рд╛ рд╕реНрдЯреНрд░рд┐рдкрд╣рд░реВрдХрд╛ рдХрд╛рд░рдг, HDFS рдмрд╛рдЯ рдкрдвреНрдиреЗ рдХрд╛рд░реНрдп рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЧрд░рд┐рдиреНрдЫ: рдареВрд▓рд╛ рд╕рдиреНрдирд┐рд╣рд┐рдд рдмреНрд▓рдХрд╣рд░реВрдорд╛ред
рдлрд╛рдЗрд▓ рдлреБрдЯрд░рд▓реЗ рдлрд╛рдЗрд▓рдорд╛ рд░рд╣реЗрдХрд╛ рд▓реЗрдирд╣рд░реВрдХреЛ рд╕реВрдЪреА, рдкреНрд░рддрд┐ рд▓реЗрди рдкрдЩреНрдХреНрддрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛, рд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд░реЗрдХрд░реНрдб рдЧрд░реНрджрдЫред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рд▓рд╛рдЧрд┐ рдЧрдгрдирд╛, рдиреНрдпреВрдирддрдо, рдЕрдзрд┐рдХрддрдо рд░ рдпреЛрдЧрдХреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдорд╛рди рдкрдирд┐ рддреНрдпрд╣рд╛рдБ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫред
рд╕реНрдЯреНрд░рд┐рдкрдХреЛ рдлреБрдЯрд░рд▓реЗ рд╕реНрдЯреНрд░рд┐рдо рд╕реНрдерд╛рдирд╣рд░реВрдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред
рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрджрд╛ рдкрдЩреНрдХреНрддрд┐ рдбреЗрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдбреЗрдЯрд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рд▓рд╛рдЧрд┐ рдиреНрдпреВрдирддрдо рд░ рдЕрдзрд┐рдХрддрдо рдорд╛рдирд╣рд░реВ рд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдорд╛ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВрдХреЛ рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред ORC рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рд╕реНрдЯреНрд░рд┐рдкрд╣рд░реВ рд░ рдкрдЩреНрдХреНрддрд┐ рд╕рдореВрд╣рд╣рд░реВ рдЪрдпрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рд╣реЛрдЗрдиред
рд╡рд┐рднрд┐рдиреНрди рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛рд╣рд░реВрдХреЛ рддреБрд▓рдирд╛
рдкрд░реНрдХреЗрдЯрдХреЛ рддреБрд▓рдирд╛рдорд╛ Avro
- Avro рдПрдХ рдкрдЩреНрдХреНрддрд┐ рднрдгреНрдбрд╛рд░рдг рдврд╛рдБрдЪрд╛ рд╣реЛ, рдЬрдмрдХрд┐ Parquet рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫред
- рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ Parquet рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рдЫ, рдпрд╕рдХреЛ рдЕрд░реНрде рдкрдвреНрдиреЗ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд░ рдХреНрд╡реЗрд░реА рдбреЗрдЯрд╛ рд▓реЗрдЦреНрдиреБ рднрдиреНрджрд╛ рдзреЗрд░реИ рдХреБрд╢рд▓ рдЫрдиреНред
- Avro рдорд╛ рд▓реЗрдЦрди рдХрд╛рд░реНрдпрд╣рд░реВ Parquet рдорд╛ рднрдиреНрджрд╛ рдмрдвреА рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫред
- рдПрднреНрд░реЛрд▓реЗ рд╕рд░реНрдХрд┐рдЯ рдЗрднреЛрд▓реБрд╕рдирд╕рдБрдЧ рдмрдвреА рдкрд░рд┐рдкрдХреНрд╡рддрд╛рдХрд╛ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрдЫред Parquet рд▓реЗ рд╕реНрдХрд┐рдорд╛ рдердкреНрдиреЗ рдорд╛рддреНрд░ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬрдмрдХрд┐ Avro рд▓реЗ рдмрд╣реБрдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЕрд░реНрдерд╛рддреН рд╕реНрддрдореНрднрд╣рд░реВ рдердкреНрдиреЗ рд╡рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗред
- рдмрд╣реБ-рд╕реНрддрдореНрдн рддрд╛рд▓рд┐рдХрд╛рдорд╛ рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рд╕рдмрд╕реЗрдЯ рдХреНрд╡реЗрд░реА рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдХреЗрдЯ рдЖрджрд░реНрд╢ рд╣реЛред Avro ETL рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫ рдЬрд╣рд╛рдБ рд╣рд╛рдореА рд╕рдмреИ рд╕реНрддрдореНрднрд╣рд░реВ рдХреНрд╡реЗрд░реА рдЧрд░реНрдЫреМрдВред
ORC рдмрдирд╛рдо рдкрд╛рд░реНрдХреНрд╡реЗрдЯ
- рдкрд╛рд░реНрдХреЗрдЯрд▓реЗ рдиреЗрд╕реНрдЯреЗрдб рдбрд╛рдЯрд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫред
- ORC pushdown predicate рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЙрдкрдпреБрдХреНрдд рдЫред
- ORC рд▓реЗ ACID рдЧреБрдгрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред
- ORC рд▓реЗ рдбреЗрдЯрд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░реНрдЫред
рдмрд┐рд╖рдпрдорд╛ рдЕрд░реБ рдХреЗ рдкрдвреНрдиреБ рд╣реЛрд▓рд╛:
рдХреНрд▓рд╛рдЙрдбрдорд╛ рдареВрд▓реЛ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рдХрд╕рд░реА рдХрдореНрдкрдиреА рдбреЗрдЯрд╛-рдЙрдиреНрдореБрдЦ рдмрдиреНрди рд╕рдХреНрдЫ .рдбрд╛рдЯрд╛рдмреЗрд╕ рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдореНрд░ рдЧрд╛рдЗрдб .рдбрд┐рдЬрд┐рдЯрд▓ рд░реВрдкрд╛рдиреНрддрд░рдг рдмрд╛рд░реЗ рд╣рд╛рдореНрд░реЛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЪреНрдпрд╛рдирд▓ .
рд╕реНрд░реЛрдд: www.habr.com