рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реИрдпрдХреНрддрд┐рдХ рдЕрдиреБрднрд╡рд╛рд╡рд░реВрди рд╕рд╛рдВрдЧрдд рдЖрд╣реЗ рдХреА рдХреБрдареЗ рдЖрдгрд┐ рдХреЗрд╡реНрд╣рд╛ рдХрд╛рдп рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ. рд╣реЗ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рдЖрдгрд┐ рдкреНрд░рдмрдВрдз рдЖрд╣реЗ, рдЬреЗрдгреЗрдХрд░реБрди рд╣реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдИрд▓ рдХреА рдЖрдкрдг рдкреБрдвреЗ рдХрд╛рдп рдЖрдгрд┐ рдХреЛрдареЗ рдЦреЛрджреВрди рдХрд╛рдвреВ рд╢рдХрддрд╛ - рдкрд░рдВрддреБ рдпреЗрдереЗ рдорд▓рд╛ рдХреЗрд╡рд│ рд╡реНрдпрдХреНрддрд┐рдирд┐рд╖реНрда рд╡реИрдпрдХреНрддрд┐рдХ рдЕрдиреБрднрд╡ рдЖрд╣реЗ, рдХрджрд╛рдЪрд┐рдд рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЖрдкрд▓реНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЕрд╕реЗрд▓.

рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЖрдгрд┐ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдХрд╛ рдЖрд╣реЗ? рдбреЗрдЯрд╛ рд╕рд╛рдпрдиреНрд╕рдордзреНрдпреЗ рдХрд╛рдорд╛рдЪреЗ рдЕрдиреЗрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЯрдкреНрдкреЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдкрд╣рд┐рд▓реЗ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ (рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп, рдирдХреНрдХреАрдЪ рдХрд╛рд╣реАрд╣реА рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА!) рдбреЗрдЯрд╛ рдорд┐рд│рд╡рдгреЗ рдХрд┐рдВрд╡рд╛ рдХрд╛рдврдгреЗ рдЖрд╣реЗ. рдмрд░реНтАНрдпрд╛рдЪрджрд╛, рдбреЗрдЯрд╛ рдХреБрдард▓реНрдпрд╛рддрд░реА рд╕реНрд╡рд░реВрдкрд╛рдд рдХреБрдареЗрддрд░реА рдмрд╕рд▓реЗрд▓рд╛ рдЕрд╕рддреЛ рдЖрдгрд┐ рддреЗрдереВрди "рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд" рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ. 

рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣рд╛ рдбреЗрдЯрд╛ рдХрд╛рдврдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд! рдЖрдгрд┐ рдЖрдЬ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдЪреНрдпрд╛ рднрд╛рд╖рд╛рдВрдмрджреНрджрд▓ рд╕рд╛рдВрдЧреЗрди рдЬреНрдпрд╛ рдорд╛рдЭреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗрдд рдЖрдгрд┐ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреЗрди рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреБрдареЗ рдЖрдгрд┐ рдХрд╕реЗ - рдпрд╛рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЖрд╣реЗ рддреЗ рджрд╛рдЦрд╡реАрди.

рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рддреАрди рдореБрдЦреНрдп рдмреНрд▓реЙрдХреНрд╕ рдЕрд╕рддреАрд▓, рдЬреНрдпрд╛рдЪреА рдЖрдкрдг рдпрд╛ рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХрд░реВ:

  • рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдХрд┐рдВрд╡рд╛ SQL рд╕рд╛рд░рдЦреНрдпрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖реЗрдмрджреНрджрд▓ рдмреЛрд▓рддрд╛рдирд╛ "рдорд╛рдирдХ" рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕рдордЬрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  • рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛: рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкрд╛рдпрдерди рдЧреЛрд╖реНрдЯреА рдкрд╛рдВрдбрд╛, рдирдореНрдкреА рдХрд┐рдВрд╡рд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ.
  • рдЬреНрдЮрд╛рди рдЖрд▓реЗрдЦ рдЖрдгрд┐ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛.

рдпреЗрдереЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реА рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рдлрдХреНрдд рдПрдХ рд╡реИрдпрдХреНрддрд┐рдХ рдЕрдиреБрднрд╡ рдЖрд╣реЗ, рдХрд╛рдп рдЙрдкрдпреБрдХреНрдд рд╣реЛрддреЗ, рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреЗ рд╡рд░реНрдгрди рдЖрдгрд┐ "рддреЗ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ" - рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдЕрд╢рд╛рдЪ рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрдкрд▓реНрдпрд╛ рдорд╛рд░реНрдЧрд╛рд╡рд░ рдХрд╕рд╛ рдпреЗрдК рд╢рдХрддреЛ рдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдпрд╛ рднрд╛рд╖рд╛ рд╕рдордЬреВрди рдШреЗрдКрди рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЖрдЧрд╛рдК рддрдпрд╛рд░реА рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддреЛ. рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдЦрд╛рджреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░ (рддрд╛рддреНрдХрд╛рд│) рдЕрд░реНрдЬ рдХрд░рдгреНтАНрдпрд╛рдкреВрд░реНрд╡реА рдХрд┐рдВрд╡рд╛ рдПрдЦрд╛рджреНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░ рдЬрд╛рдгреНтАНрдпрд╛рдкреВрд░реНрд╡реА, рдЬреЗрдереЗ рддреНрдпрд╛рдВрдЪреА рдЧрд░рдЬ рдЖрд╣реЗ.

"рдорд╛рдирдХ" рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛

рдорд╛рдирдХ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдпрд╛ рдЕрд░реНрдерд╛рдиреЗ рддрдВрддреЛрддрдВрдд рдЖрд╣реЗрдд рдХреА рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рдХреНрд╡реЗрд░реАрдВрдмрджреНрджрд▓ рдмреЛрд▓рддреЛ рддреЗрд╡реНрд╣рд╛ рдЖрдкрдг рд╕рд╣рд╕рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЛ.

рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд

рдЖрдЬ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ? рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреА рд░рдЪрдирд╛ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрджреНрдзрддреАрдиреЗ рдХрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛ рдЬрд╛рдгреАрд╡рдкреВрд░реНрд╡рдХ рдХрд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рд╣реЗ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдВрдЪрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореБрдЦреНрдп рднрд╛рдЧ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

