рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! рдореЗрд░рд╛ рдирд╛рдо рдирд┐рдХреЛрд▓рд╛рдИ рдЗрдЬрд╝рд┐рдХреЛрд╡ рд╣реИ, рдореИрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдореЗрдВ Sberbank Technologies рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рдЬрд╛рд╡рд╛ рдореЗрдВ 15 рд╕рд╛рд▓ рдХреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреАрдЫреЗред рдореИрдВ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдХрдорд┐рдЯреЗрдЯрд░ рдФрд░ рдЕрдкрд╛рдЪреЗ рдХрд╛рдлреНрдХрд╛ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рд╣реВрдВред
рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдЖрдкрдХреЛ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдореАрдЯрдЕрдк рдкрд░ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдореАрдЯ рдХреЗ рд╕рд╛рде рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рд╣реИрдВ, рдЗрд╕ рдкрд░ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓реЗрдЧрд╛ред

рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдРрд╕рд╛ рдЙрддреНрдкрд╛рдж рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдХреЛ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореГрджреНрдз рдПрдкреАрдЖрдИ рд╣реИред рдЙрддреНрдкрд╛рдж рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ SQL рдЬреИрд╕рд╛ рдХреНрд╡реЗрд░реА рдЗрдВрдЬрди рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдХрдИ рд╕реНрд░реЛрдд рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рд╡рд╣ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред
рд╕реНрдкрд╛рд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдореБрдЦ рдЕрдореВрд░реНрдд рдореЗрдВ рд╕реЗ рдПрдХ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо, рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣реИред рдПрдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдПрдХ рд╕реНрд░реЛрдд рдЬреЛ рд╕рдВрд░рдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрдн рдХреА рд╕рдВрд░рдЪрдирд╛, рдкреНрд░рдХрд╛рд░, рдЙрд╕рдХрд╛ рдирд╛рдо, рдЖрджрд┐ рдЬреНрдЮрд╛рдд рд╣реИред рдбреЗрдЯрд╛ рдлреНрд░реЗрдореНрд╕ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ json рдлрд╛рдЗрд▓реЗрдВ, рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕, рд╡рд┐рднрд┐рдиреНрди рд╣рдбреВрдк рд╕рд┐рд╕реНрдЯрдо рдФрд░ Apache рдЗрдЧреНрдирд╛рдЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕реНрдкрд╛рд░реНрдХ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд╣реИред рдЬрдм рдЖрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛, рд╕реНрдкрд╛рд░реНрдХ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рд╕реАрд╡рд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдмрдЪрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд▓рд╛рдЧреВ рдХреА рд╣реИрдВ
- Apache рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ SQL рдЯреЗрдмрд▓ рдХреЛ рдЗрдЧреНрдиреЛрд░ рдХрд░рддрд╛ рд╣реИред
- рдЕрдкрд╛рдЪреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ SQL рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдХрд░реЗрдВред
- рдЗрдЧреНрдирд╛рдЗрдЯреЗрд╕реНрдкрд╛рд░реНрдХрд╕рд┐рд╢рди рдХреЗ рдЕрдВрджрд░ рдЗрдЧреНрдирд╛рдЗрдЯрд╕рд╛рдЗрдЯреНрд╕ - "рд╣рд╛рде рд╕реЗ" рдкрдВрдЬреАрдХреГрдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА рдореМрдЬреВрджрд╛ рдЗрдЧреНрдирд╛рдЗрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдПрд╕рдХреНрдпреВрдПрд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди - рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рдЕрдВрджрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдЕрдкрд╛рдЪреЗ рд╕реНрдкрд╛рд░реНрдХ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рдЯреЗрдмрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред Spark рдореЗрдВ рдмрдирдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА DataFrame рдХреЛ Apache Ignite SQL рдЯреЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдЖрдкрдХреЛ "рд╣рд╛рде рд╕реЗ" рдкрдВрдЬреАрдХреГрдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдкрд╛рд░реНрдХ рд╕рддреНрд░ рдореЗрдВ рд╕рднреА рдореМрдЬреВрджрд╛ рдЗрдЧреНрдирд╛рдЗрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдорд╛рдирдХ рд╕реНрдкрд╛рд░реНрдХрд╕реИрд╢рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЕрдВрджрд░ рдЗрдЧреНрдирд╛рдЗрдЯреЗрдХреНрдЯрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП - рдЗрдЧреНрдирд╛рдЗрдЯреЗрд╕реНрдкрд╛рд░реНрдХрд╕реЗрд╢рдиред
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕реНрдкрд╛рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдПрдХ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ: рдХреМрди рд╕реА рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдХреМрди рд╕реЗ рдХреЙрд▓рдо рдЙрдирдореЗрдВ рд╣реИрдВ, рдЖрджрд┐ред рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рддреЛ рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреИрдЯрд▓реЙрдЧ рд╕реЗ рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИ рдФрд░ SQL рдЗрдВрдЬрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ, рд╕рднреА рд░реАрдб рдЯреЗрдмрд▓ (рдпрд╣ рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрдЧреНрдирд╛рдЗрдЯ, рд╣рдбреЛрдк) рдХреЛ рд╕рддреНрд░ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдирддреАрдЬрддрди, рдЖрдкрдХреЛ рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ SQL рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рд╕реНрдкрд╛рд░реНрдХ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред
рдЬрд┐рд╕ рдбреЗрдЯрд╛ рдХреЛ рд╣рдордиреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╕рднреА рдЗрдЧреНрдирд╛рдЗрдЯ рдЯреЗрдмрд▓ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ? рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдмрд╛рд╣рд░реА рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдХреИрдЯрд▓реЙрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░, рдЪреВрдВрдХрд┐ рд╕реНрдкрд╛рд░реНрдХ рд╣рдбреЛрдк рд╕реЗ рдмрд╛рд╣рд░ рдЖрдпрд╛ рдерд╛, рдпрд╣ рдХреЗрд╡рд▓ рд╣рд╛рдЗрд╡ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЛ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдХреНрд╕рд░ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд SQL рдкреНрд░рд╢реНрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓рд╛рдЧреВ рдХреА рдЬреЛ рдЖрдкрдХреЛ ~ рдФрд░ sms ~ рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдЧреНрдирд╛рдЗрдЯ рдЯреЗрдмрд▓ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдФрд░ рд╢реБрд░реВ рдореЗрдВ рд╕реНрдкрд╛рд░реНрдХ рд╕рдореБрджрд╛рдп рдореЗрдВ рдЗрд╕ рдкреИрдЪ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдЬрд╡рд╛рдм рдорд┐рд▓рд╛: рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдЪ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рджрд┐рдпрд╛ред
рдЕрдм рдЗрдЧреНрдирд╛рдЗрдЯ рдХреИрдЯрд▓реЙрдЧ рд╕реНрдкрд╛рд░реНрдХ рдХреА рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рддреНрд░ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдкрд╛рд░реНрдХрд╕реЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдЖрдк рдЕрдиреБрд░реЛрдз, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдПрдХреНрд╕рдЯрд░реНрдирд╛рд╕реНрдЯрд┐рдХ рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрдЧреНрдирд╛рдЗрдЯ рдУрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╢рди, рдЬреЛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрд╕рдХреНрдпреВрдПрд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди - рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рдЕрдВрджрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрдм рдЬреНрд╡рд╛рдЗрдирд┐рдВрдЧ, рдЧреНрд░реБрдкрд┐рдВрдЧ, рдПрдЧреНрд░реАрдЧреЗрдЯ рдХреИрд▓рдХреБрд▓реЗрд╢рди рдФрд░ рдЕрдиреНрдп рдЬрдЯрд┐рд▓ SQL рдХреНрд╡реЗрд╢реНрдЪрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдкрд╛рд░реНрдХ рдкрдВрдХреНрддрд┐ рдореЛрдб рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЬреНрд╡рд╛рдЗрди рдпрд╛ рдЧреНрд░реБрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдкрд╛рд░реНрдХ рдЯреЗрдмрд▓ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╡рд░реНрдХрд░ рдХреЛ рдЙрд╕рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд┐рд▓реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрдиреНрд╣реЗрдВ рдЧреНрд░реБрдк рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЕрдиреНрдп рдПрд╕рдХреНрдпреВрдПрд▓ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИред рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдЧреНрдирд╛рдЗрдЯ рдЦреБрдж рдореЗрдВ рдПрдХ рд╡рд┐рддрд░рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХрд╛ рдЬреНрдЮрд╛рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реНрд╡рдпрдВ рд╣реА рд╕рдореБрдЪреНрдЪрдп рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рдШрдЯрд╛рдирд╛ рд╣реЛрдЧрд╛, рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЙрдард╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИред
рд╕реНрдкрд╛рд░реНрдХ рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк SQL рдХреНрд╡реЗрд░реА рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ SQL рдХреНрд╡реЗрд░реА рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЧрддрд┐ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рддреБрд░рдВрдд рд╕рдореВрд╣реАрдХреГрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИ - рдпрд╣ рддрд╕реНрд╡реАрд░ рдХрд╛ рдирд┐рдЪрд▓рд╛ рдЖрдзрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдХреЛрдИ рдЬрд╝реВрдХреАрдкрд░ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдкрд╛рдВрдЪ рдиреЛрдбреНрд╕ рд╣реИрдВред рд╕реНрдкрд╛рд░реНрдХ рд╡рд░реНрдХрд░реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд░ рдХреЗ рдЕрдВрджрд░ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЛрдб рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЛрдб рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЗрдЧреНрдирд╛рдЗрдЯреЗрд╕реНрдкрд╛рд░реНрдХрд╕рд┐рди рдХреЗ рдЕрдВрджрд░ рдЙрдЧрддрд╛ рд╣реИред
рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдХрд░реЗрдВ
рд╣рдо рдХреЛрдб рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ: SQL рдЯреЗрдмрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкрдврд╝реЗрдВ? рд╕реНрдкрд╛рд░реНрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ: рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреБрдЫ рдбреЗрдЯрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рд░рдВрддрд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ - рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде, рдЬреЛ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╕рдордп рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╛рд░реНрдХ рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рд╣рдо рд╡рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред
spark.read .format(FORMAT_IGNITE) .option(OPTION_CONFIG_FILE, TEST_CONFIG_FILE) .option(OPTION_TABLE, "person") .load()
рд╣рдо рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реЗ, рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рд╕реЗ - рд╣рдо рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдм рдХреБрдЫ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд╕реНрдкрд╛рд░реНрдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рджреЗрддреЗ рд╣реИрдВ, рд╣рдо рдПрдХ рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред рдЙрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рд╣рдо рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдбреЗрдЯрд╛ рдмрд┐рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдП рдмрд╕ рдЕрдкрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЦрд┐рд░ рдореЗрдВ рд╕реЗрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рд╣реИред
tbl.write. format(FORMAT_IGNITE). option(OPTION_CONFIG_FILE, CFG_PATH). option(OPTION_TABLE, tableName). option(OPTION_CREATE_TABLE_PRIMARY_KEY_FIELDS, pk). save
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
LoadDataExample.scalaрдпрд╣ рд╕реНрдкрд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╣рд▓реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдлреБрдЯрдмреЙрд▓ рдореИрдЪреЛрдВ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдЪреБрдирд╛, рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рдВрд╕рд╛рдзрди рд╕реЗ рдЖрдВрдХрдбрд╝реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдПред рдЗрд╕рдореЗрдВ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ: рд▓реАрдЧ, рдореИрдЪ, рдЦрд┐рд▓рд╛рдбрд╝реА, рдЯреАрдо, рдЦрд┐рд▓рд╛рдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рдЯреАрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ - рдбреЗрдЯрд╛ рдЬреЛ рдпреВрд░реЛрдкреАрдп рджреЗрд╢реЛрдВ (рдЗрдВрдЧреНрд▓реИрдВрдб, рдлреНрд░рд╛рдВрд╕, рд╕реНрдкреЗрди, рдЖрджрд┐) рдХреА рд▓реАрдЧреЛрдВ рдореЗрдВ рдлреБрдЯрдмреЙрд▓ рдореИрдЪреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЗрдЧреНрдирд╛рдЗрдЯ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рдо рдПрдХ рд╕реНрдкрд╛рд░реНрдХ рд╕рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рдкрддреЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдмреБрд▓рд╛рддреЗ рд╣реИрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рд╣реИ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХрд╛рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдо рдХреНрд░рд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред
рд╣рдо рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмрд╣реБрд╕реНрддрд░реАрдп рд╣реИ, рдпрд╣ рдПрдХ рдорд╛рдирдХ json рдлрд╝рд╛рдЗрд▓ рд╣реИред рдлрд┐рд░ рд╣рдо рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИ - рд╕реНрдкрд╛рд░реНрдХ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдбреЗрдЯрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдХреНрдпрд╛ рд╣реИред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рд╕рдм рдХреБрдЫ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдХреНрд╡реЗрд░реА рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЯреАрдо рдиреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдореИрдЪ рдЦреЗрд▓реЗред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдХреЙрд▓рдо рд╣реИрдВ: рд╣реЛрдордЯреЛрдо рдФрд░ рдПрдЯрдореЙрдо, рдореЗрдЬрдмрд╛рди рдФрд░ рдореЗрд╣рдорд╛рдиред рд╣рдо рдХрдорд╛рдВрдб рдкрд░ рдбреЗрдЯрд╛, рдЪрдпрди, рд╕рдореВрд╣, рдЧрдгрдирд╛, рдпреЛрдЧ рдФрд░ рдХрдорд╛рдВрдб рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рддреЗ рд╣реИрдВред рдЯрд╛-рдбреИрдо - рдФрд░ рдЬреЕрдиреНрд╕-рдЪрд┐рдХ рд╕реЗ рдбреЗрдЯрд╛ рд╣рдореЗрдВ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рдорд┐рд▓рд╛ред рд╣рдо рдкреЗрд░рд┐рд╕ рд╕реЗрдВрдЯ-рдЬрд░реНрдореЗрди, рдЯреВрд▓реВрдЬрд╝ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреНрд░рд╛рдВрд╕реАрд╕реА рдЯреАрдореЛрдВ рдХрд╛ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рд╣реИред

рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдордиреЗ рд╕реНрд░реЛрдд, json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЗрдЧреНрдирд╛рдЗрдЯ, рдФрд░ рдХрд╛рдлреА рддреЗрдЬрд╝реА рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред рд╢рд╛рдпрдж, рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рднреНрдп рд╣реИред рдЯреЗрдмрд▓ рд╕реНрдХреАрдорд╛ рдЕрдкрдиреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реА рдЧрдИ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рд╕реНрддрдВрдн рдирд╛рдо рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдереЗ, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдмрдирд╛рдИ рдЧрдИ рдереАред рдЖрдИрдбреА рд╣рд░ рдЬрдЧрд╣ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдЖрдИрдбреА рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рдорд┐рд▓рд╛, рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрдЧреНрдирд╛рдЗрдЯреЗрд╕реНрдкрд╛рд░реНрдХрд╕реИрдВрд╕ рдФрд░ рдЗрдЧреНрдирд╛рдЗрдЯрд╕рд╛рдЗрдЯреНрд╕
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
CatalogExample.scalaрдХрд╛рдлреА рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ, рдЖрдк рдЕрдкрдиреЗ рд╕рднреА рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдорд╛рдирдХ рд╕реНрдкрд╛рд░реНрдХ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдФрд░ рд╡рд╣рд╛рдВ рдХреЛрдИ рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдирд╣реАрдВ рдереА - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдкрдХреЛ рд╕рд╣реА рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдЬрд╛рд░ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ - рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирдХ рдХрд╛рд░реНрдпред рд▓реЗрдХрд┐рди, рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдЗрдЧреНрдирд╛рдЗрдЯ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ SparkSession рдХреЗ рдмрдЬрд╛рдп рд╣рдо IgniteSparkSession рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдЬреИрд╕реЗ рд╣реА рдЖрдк рдПрдХ IgniteSparkSession рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЖрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЙрди рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА-рдЕрднреА рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЙрдирдХреЗ рдЖрд░реЗрдЦ рдФрд░ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдкрд╛рд░реНрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрди рдЯреЗрдмрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдЬреЛ рдЗрдЧреНрдирд╛рдЗрдЯ рд╣реИ, рдФрд░ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

IgniteOptimization
рдЬрдм рдЖрдк JOIN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрди рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдкрд╛рд░реНрдХ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА JOIN рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЗрдЧреНрдирд╛рдЗрдЯрдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╝реАрдЪрд░ рдмрдирд╛рдпрд╛ - рдпрд╣ рд╕реНрдкрд╛рд░реНрдХ рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рдЕрдВрджрд░ рдЗрдЧреНрдирд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдкрд░ рдЕрдиреБрдХреВрд▓рди рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред
SQL Query: SELECT city_id, count(*) FROM person p GROUP BY city_id HAVING count(*) > 1
рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ - рдХреБрдЫ рдХрд░реНрдордЪрд╛рд░реА, рд▓реЛрдЧред рдкреНрд░рддреНрдпреЗрдХ рдХрд░реНрдордЪрд╛рд░реА рдЙрд╕ рд╢рд╣рд░ рдХреА рдЖрдИрдбреА рдЬрд╛рдирддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд░рд╣рддрд╛ рд╣реИред рд╣рдо рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╣рд░ рдореЗрдВ рдХрд┐рддрдиреЗ рд▓реЛрдЧ рд░рд╣рддреЗ рд╣реИрдВред рд╣рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ - рдХрд┐рд╕ рд╢рд╣рд░ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡реНрдпрдХреНрддрд┐ рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╛рд░реНрдХ рдмрдирд╛рддрд╛ рд╣реИ:
== Analyzed Logical Plan == city_id: bigint, count(1): bigint Project [city_id#19L, count(1)#52L] +- Filter (count(1)#54L > cast(1 as bigint)) +- Aggregate [city_id#19L], [city_id#19L, count(1) AS count(1)#52L, count(1) AS count(1)#54L] +- SubqueryAlias p +- SubqueryAlias person +- Relation[NAME#11,BIRTH_DATE#12,IS_RESIDENT#13,SALARY#14,PENSION#15,ACCOUNT#16,AGE#17,ID#18L,CITY_ID#19L] IgniteSQLRelation[table=PERSON]
рд░рд┐рд▓реЗрд╢рди рд╕рд┐рд░реНрдл рдПрдХ рдЗрдЧреНрдирд╛рдЗрдЯ рдЯреЗрдмрд▓ рд╣реИред рдХреЛрдИ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рд╣реИ - рд╣рдо рдмрд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╡реНрдпрдХреНрддрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдкрдВрдк рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╕реНрдкрд╛рд░реНрдХ рдпрд╣ рд╕рдм рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ - рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдмрдЯреНрд░реА рдХреЛ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдЦреАрдВрдЪрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ - рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рдЗрдЧреНрдирд╛рдЗрдЯрдСрдкреНрдЯрд┐рдореЗрдВрдЯ рд╕реБрд╡рд┐рдзрд╛ рдХрд░рддреА рд╣реИред рдкреЗрдбрд╝ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдорд┐рд▓рддреА рд╣реИ:
== Optimized Logical Plan == Relation[CITY_ID#19L,COUNT(1)#52L] IgniteSQLAccumulatorRelation( columns=[CITY_ID, COUNT(1)], qry=SELECT CITY_ID, COUNT(1) FROM PERSON GROUP BY city_id HAVING count(1) > 1)
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдмрдВрдз рдорд┐рд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдкреВрд░реЗ рдкреЗрдбрд╝ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЕрдВрджрд░ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдЧреНрдирд╛рдЗрдЯ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдЧрд╛ рдЬреЛ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рдХрд╛рдлреА рдХрд░реАрдм рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо, рджреВрд╕рд░рд╛ рдЬрд╕рди рд╕реЗ, рддреАрд╕рд░рд╛ рдлрд┐рд░ рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реЗ рдФрд░ рдЪреМрдерд╛ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдмрдЯреНрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ, рдФрд░ рд╕реНрдкрд╛рд░реНрдХ рдмрд╛рдХреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ рдЧрддрд┐ рдореЗрдВ рдмрдврд╝рдд рдорд┐рд▓рддреА рд╣реИред
JOIN рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг:
SQL Query - SELECT jt1.id as id1, jt1.val1, jt2.id as id2, jt2.val2 FROM jt1 JOIN jt2 ON jt1.val1 = jt2.val2
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЯреЗрдмрд▓ рд╣реИрдВред рд╣рдо рдПрдХ рд╕рд╛рде рдореВрд▓реНрдп рд╕реЗ рдЪрд┐рдкрдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд╕рднреА рд╕реЗ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ - рдЖрдИрдбреА, рдорд╛рдиред рд╕реНрдкрд╛рд░реНрдХ рдРрд╕реА рдпреЛрдЬрдирд╛ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ:
== Analyzed Logical Plan == id1: bigint, val1: string, id2: bigint, val2: string Project [id#4L AS id1#84L, val1#3, id#6L AS id2#85L, val2#5] +- Join Inner, (val1#3 = val2#5) :- SubqueryAlias jt1 : +- Relation[VAL1#3,ID#4L] IgniteSQLRelation[table=JT1] +- SubqueryAlias jt2 +- Relation[VAL2#5,ID#6L] IgniteSQLRelation[table=JT2]
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЦреАрдВрдЪ рд▓реЗрдЧрд╛, рджреВрд╕рд░реЗ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛, рдЙрдиреНрд╣реЗрдВ рдЦреБрдж рдХреЗ рдЕрдВрджрд░ рдорд┐рд▓рд╛рдПрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдареАрдХ рд╡рд╣реА рдЕрдиреБрд░реЛрдз рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
== Optimized Logical Plan == Relation[ID#84L,VAL1#3,ID#85L,VAL2#5] IgniteSQLAccumulatorRelation(columns=[ID, VAL1, ID, VAL2], qry= SELECT JT1.ID AS id1, JT1.VAL1, JT2.ID AS id2, JT2.VAL2 FROM JT1 JOIN JT2 ON JT1.val1 = JT2.val2 WHERE JT1.val1 IS NOT NULL AND JT2.val2 IS NOT NULL)
рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
OptimizationExample.scalaрд╣рдо рдПрдХ рдЗрдЧреНрдирд╛рдЗрдЯрд╕реНрдкрд╛рд░реНрдХ рд╕рддреНрд░ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реА рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХреНрд╖рдорддрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣рд╛рдВ рдЕрдиреБрд░реЛрдз рдпрд╣ рд╣реИ: рдЙрдЪреНрдЪрддрдо рд░реЗрдЯрд┐рдВрдЧ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдвреВрдВрдвреЗрдВ рдФрд░ рдЙрдирдХреЗ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдЦрд┐рд▓рд╛рдбрд╝реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдбреЗрдЯрд╛ред рд╣рдо рдЬрдВрдХ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЙрдЪреНрдЪрддрдо рд░реЗрдЯрд┐рдВрдЧ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдХрд┐рд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдорд┐рд▓реА, рдФрд░ рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдПрдВред

рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкрд░рд┐рдЪрд┐рдд рдЙрдкрдирд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ: рдореЗрд╕реНрд╕реА, рдмрдлрди, рд░реЛрдирд╛рд▓реНрдбреЛ, рдЖрджрд┐ред рд╡реИрд╕реЗ, рдХреБрдЫ рдХрд╛рд░рдг рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рджреЛ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ - рдореЗрд╕реНрд╕реА рдФрд░ рд░реЛрдирд╛рд▓реНрдбреЛ рджреЛрдиреЛрдВред рдлреБрдЯрдмреЙрд▓ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЛ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЬреНрдЮрд╛рдд рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдпреЗ рдЧреЛрд▓рдХреАрдкрд░ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЙрдЪреНрдЪ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА - рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдлред рдЕрдм рд╣рдо рдЙрд╕ рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдкрд╛рд░реНрдХ рдореЗрдВ, рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН, рд╣рдордиреЗ рдкреВрд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ред
рдЕрдкрд╛рдЪреЗ рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрддреНрдкрд╛рдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкреИрдЪ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╣рдореЗрд╢рд╛ рдЦреБрд╢ рд╣реИрдВред рдЖрдкрдХреА рдорджрдж, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдкреИрдЪ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИред рд╣рдо рдЙрдирдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрдЧреНрдирд╛рдЗрдЯ рд╕рдореБрджрд╛рдп рдХрд╛ 90% рд░реВрд╕реА рднрд╛рд╖реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд▓рд┐рдП, рдЬрдм рддрдХ рдореИрдВрдиреЗ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛, рддрдм рддрдХ рдЕрдВрдЧреНрд░реЗрдЬреА рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЬреНрдЮрд╛рди рдПрдХ рдирд┐рд╡рд╛рд░рдХ рдирд╣реАрдВ рдерд╛ред рдпрд╣ рд╢рд╛рдпрдж рд╣реА рд░реВрд╕реА рдореЗрдВ рджреЗрд╡-рд╕реВрдЪреА рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдЧрд▓рдд рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗ рдФрд░ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдПрдХреАрдХрд░рдг рдкрд░ рдХреНрдпрд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЕрдЧрд░ рдЖрдкрдХреА рдРрд╕реА рдЗрдЪреНрдЫрд╛ рд╣реИ рддреЛ рдореИрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВред рддрд╛рд░рд╛рдВрдХрди рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред

рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдКрдкрд░, рдореИрдВрдиреЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрди рджрд┐рдЦрд╛рдПред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдореВрд╣ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЬреЛрдбрд╝ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ - рдЖрдУ рдФрд░ рдЗрд╕реЗ рдХрд░реЛред рдпрджрд┐ рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдИ рдХреАрдбрд╝реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рд╡рд╣рд╛рдВ рдХрдард┐рди рд╣реЛрдЧрд╛ред
рдПрдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдПрдХ рдкрддрд▓реА рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╛рд░реНрдХ рдХрд╛ рдПрдХреАрдХрд░рдг рд╣реИред рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдХреБрдЫ рд╕реЗрдЯреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рдпрд╣ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬреЛ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░реВрдВрдЧрд╛ред
рдпрджрд┐ рдЖрдк рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ:
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрддреНрддрд░рджрд╛рдпреА рджреЗрд╡ рд╕реВрдЪреА рд╣реИ, рдЬреЛ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗрдЧреАред рдпрд╣ рдЕрднреА рднреА рдЖрджрд░реНрд╢ рд╕реЗ рджреВрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрд╡рд┐рдд рд╣реИред
рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛ рдпрд╛ C ++ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд╛рдо рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ (Apache Ignite, Apache Kafka, Tarantool, рдЖрджрд┐) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рдпрд╣рд╛рдБ рд▓рд┐рдЦреЗрдВ: join-open-source@sberbank.ruред