рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡рдмрд╛рдЯ рдмрддрд╛рдЗрд░рд╣реЗрдХреЛ рдЫреБ рдХреЗ рдХрд╣рд╛рдБ рд░ рдХрд╣рд┐рд▓реЗ рдЙрдкрдпреЛрдЧреА рдерд┐рдпреЛред рдпреЛ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди рд░ рдереАрд╕рд┐рд╕ рд╣реЛ, рддрд╛рдХрд┐ рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рддрдкрд╛рдИрдВ рдХреЗ рд░ рдХрд╣рд╛рдБ рдердк рдЦрдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ - рддрд░ рдпрд╣рд╛рдБ рдорд╕рдБрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдЫ, рд╕рд╛рдпрдж рд╕рдмреИ рдХреБрд░рд╛ рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдлрд░рдХ рдЫред

рдкреНрд░рд╢реНрди рднрд╛рд╖рд╛рд╣рд░реВ рдЬрд╛рдиреНрди рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБ рдХрд┐рди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ? рдпрд╕рдХреЛ рдореВрд▓рдорд╛, рдбрд╛рдЯрд╛ рд╡рд┐рдЬреНрдЮрд╛рдирд▓реЗ рдХрд╛рдордХрд╛ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЪрд░рдгрд╣рд░реВ рдЫрдиреН, рд░ рд╕рдмреИрднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЛ рд░ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг (рдпрд╕ рдмрд┐рдирд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдХреЗрд╣рд┐ рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрджреИрди!) рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╡рд╛ рдирд┐рдХрд╛рд▓реНрджреИ рдЫред рдкреНрд░рд╛рдпрдГ, рдбрд╛рдЯрд╛ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рдХрддреИ рдмрд╕рд┐рд░рд╣реЗрдХреЛ рдЫ рд░ рддреНрдпрд╣рд╛рдБрдмрд╛рдЯ "рдкреБрди: рдкреНрд░рд╛рдкреНрдд" рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред 

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

рддреНрдпрд╣рд╛рдБ рдбреЗрдЯрд╛ рдХреНрд╡реЗрд░реА рдкреНрд░рдХрд╛рд░рдХрд╛ рддреАрди рдореБрдЦреНрдп рдмреНрд▓рдХрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН, рдЬреБрди рд╣рд╛рдореА рдпрд╕ рд▓реЗрдЦрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░реНрдиреЗрдЫреМрдВ:

  • "рдорд╛рдирдХ" рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджрд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдмреБрдЭрд┐рдиреЗ рдХреБрд░рд╛рд╣рд░реВ рд╣реБрдиреН, рдЬрд╕реНрддреИ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рд╡рд╛ SQLред
  • рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд╛рдЗрдерди рдЪреАрдЬрд╣рд░реВ рдкрд╛рдиреНрдбрд╛, рдирдореНрдкреА рд╡рд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩред
  • рдЬреНрдЮрд╛рди рдЧреНрд░рд╛рдл рд░ рдЧреНрд░рд╛рдл рдбрд╛рдЯрд╛рдмреЗрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рднрд╛рд╖рд╛рд╣рд░реВ рдХреНрд╡реЗрд░реА рдЧрд░реНрдиреБрд╣реЛрд╕реНред

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

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

рдорд╛рдирдХ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ рдареНрдпрд╛рдХреНрдХреИ рдпрд╕ рдЕрд░реНрдердорд╛ рд╣реБрдиреНрдЫрдиреН рдХрд┐ рд╣рд╛рдореА рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджрд╛ рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрджрдЫреМрдВред

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

рдХрд┐рди рдЖрдЬ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдЖрд╡рд╢реНрдпрдХ рдЫ? рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ рдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░рд┐рдХрд╛рдорд╛ рд╕рдВрд░рдЪрд┐рдд рд╣реБрдиреНрдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдЪреЗрдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рднрдиреНрдиреЗ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдореВрд▓ рдХреБрд░рд╛ рдмреБрдЭреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╕рд╛рдкреЗрдХреНрд╖ рдмреАрдЬрдЧрдгрд┐рдд рдХреЗ рд╣реЛ?

рдФрдкрдЪрд╛рд░рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫ: рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рдд рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓ рдорд╛ рд╕рдореНрдмрдиреНрдз рдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдХреЛ рдПрдХ рдмрдиреНрдж рдкреНрд░рдгрд╛рд▓реА рд╣реЛред рдпрд╕рд▓рд╛рдИ рдЕрд▓рд┐ рдмрдвреА рдорд╛рдирд╡реАрдп рд░реВрдкрдорд╛ рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗ рдкреНрд░рдгрд╛рд▓реА рд╣реЛ рдЬреБрди рдкрд░рд┐рдгрд╛рдо рд╕рдзреИрдВ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛред

рдорд╛ рд╕рдмреИ рд░рд┐рд▓реЗрд╢рдирд▓ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдпреЛ Habr рдмрд╛рдЯ рд▓реЗрдЦ - рдпрд╣рд╛рдБ рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд┐рди рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рд░ рдпреЛ рдХрд╣рд╛рдБ рдХрд╛рдордорд╛ рдЖрдЙрдБрдЫ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред

рдХрд┐рди?

рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ рдХреЗ рд╣реБрдиреН рд░ рд╡рд┐рд╢реЗрд╖ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рдкрдЫрд╛рдбрд┐ рдХреБрди рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЫрдиреН рднрдиреЗрд░ рдмреБрдЭреНрди рд╕реБрд░реБ рдЧрд░реНрджрд╛ рдЕрдХреНрд╕рд░ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдХреЗ рдХрд╛рдо рдЧрд░реНрдЫ рд░ рдХрд╕рд░реА рд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЧрд╣рд┐рд░реЛ рдмреБрдЭрд╛рдЗ рджрд┐рдиреНрдЫред

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛ рдпреЛ рд▓реЗрдЦрд╣рд░реВред рдЕрдкрд░реЗрд╢рдирдХреЛ рдЙрджрд╛рд╣рд░рдг: рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН, рдЬрд╕рд▓реЗ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬреЛрдбреНрджрдЫред

рдЕрдзреНрдпрдпрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд╛рдордЧреНрд░реА:

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

SQL

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛ рдпреЛ рд▓реЗрдЦ

SQL рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рддрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ - рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЪреЗрддрд╛рд╡рдиреАрдХреЛ рд╕рд╛рде, SQL рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реЛ! рддреНрдпреЛ рд╣реЛ, рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рддрдХреЛ рднрд╛рд╖рд╛рдорд╛ рдХреНрд╡реЗрд░реА рд▓реЗрдЦреНрджрд╛, рддрдкрд╛рдИрд▓реЗ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХрд╕рд░реА рдЧрдгрдирд╛ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рднрдиреНрдиреБрд╣реБрдиреНрдЫ - рддрд░ SQL рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрд▓реЗ рдХреЗ рдирд┐рдХрд╛рд▓реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ DBMS рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд░рд┐рд▓реЗрд╢рдирд▓ рдмреАрдЬрдЧрдгрд┐рддрдХреЛ рднрд╛рд╖рд╛рдорд╛ (рдкреНрд░рднрд╛рд╡реА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫред рд╕рдорд╛рдирддрд╛ рд╣рд╛рдореАрд▓рд╛рдИ рднрдиреЗрд░ рдЪрд┐рдирд┐рдиреНрдЫ Codd рдкреНрд░рдореЗрдп).

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛ рдпреЛ рд▓реЗрдЦ

рдХрд┐рди?

Relational DBMSs: Oracle, Postgres, SQL Server, рдЖрджрд┐ рдЕрдЭреИ рдкрдирд┐ рд▓рдЧрднрдЧ рд╕рдмреИ рдард╛рдЙрдБрдорд╛ рдЫрдиреН рд░ рддреНрдпрд╣рд╛рдБ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЙрдЪреНрдЪ рдореМрдХрд╛ рдЫ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ, рдЬрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрдВрд▓реЗ рдпрд╛ рдд SQL (рдЬреБрди рдзреЗрд░реИ рд╕рдореНрднрд╛рд╡рд┐рдд рдЫ) рдкрдвреНрдиреБрдкрд░реНрдиреЗрдЫ рд╡рд╛ рдпрд╕рд▓рд╛рдИ рд▓реЗрдЦреНрдиреБрдкрд░реНрдЫред рдЕрд╕рдореНрднрд╡ рдкрдирд┐ рдЫреИрди)ред

рдХреЗ рдкрдвреНрдиреЗ рд░ рдкрдвреНрдиреЗ

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

рд╡реИрд╕реЗ, 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 - рднреЗрдХреНрдЯрд░ рдЧрдгрдирд╛, matrices рд░ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рддреНрдпрд╣рд╛рдБред
  • Scipy - рдпрд╕ рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдзреЗрд░реИ рдЧрдгрд┐рддрд╣рд░реВ рдЫрдиреН, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВред
  • Jupyter рд▓реНрдпрд╛рдм - рдзреЗрд░реИ рдЕрдиреНрд╡реЗрд╖рдг рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓реНрдпрд╛рдкрдЯрдкрд╣рд░реВрдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдлрд┐рдЯ рд╣реБрдиреНрдЫ - рдЬрд╛рдиреНрди рдЙрдкрдпреЛрдЧреАред
  • рдЕрдиреБрд░реЛрдзрд╣рд░реВ - рдиреЗрдЯрд╡рд░реНрдХрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИред
  • 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)ред рд╕рдордЧреНрд░рдорд╛, рдпрд╣рд╛рдБрдХреЛ рд╕рд╛рдордЧреНрд░реА рдЧреБрдЧрд▓рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рдЫ, рд░ рдпрджрд┐ рдореИрд▓реЗ рдлреЛрдХрд╕ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдкреНрдпрд╛рдХреЗрдЬ рдЫрд╛рдиреНрдиреБрдкрд░реНтАНрдпреЛ рднрдиреЗ, рдпреЛ рдкрдХреНрдХреИ рдкрдирд┐ рдкрд╛рдгреНрдбрд╛ рд╣реБрдиреЗрдЫред DS+Python рд╕рд╛рдордЧреНрд░реАрдХреЛ рд╕рдВрдпреЛрдЬрдирдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдкрдирд┐ рдзреЗрд░реИ рдзреЗрд░реИ.

рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рдХреЛ рд░реВрдкрдорд╛ рд╢реЗрд▓

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

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 - рд╕реНрдЯреНрд░рд┐рдорд▓реЗ рддреБрд░реБрдиреНрддреИ рдирддрд┐рдЬрд╛ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрдпреЛ рд░ рдкрд╛рдЗрдердирдорд╛ рдкреЛрд╕реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд░рдорд╛ рдкрд╛рд╕ рдЧрд░реНрдпреЛ (рдкрд╣рд┐рд▓реЛ рдЙрджрд╛рд╣рд░рдг рдЬрд╕реНрддреИ)
  • рдЖрдиреНрддрд░рд┐рдХ рд░реВрдкрдорд╛, рдкреЛрд╕реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░рд╛рдЬреНрдп рдореЗрд╕рд┐рди рдерд┐рдпреЛ рдЬрд╕рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛ рдЧрд░реНрдпреЛ 

рдХреБрд▓ рдорд┐рд▓рд╛рдПрд░, рдареВрд▓реЛ рдбреЗрдЯрд╛ (реж.рел рдЯреАрдмреА) рдорд╛ рдкреНрд░рд╡рд╛рд╣ рдореЛрдбрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЬрдЯрд┐рд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕реНрд░реЛрддрд╣рд░реВ рдмрд┐рдирд╛ рд░ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░ рдХреЗрд╣реА рдЙрдкрдХрд░рдгрд╣рд░реВрдмрд╛рдЯ рдмрдиреЗрдХреЛред

рдЕрд░реНрдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЯрд┐рдк: рдЯрд░реНрдорд┐рдирд▓рдорд╛ рд░рд╛рдореНрд░реЛ рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрд╣реЛрд╕реН рд░ bash/zsh/etc рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред

рдпреЛ рдХрд╣рд╛рдБ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫ? рд╣реЛ, рд▓рдЧрднрдЧ рдЬрддрд╛рддрддреИ - рдлреЗрд░рд┐, рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рдзреЗрд░реИ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдЫрдиреНред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдпрд╣рд╛рдБ рдпреЛ рдореЗрд░реЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд▓реЗрдЦред

рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩ

рдлреЗрд░рд┐, рдкрд╛рдардХрд▓реЗ рдЙрджреНрдШреЛрд╖ рдЧрд░реНрди рд╕рдХреНрдЫ - рдареАрдХ рдЫ, рдпреЛ рдПрдХ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд╣реЛ! рд░ рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдЙрд╣рд╛рдБ рд╕рд╣реА рд╣реБрдиреЗрдЫред рдЬреЗ рд╣реЛрд╕реН, рдореИрд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ R рд▓рд╛рдИ рдпрд╕реНрддреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рд╕рд╛рдордирд╛ рдЧрд░реЗрдВ рдХрд┐, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпреЛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╕рдБрдЧ рдзреЗрд░реИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдерд┐рдпреЛред

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

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рд▓рд┐рдПрдХреЛ рдпрд╣рд╛рдБ рджреЗрдЦрд┐ред рдЦреИрд░, рдо рдпрд╕рд▓рд╛рдИ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ, рд░рд╛рдореНрд░реЛ рд╕рд╛рдордЧреНрд░реАред

рдХрд┐рди рдПрдХ рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрд▓реЗ 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, рдЬрд╕реНрддреИ рдбреЗрдЯрд╛рдлреНрд░реЗрдорд╣рд░реВ рд░ рдбреЗрдЯрд╛ рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬреЗрд╢рдирдорд╛ рд╕рд░реЗрдХрд╛ рдЫрдиреН - рддреНрдпрд╕реИрд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ R рдорд╛ рдзреЗрд░реИ рдЪреАрдЬрд╣рд░реВ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд░рд┐рдЪрд┐рдд рд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рд╛рдЧреНрдиреЗрдЫред

рддреНрдпрд╣рд╛рдБ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рдзреЗрд░реИ рд╕реНрд░реЛрддрд╣рд░реВ рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ.