рдФрдкрдЪрд╛рд░рд┐рдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ: рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛ рдореЙрдбреЗрд▓рдордзреАрд▓ рд╕рдВрдмрдВрдзрд╛рдВрд╡рд░ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдмрдВрдж рдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗ. рд╣реЗ рдереЛрдбреЗ рдЕрдзрд┐рдХ рдорд╛рдирд╡реА рд░реАрддреАрдиреЗ рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рд╣реА рдЯреЗрдмрд▓рд╡рд░реАрд▓ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗ рдХреА рдкрд░рд┐рдгрд╛рдо рдиреЗрд╣рдореА рдПрдХ рдЯреЗрдмрд▓ рдЕрд╕рддреЛ.

рдордзреНрдпреЗ рд╕рд░реНрд╡ рд░рд┐рд▓реЗрд╢рдирд▓ рдСрдкрд░реЗрд╢рдиреНрд╕ рдкрд╣рд╛ рд╣реЗ Habr рдордзреАрд▓ рд▓реЗрдЦ - рдпреЗрдереЗ рдЖрдореНрд╣реА рд╡рд░реНрдгрди рдХрд░рддреЛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдХрд╛ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рдХреЛрдареЗ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ.

рдХрд╛?

рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХрд╢рд╛рдмрджреНрджрд▓ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдордзреАрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдЪреНрдпрд╛ рдорд╛рдЧреЗ рдХреЛрдгрддреА рдСрдкрд░реЗрд╢рдиреНрд╕ рдЖрд╣реЗрдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реНрдпрд╛рдиреЗ рдЕрдиреЗрдХрджрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдХрд╛рдп рдЖрдгрд┐ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреА рд╕рдЦреЛрд▓ рдорд╛рд╣рд┐рддреА рдорд┐рд│рддреЗ.

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдХрдбреВрди рдШреЗрддрд▓реЗ рд╣реЗ рд▓реЗрдЦ рдСрдкрд░реЗрд╢рдирдЪреЗ рдЙрджрд╛рд╣рд░рдг: рд╕рд╛рдореАрд▓ рд╡реНрд╣рд╛, рдЬреЗ рдЯреЗрдмрд▓рдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рд╣реЛрддреЗ.

рдЕрднреНрдпрд╛рд╕рд╛рд╕рд╛рдареА рд╕рд╛рд╣рд┐рддреНрдп:

рд╕реНрдЯреЕрдирдлреЛрд░реНрдбрдЪрд╛ рдЪрд╛рдВрдЧрд▓рд╛ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдЕрднреНрдпрд╛рд╕рдХреНрд░рдо. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдЖрдгрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд - Coursera, Udacity рд╡рд░ рднрд░рдкреВрд░ рд╕рд╛рд╣рд┐рддреНрдп рдЖрд╣реЗрдд. рдЪрд╛рдВрдЧрд▓реНрдпрд╛рд╕рд╣ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдСрдирд▓рд╛рдЗрди рд╕рд╛рдордЧреНрд░реА рджреЗрдЦреАрд▓ рдЖрд╣реЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рдЕрднреНрдпрд╛рд╕рдХреНрд░рдо. рдорд╛рдЭрд╛ рд╡реИрдпрдХреНрддрд┐рдХ рд╕рд▓реНрд▓рд╛: рддреБрдореНрд╣рд╛рд▓рд╛ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рд╣рд╛ рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреАрдВрдЪрд╛ рдЖрдзрд╛рд░ рдЖрд╣реЗ.

рдПрд╕ рдХреНрдпреВ рдПрд▓

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдХрдбреВрди рдШреЗрддрд▓реЗ рд╣реЗ рд▓реЗрдЦ.

рдПрд╕рдХреНрдпреВрдПрд▓ рд╣реЗ рдореВрд▓рдд: рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рддрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ - рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рд╕рд╛рд╡рдзрдЧрд┐рд░реАрд╕рд╣, рдПрд╕рдХреНрдпреВрдПрд▓ рд╣реЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рдЖрд╣реЗ! рдореНрд╣рдгрдЬреЗрдЪ, рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рддрд╛рдЪреНрдпрд╛ рднрд╛рд╖реЗрдд рдХреНрд╡реЗрд░реА рд▓рд┐рд╣рд┐рддрд╛рдирд╛, рддреБрдореНрд╣реА рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЧрдгрдирд╛ рдХрд╢реА рдХрд░рд╛рдпрдЪреА рддреЗ рд╕рд╛рдВрдЧрддрд╛ - рдкрд░рдВрддреБ рдПрд╕рдХреНрдпреВрдПрд▓рдордзреНрдпреЗ рддреБрдореНрд╣реА рдХрд╛рдп рдХрд╛рдвреВ рдЗрдЪреНрдЫрд┐рддрд╛ рддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рдЖрдгрд┐ рдирдВрддрд░ рдбреАрдмреАрдПрдордПрд╕ рдЖрдзреАрдЪ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд (рддреНрдпрд╛рдВрдЪреНрдпрд╛) рднрд╛рд╖реЗрдд (рдкреНрд░рднрд╛рд╡реА) рдЕрднрд┐рд╡реНрдпрдХреНрддреА рддрдпрд╛рд░ рдХрд░рддреЗ. рд╕рдорддреБрд▓реНрдп рдЖрдореНрд╣рд╛рд▓рд╛ рдореНрд╣рдгреВрди рдУрд│рдЦрд▓реЗ рдЬрд╛рддреЗ рдХреЙрдбрдЪреЗ рдкреНрд░рдореЗрдп).

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдХрдбреВрди рдШреЗрддрд▓реЗ рд╣реЗ рд▓реЗрдЦ.

рдХрд╛?

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреАрдмреАрдПрдордПрд╕: рдУрд░реЕрдХрд▓, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕, рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡реНрд╣рд░ рдЗ. рдЕрдЬреВрдирд╣реА рдЕрдХреНрд╖рд░рд╢рдГ рд╕рд░реНрд╡рддреНрд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓ рдЕрд╢реА рдХрдорд╛рд▓реАрдЪреА рдЙрдЪреНрдЪ рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрддрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╡рд╛рдЪрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ (рдЬреЗ рдмрд╣реБрдзрд╛ рдЖрд╣реЗ) рдХрд┐рдВрд╡рд╛ рддреЗ рд▓рд┐рд╣рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ ( рдПрдХрддрд░ рд╕рдВрднрд╡ рдирд╛рд╣реА).

рдХрд╛рдп рд╡рд╛рдЪрд╛рдпрдЪреЗ рдЖрдгрд┐ рдЕрднреНрдпрд╛рд╕рд╛рдпрдЪреЗ

рд╡рд░реАрд▓ рд╕рдорд╛рди рджреБрд╡реНрдпрд╛рдВрдиреБрд╕рд╛рд░ (рд╕рдВрдмрдВрдзрд┐рдд рдмреАрдЬрдЧрдгрд┐рдд рдмрджреНрджрд▓), рддреЗрдереЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдорд╛рдгрд╛рдд рд╕рд╛рдордЧреНрд░реА рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣реЗ.

рддрд╕реЗ, NoSQL рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

"рдкреБрдиреНрд╣рд╛ рдПрдХрджрд╛ рдЬреЛрд░ рджреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА "NoSQL" рдпрд╛ рд╢рдмреНрджрд╛рдЪреА рдЙрддреНрдкрддреНрддреА рдкреВрд░реНрдгрдкрдгреЗ рдЙрддреНрд╕реНрдлреВрд░реНрдд рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдорд╛рдЧреЗ рдХреЛрдгрддреАрд╣реА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реНрд╡реАрдХреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдВрд╡рд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрд╕реНрдерд╛ рдирд╛рд╣реА." рд╕рдВрдмрдВрдзрд┐рдд рд▓реЗрдЦ Habr рд╡рд░.

рдЦрд░рдВ рддрд░, рд▓реЛрдХрд╛рдВрдирд╛ рд╕рдордЬрд▓реЗ рдХреА рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрдг рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбреЗрд▓рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рд╡рд┐рд╢реЗрд╖рдд: рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЬреЗрдереЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЧрдВрднреАрд░ рдЖрд╣реЗ рдЖрдгрд┐ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╣ рдХрд╛рд╣реА рд╕реЛрдкреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрд╡рд░ рд╡рд░реНрдЪрд╕реНрд╡ рдЖрд╣реЗ - рдЬреЗрдереЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕рдЪреА рддреНрд╡рд░реАрдд рдЧрдгрдирд╛ рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд▓рд┐рд╣рд┐рдгреЗ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ. рдбреЗрдЯрд╛рдмреЗрд╕, рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд░рд┐рд▓реЗрд╢рдирд▓ рдЖрд╣реЗрдд рд╣реЗ рдХреЗрд╡рд│ рдЕрдирд╛рд╡рд╢реНрдпрдХрдЪ рдирд╛рд╣реА рддрд░ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд - рдЬрд░ рдПрдЦрд╛рджреА рдЧреЛрд╖реНрдЯ рдЖрдкрд▓реНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ (рдХрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА) рдЦрд░рд╛рдм рдХрд░реЗрд▓ рддрд░ рддреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛ рдХрд░рд╛рд╡реЗ - рдЙрддреНрдкрд╛рджрдХрддрд╛?

рддрд╕реЗрдЪ, рд╢рд╛рд╕реНрддреНрд░реАрдп рд░рд┐рд▓реЗрд╢рдирд▓ рдореЙрдбреЗрд▓рдЪреНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЧрдгрд┐рддреАрдп рд╕реНрдХреАрдорд╛рдРрд╡рдЬреА рдЕрдиреЗрдХрджрд╛ рд▓рд╡рдЪрд┐рдХ рд╕реНрдХреАрдорд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддрд╛рдд - рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрд╡рд░реАрдд рдХрд╛рд░реНрдп рдХрд░рдгреЗ, рдкрд░рд┐рдгрд╛рдорд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ - рдХрд┐рдВрд╡рд╛ рд╕реНрдХреАрдорд╛ рдЖрдгрд┐ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдбреЗрдЯрд╛рдЪреЗ рдкреНрд░рдХрд╛рд░ - рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рд╛рд╕ рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХрдкрдгреЗ рд╕реБрд▓рдн рдХрд░рддреЗ. рдЗрддрдХреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдирд╛рд╣реАрдд.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдореНрд╣реА рдПрдХ рддрдЬреНрдЮ рдкреНрд░рдгрд╛рд▓реА рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдХрд╛рд╣реА рдореЗрдЯрд╛ рдорд╛рд╣рд┐рддреАрд╕рд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЛрдореЗрдирд╡рд░ рдорд╛рд╣рд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ - рдЖрдореНрд╣рд╛рд▓рд╛ рдХрджрд╛рдЪрд┐рдд рд╕рд░реНрд╡ рдлреАрд▓реНрдб рдорд╛рд╣рд┐рдд рдирд╕рддреАрд▓ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдХреЙрд░реНрдбрд╕рд╛рдареА рдлрдХреНрдд JSON рд╕рдВрдЪрдпрд┐рдд рдХрд░реВ - рдпрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЕрддрд┐рд╢рдп рд▓рд╡рдЪрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдорд┐рд│рддреЗ. рдореЙрдбреЗрд▓ рдЖрдгрд┐ рддреНрд╡рд░реАрдд рдкреБрдирд░рд╛рд╡реГрддреНрддреА - рдореНрд╣рдгреВрди рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, NoSQL рдЕрдзрд┐рдХ рд╢реНрд░реЗрдпрд╕реНрдХрд░ рдЖрдгрд┐ рдЕрдзрд┐рдХ рд╡рд╛рдЪрдиреАрдп рдЕрд╕реЗрд▓. рдЙрджрд╛рд╣рд░рдг рдПрдВрдЯреНрд░реА (рдорд╛рдЭреНрдпрд╛ рдПрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдордзреВрди рдЬрд┐рдереЗ NoSQL рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддрд┐рдереЗ рдпреЛрдЧреНрдп рд╣реЛрддрд╛).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"╨Ф╨╢╨╛╨╜╨╜╨╕ ╨Ъ╤Н╤И","ru"],
"en_wiki_pagecount":2338861}

рдЖрдкрдг рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдпреЗрдереЗ NoSQL рдмрджреНрджрд▓.

рдХрд╛рдп рдЕрднреНрдпрд╛рд╕ рдХрд░рд╛рдпрдЪрд╛?

рдпреЗрдереЗ, рддреНрдпрд╛рдРрд╡рдЬреА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреЗ рд╕рдЦреЛрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддреНрдпрд╛рдд рдХреЛрдгрддреЗ рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛ NoSQL рдкреНрд░рдгрд╛рд▓реА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд рдЬреНрдпрд╛ рдпрд╛ рд╡рд░реНрдгрдирд╛рдд рдмрд╕рддреАрд▓ - рдЖрдгрд┐ рдирдВрддрд░ рдпрд╛ рдкреНрд░рдгрд╛рд▓реАрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рд╕реБрд░реВ рдХрд░рд╛.

рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛

рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рдкрд╛рдпрдердирдЪрд╛ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ - рд╣реА рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдкреНрд░рд╢реНрдирд╛рдВрдмрджреНрджрд▓ рдЕрдЬрд┐рдмрд╛рдд рдирд╛рд╣реА.

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди

  • рдкрд╛рдВрдбрд╛ рдЕрдХреНрд╖рд░рд╢рдГ рдбреЗрдЯрд╛ рд╕рд╛рдпрдиреНрд╕рдЪрд╛ рд╕реНрд╡рд┐рд╕ рдЖрд░реНрдореА рдЪрд╛рдХреВ рдЖрд╣реЗ; рддреНрдпрд╛рдд рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдиреНрд╕рдлреЙрд░реНрдореЗрд╢рди, рдПрдХрддреНрд░реАрдХрд░рдг рдЗ.
  • Numpy - рддреЗрдереЗ рд╡реЗрдХреНрдЯрд░ рдЧрдгрдирд╛, рдореЕрдЯреНрд░рд┐рдХреНрд╕ рдЖрдгрд┐ рд░реЗрдЦреАрдп рдмреАрдЬрдЧрдгрд┐рдд.
  • рд╕реНрдХрд┐рдкреА - рдпрд╛ рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдмрд░реЗрдЪ рдЧрдгрд┐рдд рдЖрд╣реЗ, рд╡рд┐рд╢реЗрд╖рддрдГ рдЖрдХрдбреЗрд╡рд╛рд░реА.
  • рдЬреНрдпреБрдкрд┐рдЯрд░ рд▓реЕрдм - рдмрд░реЗрдЪ рд╢реЛрдзрдХ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓реЕрдкрдЯреЙрдкрдордзреНрдпреЗ рдЪрд╛рдВрдЧрд▓реЗ рдмрд╕рддреЗ - рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ.
  • рд╡рд┐рдирдВрддреНрдпрд╛ - рдиреЗрдЯрд╡рд░реНрдХрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ.
  • рдбреЗрдЯрд╛ рдЕрднрд┐рдпрдВрддреНрдпрд╛рдВрдордзреНрдпреЗ Pyspark рдЦреВрдк рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрд╣реЗ, рдмрд╣реБрдзрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдХрд┐рдВрд╡рд╛ рд╕реНрдкрд╛рд░реНрдХрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓, рдлрдХреНрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд▓реЛрдХрдкреНрд░рд┐рдпрддреЗрдореБрд│реЗ.
  • *рд╕реЗрд▓реЗрдирд┐рдпрдо - рд╕рд╛рдЗрдЯреНрд╕ рдЖрдгрд┐ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреВрди рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ, рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдбреЗрдЯрд╛ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рдЪрд╛ рджреБрд╕рд░рд╛ рдХреЛрдгрддрд╛рд╣реА рдорд╛рд░реНрдЧ рдирд╕рддреЛ.

рдорд╛рдЭрд╛ рдореБрдЦреНрдп рд╕рд▓реНрд▓рд╛: рдкрд╛рдпрдерди рд╢рд┐рдХрд╛!

рдкрд╛рдВрдбреНрдпрд╛

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди рдЦрд╛рд▓реАрд▓ рдХреЛрдб рдШреЗрдК.

import pandas as pd
df = pd.read_csv(тАЬdata/dataset.csvтАЭ)
# Calculate and rename aggregations
all_together = (df[df[тАШtrip_typeтАЩ] == тАЬreturnтАЭ]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           тАШamax': 'max_duration_seconds'}))

рдореВрд▓рдд:, рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ рдХреА рдХреЛрдб рдХреНрд▓рд╛рд╕рд┐рдХ SQL рдкреЕрдЯрд░реНрдирдордзреНрдпреЗ рдмрд╕рддреЛ.

SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, тАж..
FROM dataset
WHERE trip_type = тАШreturnтАЩ
GROUPBY start_station_name, end_station_name

рдкрдг рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рд╣рд╛ рдХреЛрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдгрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ; рдЦрд░рдВ рддрд░, рдЖрдореНрд╣реА рдкрд╛рдпрдерди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдХреНрд╡реЗрд░реА рдПрдореНрдмреЗрдб рдХрд░рдд рдЖрд╣реЛрдд. рдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рдкрд╛рдВрдбрд╕ рдХрд┐рдВрд╡рд╛ рдкрд╛рдпрд╕реНрдкрд╛рд░реНрдХ рд╕рд╛рд░рдЦреНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдВрдордзреВрди рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рднрд╛рд╖рд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдпреЗрддреЗ.

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, pySpark рдордзреНрдпреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖реЗрджреНрд╡рд╛рд░реЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░рдЪреЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдиреНрд╕рдлреЙрд░реНрдореЗрд╢рди рджрд┐рд╕рддреЗ:

df.filter(df.trip_type = тАЬreturnтАЭ)
  .groupby(тАЬdayтАЭ)
  .agg({duration: 'mean'})
  .sort()

рдХреБрдареЗ рдЖрдгрд┐ рдХрд╛рдп рд╡рд╛рдЪрд╛рдпрдЪреЗ

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдкрд╛рдпрдердирд╡рд░рдЪ рд╣рд░рдХрдд рдирд╛рд╣реА, рд╣рд░рдХрдд рдирд╕рдгреЗ рдЕрднреНрдпрд╛рд╕рд╛рд╕рд╛рдареА рд╕рд╛рд╣рд┐рддреНрдп рд╢реЛрдзрд╛. рдСрдирд▓рд╛рдЗрди рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрд╣реЗрдд рдкрд╛рдВрдбрд╛, pySpark рдЖрдгрд┐ рдЕрднреНрдпрд╛рд╕рдХреНрд░рдо рдЪрд╛рд▓реВ рдЖрд╣реЗрдд рд╕реНрдкрд╛рд░реНрдХ (рдЖрдгрд┐ рд╕реНрд╡рддрдГ рджреЗрдЦреАрд▓ DS). рдПрдХрдВрджрд░реАрдд, рдпреЗрдереАрд▓ рд╕рд╛рдордЧреНрд░реА рдЧреБрдЧрд▓рд┐рдВрдЧрд╕рд╛рдареА рдЙрддреНрддрдо рдЖрд╣реЗ, рдЖрдгрд┐ рдЬрд░ рдорд▓рд╛ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдкреЕрдХреЗрдЬ рдирд┐рд╡рдбрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ рддрд░ рддреЗ рдирдХреНрдХреАрдЪ рдкрд╛рдВрдбрд╛ рдЕрд╕реЗрд▓. рдбреАрдПрд╕ + рдкрд╛рдпрдерди рд╕рд╛рдордЧреНрд░реАрдЪреНрдпрд╛ рд╕рдВрдпреЛрдЬрдирд╛рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рдЦреВрдк.

рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдореНрд╣рдгреВрди рд╢реЗрд▓

рдореА рдХрд╛рдо рдХреЗрд▓реЗрд▓реЗ рдХрд╛рд╣реА рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдХрд▓реНрдк рд╣реЗ рдЦрд░реЗрддрд░ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╣реЗрдд рдЬреЗ рдкрд╛рдпрдерди, рдЬрд╛рд╡рд╛ рдЖрдгрд┐ рд╢реЗрд▓ рдХрдорд╛рдВрдбрдордзреНрдпреЗ рдХреЛрдб рдХреЙрд▓ рдХрд░рддрд╛рдд. рддреНрдпрд╛рдореБрд│реЗ, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рддреБрдореНрд╣реА bash/zsh/etc рдордзреАрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреНрд╕рдЪрд╛ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХреНрд╡реЗрд░реА рдореНрд╣рдгреВрди рд╡рд┐рдЪрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛ (рддреБрдореНрд╣реА рдирдХреНрдХреАрдЪ рддреЗрдереЗ рд╕рд╛рдордЧреНрд░реА рд▓реВрдк рдХрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рд╣реЗ рд╢реЗрд▓ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдбреАрдПрд╕ рдХреЛрдбрд╕рд╛рдареА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрдкреВрд░реНрдг рдирд╛рд╣реА), рдЪрд▓рд╛ рджреЗрдКрдпрд╛. рдПрдХ рд╕рд╛рдзреЗ рдЙрджрд╛рд╣рд░рдг - рдорд▓рд╛ рд╡рд┐рдХрд┐рдбреЗрдЯрд╛рдЪреЗ QID рдореЕрдкрд┐рдВрдЧ рдЖрдгрд┐ рд░рд╢рд┐рдпрди рдЖрдгрд┐ рдЗрдВрдЧреНрд░рдЬреА рд╡рд┐рдХреАрдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рд▓рд┐рдВрдХреНрд╕рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА, рдпрд╛рд╕рд╛рдареА рдореА рдмреЕрд╢рдордзреАрд▓ рдХрдорд╛рдВрдбреНрд╕рдордзреВрди рдПрдХ рд╕рд╛рдзреА рд╡рд┐рдирдВрддреА рд▓рд┐рд╣рд┐рд▓реА рдЖрдгрд┐ рдЖрдЙрдЯрдкреБрдЯрд╕рд╛рдареА рдореА рдкрд╛рдпрдердирдордзреНрдпреЗ рдПрдХ рд╕рд╛рдзреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рд▓реА, рдЬреА рдореА рдЕрд╕реЗ рдПрдХрддреНрд░ рдареЗрд╡рд╛:

pv тАЬdata/latest-all.json.gzтАЭ | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

рдЬреЗрдереЗ

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

рдЦрд░рдВ рддрд░, рд╣реА рд╕рдВрдкреВрд░реНрдг рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣реЛрддреА рдЬреНрдпрд╛рдиреЗ рдЖрд╡рд╢реНрдпрдХ рдореЕрдкрд┐рдВрдЧ рддрдпрд╛рд░ рдХреЗрд▓реЗ; рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣рддреЛ, рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреНрд░рд╡рд╛рд╣ рдореЛрдбрдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ:

  • pv рдлрд╛рдЗрд▓рдкрд╛рде - рдлрд╛рдЗрд▓ рдЖрдХрд╛рд░рд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдЧрддреА рдмрд╛рд░ рджреЗрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рддреАрд▓ рд╕рд╛рдордЧреНрд░реА рдкреБрдвреЗ рдкрд╛рдард╡рддреЗ
  • unpigz -c рдиреЗ рд╕рдВрдЧреНрд░рд╣рдгрд╛рдЪрд╛ рднрд╛рдЧ рд╡рд╛рдЪрд▓рд╛ рдЖрдгрд┐ рддреЛ jq рд▓рд╛ рджрд┐рд▓рд╛
  • jq рдХреА рд╕рд╣ - рдкреНрд░рд╡рд╛рд╣рд╛рдиреЗ рд▓рдЧреЗрдЪ рдирд┐рдХрд╛рд▓ рджрд┐рд▓рд╛ рдЖрдгрд┐ рддреЛ рдкрд╛рдпрдердирдордзреАрд▓ рдкреЛрд╕реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд░рд▓рд╛ (рдкрд╣рд┐рд▓реНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдкреНрд░рдорд╛рдгреЗрдЪ) рдкрд╛рд╕ рдХреЗрд▓рд╛.
  • рдЕрдВрддрд░реНрдЧрдд, рдкреЛрд╕реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реЗ рдПрдХ рд╕рд╛рдзреЗ рд░рд╛рдЬреНрдп рдорд╢реАрди рд╣реЛрддреЗ рдЬреЗ рдЖрдЙрдЯрдкреБрдЯрдЪреЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рддреЗ 

рдПрдХреВрдг, рдПрдХ рдЬрдЯрд┐рд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЛрдареНрдпрд╛ рдбреЗрдЯрд╛рд╡рд░ (0.5TB) рдкреНрд░рд╡рд╛рд╣ рдореЛрдбрдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╢рд┐рд╡рд╛рдп рдЖрдгрд┐ рд╕рд╛рдзреНрдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрдгрд┐ рдХрд╛рд╣реА рд╕рд╛рдзрдирд╛рдВрдиреА рдмрдирд▓реЗрд▓реА.

рджреБрд╕рд░реА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЯреАрдк: рдЯрд░реНрдорд┐рдирд▓рдордзреНрдпреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрдгрд┐ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рд╡реНрд╣рд╛ рдЖрдгрд┐ bash/zsh/etc рд▓рд┐рд╣рд╛.

рддреНрдпрд╛рдЪрд╛ рдХреБрдареЗ рдЙрдкрдпреЛрдЧ рд╣реЛрдИрд▓? рд╣реЛрдп, рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡рддреНрд░ - рдкреБрдиреНрд╣рд╛, рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рднрд░рдкреВрд░ рд╕рд╛рдордЧреНрд░реА рдЖрд╣реЗрдд. рд╡рд┐рд╢реЗрд╖рддрдГ, рдпреЗрдереЗ рд╣реЗ рдорд╛рдЭрд╛ рдорд╛рдЧреАрд▓ рд▓реЗрдЦ.

рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ

рдкреБрдиреНрд╣рд╛, рд╡рд╛рдЪрдХ рдЙрджреНрдЧрд╛рд░реВ рд╢рдХрддреЛ - рдареАрдХ рдЖрд╣реЗ, рд╣реА рд╕рдВрдкреВрд░реНрдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд╣реЗ! рдЖрдгрд┐ рдирдХреНрдХреАрдЪ, рддреЛ рдмрд░реЛрдмрд░ рдЕрд╕реЗрд▓. рддрдерд╛рдкрд┐, рдорд▓рд╛ рд╕рд╣рд╕рд╛ рдЕрд╢рд╛ рд╕рдВрджрд░реНрднрд╛рдд R рдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛ рдХреА, рдЦрд░рдВ рддрд░, рддреА рдХреНрд╡реЗрд░реА рднрд╛рд╖реЗрд╕рд╛рд░рдЦреАрдЪ рд╣реЛрддреА.

R рд╣реЗ рд╕реНрдЯреЕрдЯрд┐рдХ рдХреЙрдореНрдкреНрдпреБрдЯрд┐рдВрдЧ рдЖрдгрд┐ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╕рдВрдЧрдгрди рд╡рд╛рддрд╛рд╡рд░рдг рдЖрдгрд┐ рднрд╛рд╖рд╛ рдЖрд╣реЗ (рдпрд╛рдиреБрд╕рд╛рд░ рд╣реЗ).

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдШреЗрддрд▓реЗ рдпреЗрдереВрди. рддрд╕реЗ, рдореА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ, рдЪрд╛рдВрдЧрд▓реА рд╕рд╛рдордЧреНрд░реА.

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрд▓рд╛ рдЖрд░ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ? рдХрд┐рдорд╛рди, рдХрд╛рд░рдг R рдордзреНрдпреЗ рдбреЗрдЯрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдиреЙрди-рдЖрдпрдЯреА рд▓реЛрдХрд╛рдВрдЪрд╛ рдПрдХ рдореЛрдард╛ рдерд░ рдЖрд╣реЗ. рдорд▓рд╛ рддреЗ рдЦрд╛рд▓реАрд▓ рдард┐рдХрд╛рдгреА рдЖрдврд│рд▓реЗ:

  • рдлрд╛рд░реНрдорд╛рд╕реНрдпреБрдЯрд┐рдХрд▓ рдХреНрд╖реЗрддреНрд░.
  • рдЬреАрд╡рд╢рд╛рд╕реНрддреНрд░рдЬреНрдЮ.
  • рдЖрд░реНрдерд┐рдХ рдХреНрд╖реЗрддреНрд░.
  • рдкреВрд░реНрдгрдкрдгреЗ рдЧрдгрд┐рддреА рд╢рд┐рдХреНрд╖рдг рдЕрд╕рд▓реЗрд▓реЗ рд▓реЛрдХ рдЬреЗ рдЖрдХрдбреЗрд╡рд╛рд░реАрд╢реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛рдд.
  • рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдореЙрдбреЗрд▓реНрд╕ рдЖрдгрд┐ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбреЗрд▓реНрд╕ (рдЬреЗ рд╕рд╣рд╕рд╛ рд▓реЗрдЦрдХрд╛рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЖрд░ рдкреЕрдХреЗрдЬ рдореНрд╣рдгреВрди рдЖрдврд│реВ рд╢рдХрддрд╛рдд).

рддреА рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХрд╛ рдЖрд╣реЗ? рдЬреНрдпрд╛ рдлреЙрд░реНрдордордзреНрдпреЗ рддреЗ рдЕрдиреЗрдХрджрд╛ рдЖрдврд│рддреЗ, рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рдХреНрд╡реЗрд░реА (рдореЙрдбреЗрд▓) рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ, рддрд╕реЗрдЪ ggplot2 рд╕рд╛рд░рдЦреНрдпрд╛ рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭ рдХрд░рдгреЗ рдпрд╛рд╕рд╣ рдореЙрдбреЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдЖрд╣реЗ - рд╣рд╛ рджреЗрдЦреАрд▓ рдкреНрд░рд╢реНрди рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗ. .

рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рдЙрджрд╛рд╣рд░рдг рдХреНрд╡реЗрд░реА

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, R рдордзреАрд▓ рдЕрдиреЗрдХ рдХрд▓реНрдкрдирд╛ pandas, numpy рдХрд┐рдВрд╡рд╛ scipy рд╕рд╛рд░рдЦреНрдпрд╛ python рдкреЕрдХреЗрдЬреЗрд╕рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдЭрд╛рд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдЬрд╕реЗ рдХреА рдбреЗрдЯрд╛рдлреНрд░реЗрдореНрд╕ рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╡реНрд╣реЗрдХреНрдЯрд░рд╛рдпрдЭреЗрд╢рди - рддреНрдпрд╛рдореБрд│реЗ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ R рдордзреАрд▓ рдмрд░реНтАНрдпрд╛рдЪ рдЧреЛрд╖реНрдЯреА рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд░рд┐рдЪрд┐рдд рдЖрдгрд┐ рд╕реЛрдпреАрд╕реНрдХрд░ рд╡рд╛рдЯрддреАрд▓.

рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рд╕реНрддреНрд░реЛрдд рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣реЗ.

рдЬреНрдЮрд╛рди рдЖрд▓реЗрдЦ

рдпреЗрдереЗ рдорд▓рд╛ рдереЛрдбрд╛рд╕рд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрднрд╡ рдЖрд╣реЗ, рдХрд╛рд░рдг рдорд▓рд╛ рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рдЖрд▓реЗрдЦрд╛рдВрд╕рд╛рдареА рдЬреНрдЮрд╛рди рдЖрд▓реЗрдЦ рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдХрд╛рдо рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреЗ. рдореНрд╣рдгреВрдирдЪ, рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреАрдВрд╡рд░ рдереЛрдбрдХреНрдпрд╛рдд рдЬрд╛рдКрдпрд╛, рдХрд╛рд░рдг рд╣рд╛ рднрд╛рдЧ рдереЛрдбрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд▓рдХреНрд╖рдг рдЖрд╣реЗ.

рд╢рд╛рд╕реНрддреНрд░реАрдп рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕реЗрд╕рдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдХреАрдорд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдпреЗрдереЗ рд╕реНрдХреАрдорд╛ рд▓рд╡рдЪрд┐рдХ рдЖрд╣реЗ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрджрд╛рдЬ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдПрдХ "рд╕реНрддрдВрдн" рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдгрдЦреАрд╣реА.

рдЕрд╢реА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдореНрд╣реА рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрдЪреЗ рдореЙрдбреЗрд▓рд┐рдВрдЧ рдХрд░рдд рдЖрд╣рд╛рдд рдЖрдгрд┐ рдореБрдЦреНрдп рдЧреЛрд╖реНрдЯреАрдВрдЪреЗ рд╡рд░реНрдгрди рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЖрд╣рд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрдХреНрддреА, рдбрдЧреНрд▓рд╕ рдЕреЕрдбрдореНрд╕ рдШреЗрдК рдЖрдгрд┐ рд╣реЗ рд╡рд░реНрдгрди рдЖрдзрд╛рд░ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░реВ.

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
www.wikidata.org/wiki/Q42

рдЬрд░ рдЖрдкрдг рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рд▓рд╛ рдЕрд╕реЗрд▓, рддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдХреЙрд▓рдо рдЕрд╕рд▓реЗрд▓реА рдПрдХ рдореЛрдареА рдЯреЗрдмрд▓ рдХрд┐рдВрд╡рд╛ рдЯреЗрдмрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рд╛рд╡реА рд▓рд╛рдЧрддреАрд▓, рдЬреНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХ NULL рдЕрд╕рддреАрд▓ рдХрд┐рдВрд╡рд╛ рдХрд╛рд╣реА рдбреАрдлреЙрд▓реНрдЯ рдЕрд╕рддреНрдп рд╡реНрд╣реЕрд▓реНрдпреВрдиреЗ рднрд░рд▓реЗрд▓реЗ рдЕрд╕рддреАрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрд▓реНрдпрд╛рдкреИрдХреА рдЕрдиреЗрдХрд╛рдВрдХрдбреЗ рдЕрд╕рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд╛рд╣реА. рдХреЛрд░рд┐рдпрди рдиреЕрд╢рдирд▓ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ - рдЕрд░реНрдерд╛рддрдЪ, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рд╡реЗрдЧрд│реНрдпрд╛ рддрдХреНрддреНрдпрд╛рдордзреНрдпреЗ рдареЗрд╡реВ рд╢рдХрддреЛ, рдкрд░рдВрддреБ рд╣рд╛ рд╢реЗрд╡рдЯреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд┐рд▓реЗрд╢рдирд▓ рд╡рд╛рдкрд░реВрди рдкреНрд░реЗрдбрд┐рдХреЗрдЯреНрд╕рд╕рд╣ рд▓рд╡рдЪрд┐рдХ рд▓реЙрдЬрд┐рдХрд▓ рд╕рд░реНрдХрд┐рдЯ рдореЙрдбреЗрд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдЕрд╕реЗрд▓.

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдореНрд╣рдгреВрди рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рдЖрд▓реЗрдЦ рдореНрд╣рдгреВрди рдХрд┐рдВрд╡рд╛ рдмрд╛рдпрдирд░реА рдЖрдгрд┐ рдпреБрдирд░реА рдмреБрд▓рд┐рдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдореНрд╣рдгреВрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдХреБрдареЗ рднреЗрдЯреЗрд▓? рдкреНрд░рдердо, рд╕рд╣ рдХрд╛рдо рдбреЗрдЯрд╛ рд╡рд┐рдХреА, рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд┐рдВрд╡рд╛ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рд╕рд╣.

рдореА рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдЖрдгрд┐ рдХрд╛рдо рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореБрдЦреНрдп рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗрдд.

рд╕реНрдкрд╛рд░реНрдХрд▓

рд╡рд┐рдХреАрдГ
рд╕реНрдкрд╛рд░реНрдХрд▓ (рдЖрд╡рд░реНрддреА рд╕рдВрдХреНрд╖реЗрдк рдкрд╛рд╕реВрди рдЗрдВрдЧреНрд░рдЬреА SPARQL рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдгрд┐ RDF рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛) - рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛, рдореЙрдбреЗрд▓рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╕реНрддреБрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрд░рдбреАрдПрдлрдЖрдгрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рд╕рд╛рдареА. SPARQL рдПрдХ рд╢рд┐рдлрд╛рд░рд╕ рдЖрд╣реЗ W3C рдХрдВрд╕реЛрд░реНрдЯрд┐рдпрдо рдЖрдгрд┐ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдВрдкреИрдХреА рдПрдХ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡реЗрдм.

рдкрд░рдВрддреБ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рд╣реА рддрд╛рд░реНрдХрд┐рдХ рдпреБрдирд░реА рдЖрдгрд┐ рдмрд╛рдпрдирд░реА рдкреНрд░реЗрдбрд┐рдХреЗрдЯреНрд╕рд╕рд╛рдареА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдЖрд╣реЗ. рдмреБрд▓рд┐рдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдордзреНрдпреЗ рдХрд╛рдп рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдХрд╛рдп рдирд╛рд╣реА (рдЕрдЧрджреА рд╕рд░рд▓реАрдХреГрдд) рддреБрдореНрд╣реА рдлрдХреНрдд рд╕рд╢рд░реНрддрдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдд рдЖрд╣рд╛рдд.

рдЖрд░рдбреАрдПрдл (рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдгрди рдлреНрд░реЗрдорд╡рд░реНрдХ) рдмреЗрд╕ рд╕реНрд╡рддрдГ, рдЬреНрдпрд╛рд╡рд░ SPARQL рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рддрд┐рд╣реЗрд░реА рдЖрд╣реЗ object, predicate, subject - рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рд╕реНрдкрд┐рд░рд┐рдЯрдордзреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдиреБрд╕рд╛рд░ рдЖрд╡рд╢реНрдпрдХ рддрд┐рдкреНрдкрдЯ рдирд┐рд╡рдбрддреЗ: рдПрдХ X рд╢реЛрдзрд╛ рдХреА p_55(X, q_33) рд╕рддреНрдп рдЖрд╣реЗ - рдЬрд┐рдереЗ, рдЕрд░реНрдерд╛рддрдЪ, p_55 рд╣рд╛ ID 55 рд╢реА рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪрд╛ рд╕рдВрдмрдВрдз рдЖрд╣реЗ рдЖрдгрд┐ q_33 рд╣рд╛ рдПрдХ рдЖрд╣реЗ ID 33 рд╕рд╣ рдСрдмреНрдЬреЗрдХреНрдЯ (рдпреЗрдереЗ рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдХрдерд╛, рдкреБрдиреНрд╣рд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд╛рд░рдЪреЗ рддрдкрд╢реАрд▓ рд╡рдЧрд│реВрди).

рдбреЗрдЯрд╛ рд╕рд╛рджрд░реАрдХрд░рдгрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг:

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди
рдпреЗрдереЗ рджреЗрд╢рд╛рдВрд╕рд╣ рдЪрд┐рддреНрд░реЗ рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдгреЗ рдпреЗрдереВрди.

рдореВрд▓рднреВрдд рдкреНрд░рд╢реНрди рдЙрджрд╛рд╣рд░рдг

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди

рдЦрд░реЗрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ ?рджреЗрд╢реАрдп рдЪрд▓рдЪреЗ рдореВрд▓реНрдп рдЕрд╕реЗ рд╢реЛрдзрд╛рдпрдЪреЗ рдЖрд╣реЗ рдХреА рдкреНрд░реЗрдбрд┐рдХреЗрдЯрд╕рд╛рдареА
member_of, рд╣реЗ рдЦрд░реЗ рдЖрд╣реЗ рдХреА member_of(?country,q458) рдЖрдгрд┐ q458 рд╣рд╛ рдпреБрд░реЛрдкрд┐рдпрди рдпреБрдирд┐рдпрдирдЪрд╛ рдЖрдпрдбреА рдЖрд╣реЗ.

рдкрд╛рдпрдерди рдЗрдВрдЬрд┐рдирдордзреАрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ SPARQL рдХреНрд╡реЗрд░реАрдЪреЗ рдЙрджрд╛рд╣рд░рдг:

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди

рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рдорд▓рд╛ SPARQL рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдРрд╡рдЬреА рд╡рд╛рдЪрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ - рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рдбреЗрдЯрд╛ рдХрд╕рд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдорд╛рди рдореВрд▓рднреВрдд рд╕реНрддрд░рд╛рд╡рд░ рднрд╛рд╖рд╛ рд╕рдордЬреВрди рдШреЗрдгреЗ рд╣реЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдХреМрд╢рд▓реНрдп рдЕрд╕реЗрд▓. 

рдСрдирд▓рд╛рдЗрди рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рднрд░рдкреВрд░ рд╕рд╛рд╣рд┐рддреНрдп рдЖрд╣реЗ: рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдпреЗрдереЗ рд╣реЗ ╨╕ рд╣реЗ. рдореА рд╕рд╣рд╕рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рдЭрд╛рдЗрди рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдгреЗ рдЧреБрдЧрд▓ рдХрд░рддреЛ рдЖрдгрд┐ рдЖрддрд╛рд╕рд╛рдареА рддреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ.

рддрд╛рд░реНрдХрд┐рдХ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛

рдЖрдкрдг рдорд╛рдЭреНрдпрд╛ рд▓реЗрдЦрд╛рддреАрд▓ рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдпреЗрдереЗ. рдЖрдгрд┐ рдЗрдереЗ, рдкреНрд░рд╢реНрди рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рддрд╛рд░реНрдХрд┐рдХ рднрд╛рд╖рд╛ рдХрд╛ рдпреЛрдЧреНрдп рдЖрд╣реЗрдд рдпрд╛рдЪреЗ рдереЛрдбрдХреНрдпрд╛рдд рдкрд░реАрдХреНрд╖рдг рдХрд░реВ. рдореВрд▓рдд:, RDF рд╣рд╛ p(X) рдЖрдгрд┐ h(X,Y) рдлреЙрд░реНрдордЪреНрдпрд╛ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдзрд╛рдирд╛рдВрдЪрд╛ рдлрдХреНрдд рдПрдХ рд╕рдВрдЪ рдЖрд╣реЗ рдЖрдгрд┐ рддрд╛рд░реНрдХрд┐рдХ рдХреНрд╡реЗрд░реА рдЦрд╛рд▓реАрд▓ рдлреЙрд░реНрдо рдЖрд╣реЗ:

output(X) :- country(X), member_of(X,тАЬEUтАЭ).

рдпреЗрдереЗ рдЖрдкрдг рдирд╡реАрди predicate output/1 (/1 рдореНрд╣рдгрдЬреЗ unary) рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рдд рдЖрд╣реЛрдд, рдЬрд░ X рд╕рд╛рдареА рддреЗ рджреЗрд╢(X) рдЦрд░реЗ рдЕрд╕реЗрд▓ - рдореНрд╣рдгрдЬреЗрдЪ X рд╣рд╛ рджреЗрд╢ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рджрд╕реНрдп_of(X,"EU").

рдореНрд╣рдгрдЬреЗрдЪ, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдбреЗрдЯрд╛ рдЖрдгрд┐ рдирд┐рдпрдо рджреЛрдиреНрд╣реА рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░реЗ рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдореЙрдбреЗрд▓ рдЕрдЧрджреА рд╕рд╣рдЬ рдЖрдгрд┐ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд.

рдЗрдВрдбрд╕реНрдЯреНрд░реАрдд рдХреБрдареЗ рднреЗрдЯрд▓рд╛рд╕?: рдПрдЦрд╛рджреНрдпрд╛ рдХрдВрдкрдиреАрд╕рд╣ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдореЛрдард╛ рдкреНрд░рдХрд▓реНрдк рдЬреЛ рдЕрд╢рд╛ рднрд╛рд╖реЗрдд рдкреНрд░рд╢реНрди рд▓рд┐рд╣рд┐рддреЛ, рддрд╕реЗрдЪ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдореВрд│ рдкреНрд░рдХрд▓реНрдкрд╛рд╡рд░ - рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рд╣реА рдПрдХ рд╡рд┐рдЪрд┐рддреНрд░ рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХрдзреАрдХрдзреА рдЕрд╕реЗ рд╣реЛрддреЗ.

рд▓реЙрдЬрд┐рдХрд▓ рд▓рдБрдЧреНрд╡реЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдХрд┐рдбреЗрдЯрд╛рдордзреАрд▓ рдХреЛрдб рдлреНрд░реЕрдЧрдореЗрдВрдЯрдЪреЗ рдЙрджрд╛рд╣рд░рдг:

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди

рд╕рд╛рд╣рд┐рддреНрдп: рдореА рдпреЗрдереЗ рдЖрдзреБрдирд┐рдХ рд▓реЙрдЬрд┐рдХрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреНрдпрд╛ рдЙрддреНрддрд░ рд╕реЗрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪреНрдпрд╛ рдХрд╛рд╣реА рд▓рд┐рдВрдХ рджреЗрдИрди - рдореА рддреНрдпрд╛рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ:

рдбреЗрдЯрд╛ рд╕рд╛рдпрдВрдЯрд┐рд╕реНрдЯрдЪреНрдпрд╛ рдиреЛрдЯреНрд╕: рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдВрдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХреГрдд рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