рдЬреНрдЮрд╛рди рдЧреНрд░рд╛рдл

рдпрд╣рд╛рдБ рдорд╕рдБрдЧ рдереЛрд░реИ рдЕрд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрднрд╡ рдЫ, рдХрд┐рдирдХрд┐ рдореИрд▓реЗ рдкреНрд░рд╛рдп: рдЧреНрд░рд╛рдлрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЬреНрдЮрд╛рди рдЧреНрд░рд╛рдлрд╣рд░реВ рд░ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫред рддрд╕рд░реНрде, рд╣рд╛рдореА рдЫреЛрдЯрдХрд░реАрдорд╛ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВрдорд╛ рдЬрд╛рдФрдВ, рдХрд┐рдирдХрд┐ рдпреЛ рднрд╛рдЧ рдЕрд▓рд┐ рдмрдвреА рд╡рд┐рджреЗрд╢реА рдЫред

рд╢рд╛рд╕реНрддреНрд░реАрдп рд░рд┐рд▓реЗрд╢рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдпреЛрдЬрдирд╛ рдЫ, рддрд░ рдпрд╣рд╛рдБ рд╕реНрдХреАрдорд╛ рд▓рдЪрд┐рд▓реЛ рдЫ, рдкреНрд░рддреНрдпреЗрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╡рд╛рд╕реНрддрд╡рдорд╛ "рд╕реНрддрдореНрдн" рд╣реЛ рд░ рдЕрдЭ рдмрдвреАред

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

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
www.wikidata.org/wiki/Q42

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

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рддреНрдпрд╕реИрд▓реЗ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╕рдмреИ рдбрд╛рдЯрд╛ рдЧреНрд░рд╛рдлрдХреЛ рд░реВрдкрдорд╛ рд╡рд╛ рдмрд╛рдЗрдирд░реА рд░ рдПрдХрд▓ рдмреБрд▓рд┐рдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХреЛ рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред

рддрдкрд╛рдИрдВ рдкрдирд┐ рдпреЛ рдХрд╣рд╛рдБ рд╕рд╛рдордирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ? рдкрд╣рд┐рд▓реЛ, рд╕рдВрдЧ рдХрд╛рдо рдбрд╛рдЯрд╛ рд╡рд┐рдХрд┐, рд░ рдХреБрдиреИ рдкрдирд┐ рдЧреНрд░рд╛рдл рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛ рдЬрдбрд╛рди рдбреЗрдЯрд╛ рд╕рдВрдЧред

рдореИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рд░ рдХрд╛рдо рдЧрд░реЗрдХреЛ рдореБрдЦреНрдп рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВ рдирд┐рдореНрди рд╣реБрдиреНред

SPARQL

Wiki:
SPARQL (рдкреБрдирд░рд╛рд╡рд░реНрддреА рдПрдХреНрд░реЛрдирд┐рдо рджреЗрдЦрд┐ Engред SPARQL рдкреНрд░реЛрдЯреЛрдХрд▓ рд░ RDF рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛) - рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛, рдореЛрдбреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ RDFрд░ рдкреНрд░реЛрдЯреЛрдХрд▓ рдпреА рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЬрд╡рд╛рдл рджрд┐рдиред SPARQL рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдиреБрднрдпреЛ W3C рдХрдиреНрд╕реЛрд░реНрдЯрд┐рдпрдо рд░ рдкреНрд░рд╡рд┐рдзрд┐ рдордзреНрдпреЗ рдПрдХ рд╕рд┐рдореЗрдиреНрдЯрд┐рдХ рд╡реЗрдм.

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

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

рдбреЗрдЯрд╛ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдХреЛ рдЙрджрд╛рд╣рд░рдг:

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛
рдпрд╣рд╛рдБ рджреЗрд╢рд╣рд░реБ рд╕рдВрдЧ рддрд╕реНрд╡реАрд░ рд░ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджреЗрдЦрд┐.

рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рд╢реНрди рдЙрджрд╛рд╣рд░рдг

рдбрд╛рдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХрдХрд╛ рдиреЛрдЯрд╣рд░реВ: рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рд╛

рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╣рд╛рдореА ? рджреЗрд╢ рдЪрд░ рдХреЛ рдореВрд▓реНрдп рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рдЬрд╕реНрддреИ predicate рдХреЛ рд▓рд╛рдЧреА
member_of, рдпреЛ рд╕рддреНрдп рд╣реЛ рдХрд┐ member_of(?country,q458) рд░ q458 рдпреВрд░реЛрдкреАрдп рд╕рдВрдШрдХреЛ ID рд╣реЛред

рдкрд╛рдЗрдерди рдЗрдиреНрдЬрд┐рди рднрд┐рддреНрд░рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди