рдЯрд╛рд░рдирдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдбрдЪреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рдХреНрд╖рдорддрд╛

рдЯрд╛рд░рдирдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдбрдЪреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рдХреНрд╖рдорддрд╛

2017 рдордзреНрдпреЗ, рдЖрдореНтАНрд╣реА рдЕрд▓реНрдлрд╛-рдмрдБрдХреЗрдЪреНтАНрдпрд╛ рдЧреБрдВрддрд╡рдгреБрдХреАрдЪреНтАНрдпрд╛ рд╡реНтАНрдпрд╡рд╕рд╛рдпрд╛рдЪрд╛ рд╡реНтАНрдпрд╡рд╣рд╛рд░ рдХреЗрдВрджреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕реНтАНрдкрд░реНрдзрд╛ рдЬрд┐рдВрдХрд▓реА рдЖрдгрд┐ рдХрд╛рдорд╛рд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА (HighLoad++ 2018 рд╡рд░ рдЧреБрдВрддрд╡рдгреВрдХ рд╡реНтАНрдпрд╡рд╕рд╛рдпрд╛рдЪреНрдпрд╛ рдЧрд╛рднреНтАНрдпрд╛рд╡рд░реАрд▓ рдЕрд╣рд╡рд╛рд▓рд╛рд╕рд╣ рд╕рд╛рджрд░ рдХреЗрд▓реЗ рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдбреНрд░рд┐рдирдХрд┐рди, рдЕрд▓реНрдлрд╛ рдмрдБрдХреЗрдЪреНрдпрд╛ рдЧреБрдВрддрд╡рдгреВрдХ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдЪреЗ рдкреНрд░рдореБрдЦ). рдпрд╛ рдкреНрд░рдгрд╛рд▓реАрдиреЗ рд╡рд┐рд╡рд┐рдз рд╕реНрддреНрд░реЛрддрд╛рдВрдХрдбреВрди рд╡рд┐рд╡рд┐рдз рд╕реНрд╡рд░реВрдкрд╛рддреАрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдбреЗрдЯрд╛ рдПрдХрддреНрд░рд┐рдд рдХрд░рдгреЗ, рдбреЗрдЯрд╛ рдПрдХрддреНрд░рд┐рдд рд╕реНрд╡рд░реВрдкрд╛рдд рдЖрдгрдгреЗ, рддреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрддреЗ.

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

рдорд▓рд╛ TDG рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдЖрдореНрд╣рд╛рд▓рд╛ рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ рдЙрдкрд╛рдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рд╛рдпрдЪреЗ рдЖрд╣реЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдУрд│рдЦ рдХрд░реВрди рджреНрдпрд╛рдпрдЪреА рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдордЪреЗ рдЙрддреНрдкрд╛рджрди рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рдиреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдзрд╛рд░ рдХрд╕рд╛ рдмрдиреВ рд╢рдХрддреЛ рд╣реЗ рджрд░реНрд╢рд╡реВ рдЗрдЪреНрдЫрд┐рддреЛ.

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

рдЯрд╛рд░рдирдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдбрдЪреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рдХреНрд╖рдорддрд╛

рдХрдиреЗрдХреНрдЯрд░

рдХрдиреЗрдХреНрдЯрд░ рдмрд╛рд╣реНрдп рдЬрдЧрд╛рд╢реА рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ; рддреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рд╡рд┐рдирдВрддреА рд╕реНрд╡реАрдХрд╛рд░рдгреЗ, рддреНрдпрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреЗ рдЖрдгрд┐ рд╣реЗ рдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░рд▓рд╛ рдкрд╛рдард╡рдгреЗ. рдЖрдореНрд╣реА HTTP, SOAP, Kafka, FIX рдлреЙрд░рдореЕрдЯрд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЛ. рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдирд╡реАрди рдлреЙрд░рдореЕрдЯрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, IBM MQ рд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╡рдХрд░рдЪ рдпреЗрдд рдЖрд╣реЗ. рд╡рд┐рдирдВрддреА рдкрд╛рд░реНрд╕ рдХрд░рдгреЗ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕, рдХрдиреЗрдХреНрдЯрд░ рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░реЗрд▓; рдЕрдиреНрдпрдерд╛, рддреЗ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдИрд▓ рдХреА рд╡рд┐рдирдВрддреАрд╡рд░ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЧреЗрд▓реА, рдЬрд░реА рддреНрдпрд╛рдЪреНрдпрд╛ рдкреБрдвреАрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рддреНрд░реБрдЯреА рдЖрд▓реА. рд╣реЗ рд╡рд┐рд╢реЗрд╖рддрдГ рдЕрд╢рд╛ рд╕рд┐рд╕реНрдЯрдорд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ рдЬреНрдпрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреАрдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд╢реА рдХрд░рд╛рд╡реА рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА - рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЙрд▓рдЯ, рддреЗ рдЦреВрдк рдЪрд┐рдХрд╛рдЯреАрдиреЗ рдХрд░рд╛. рдбреЗрдЯрд╛ рдЧрдорд╛рд╡реВ рдирдпреЗ рдореНрд╣рдгреВрди, рджреБрд░реБрд╕реНрддреАрдЪреА рд░рд╛рдВрдЧ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ: рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдердо рддреНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╢рд╕реНрд╡реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░рдЪ рддреНрдпрд╛рддреВрди рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреЗ. рдкреНрд░рд╢рд╛рд╕рдХрд╛рд╕ рджреБрд░реБрд╕реНрддреАрдЪреНрдпрд╛ рд░рд╛рдВрдЧреЗрдд рдЙрд░рд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВрдВрдмрджреНрджрд▓ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рддреНрд░реБрдЯреА рдХрд┐рдВрд╡рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЕрдкрдпрд╢ рджреВрд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдкреБрдиреНрд╣рд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛.

рдЗрдирдкреБрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░

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

рд╣рдБрдбрд▓рд░реНрд╕рдЪреЗ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:

sum.lua

local x, y = unpack(...)
return x + y

рдЖрдгрд┐ рдирдВрддрд░, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ:

functions:
  sum: { __file: sum.lua }

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

рд╕реНрдЯреЛрд░реЗрдЬ

рд╕реНрдЯреЛрд░реЗрдЬ рд╕рддрдд рдбреЗрдЯрд╛ рд╕рд╛рдард╡рддреЗ. рд╕реЗрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛рдЪреНрдпрд╛ рд╡рд┐рд░реВрджреНрдз рдбреЗрдЯрд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╕рд░реНрдХрд┐рдЯрдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд░рддреЛ Apache Avro. рдЙрджрд╛рд╣рд░рдгрдГ

{
    "name": "User",
    "type": "record",
    "logicalType": "Aggregate",
    "fields": [ 
        { "name": "id", "type": "string"}, 
        {"name": "first_name", "type": "string"}, 
        {"name": "last_name", "type": "string"} 
    ], 
    "indexes": ["id"] 
}

рдпрд╛ рд╡рд░реНрдгрдирд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд, DDL (рдбреЗрдЯрд╛ рдбреЗрдлрд┐рдирд┐рд╢рди рд▓рдБрдЧреНрд╡реЗрдЬ) рдЯреЕрд░рдВрдЯреБрд▓рд╛ DBMS рд╕рд╛рдареА рдЖрдкреЛрдЖрдк рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддреЗ рдЖрдгрд┐ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕рд╕рд╛рдареА рд╕реНрдХреАрдорд╛.

рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдХреГрддреА рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ (рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрд╣реЗ).

рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░

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

рд╕реНрдХреЗрд▓рд┐рдВрдЧ

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

рдбреЗрдЯрд╛ рдЧреБрдгрдзрд░реНрдо

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

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

рдХрд╛рд░реНрдпреЗ

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

рдЯрд╛рд░рдирдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдбрдЪреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рдХреНрд╖рдорддрд╛

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

рд▓реЙрдЧрд░

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

рд╕реЗрд╡рд╛

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

рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реЗрд╡реЗрдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ:

services:
   sum:
      doc: "adds two numbers"
      function: sum
      return_type: int
      args:
         x: int
         y: int

GraphQL API рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддреЗ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдХреЙрд▓рд┐рдВрдЧрд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ:

query {
   sum(x: 1, y: 2) 
}

рд╣реЗ рд╣рдБрдбрд▓рд░рд▓рд╛ рдХреЙрд▓ рдХрд░реЗрд▓ sumрдЬреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдИрд▓:

3

рдХреНрд╡реЗрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕

рд╕рд┐рд╕реНрдЯрдордЪреЗ рдСрдкрд░реЗрд╢рди рдЖрдгрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╡рд┐рдирдВрддреНрдпрд╛ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА OpenTracing рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ. рд╕рд┐рд╕реНрдЯреАрдо рдпрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд▒реНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдирд╛ рдорд╛рдЧрдгреАрдиреБрд╕рд╛рд░ рдорд╛рд╣рд┐рддреА рдкрд╛рдард╡реВ рд╢рдХрддреЗ, рдЬрд╕реЗ рдХреА Zipkin, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рдирдВрддреА рдХрд╢реА рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЧреЗрд▓реА рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓:

рдЯрд╛рд░рдирдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдбрдЪреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рдХреНрд╖рдорддрд╛

рд╕рд╛рд╣рдЬрд┐рдХрдЪ, рдкреНрд░рдгрд╛рд▓реА рдЕрдВрддрд░реНрдЧрдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЬреА рдкреНрд░реЛрдорд┐рдерд┐рдпрд╕ рд╡рд╛рдкрд░реВрди рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдЧреНрд░рд╛рдлрдирд╛ рд╡рд╛рдкрд░реВрди рджреГрд╢реНрдпрдорд╛рди рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.

рддреИрдирд╛рдд рдХрд░рдгреЗ

рдЯрд╛рд░рдирдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдб RPM рдкреЕрдХреЗрдЬреЗрд╕ рдХрд┐рдВрд╡рд╛ рдЖрд░реНрдХрд╛рдЗрд╡реНрд╣рдордзреВрди рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рд╡рд┐рддрд░рдг рдХрд┐рдВрд╡рд╛ рдЙрддреНрддрд░рджрд╛рдпрд┐рддреНрд╡рд╛рддреАрд▓ рдЙрдкрдпреБрдХреНрддрддрд╛ рд╡рд╛рдкрд░реВрди, рдХреБрдмрд░рдиреЗрдЯреЗрд╕рд╕рд╛рдареА рджреЗрдЦреАрд▓ рд╕рдорд░реНрдерди рдЖрд╣реЗ (рдЯрд╛рд░рдирдЯреВрд▓ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдСрдкрд░реЗрдЯрд░).

рдмрд┐рдЭрдиреЗрд╕ рд▓реЙрдЬрд┐рдХ (рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рд╣рдБрдбрд▓рд░реНрд╕) рд▓рд╛рдЧреВ рдХрд░рдгрд╛рд░реЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди UI рджреНрд╡рд╛рд░реЗ рд╕рдВрдЧреНрд░рд╣рдг рд╕реНрд╡рд░реВрдкрд╛рдд рдХрд┐рдВрд╡рд╛ рдЖрдордЪреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ API рджреНрд╡рд╛рд░реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рддреИрдирд╛рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ Tarantool рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдб рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд▓реЛрдб рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдирдореБрдирд╛ рдЕрд░реНрдЬ

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

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

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

рдкреБрдвреАрд▓ рдХрд╛рдп рдЖрд╣реЗ?

рд╡рд╛рдкрд░реВрди рд╡рд┐рдХрд╛рд╕рд╛рдЪреА рд╕реБрд▓рднрддрд╛ рд╕реБрдзрд╛рд░рдгреЗ рд╣реЗ рдЖрдордЪреЗ рдкреНрд░рд╛рдзрд╛рдиреНрдп рдЖрд╣реЗ рдЯрд╛рд░рдВрдЯреВрд▓ рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдб. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдБрдбрдмреЙрдХреНрд╕рдордзреНрдпреЗ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рдбреАрдмрдЧрд┐рдВрдЧ рд╣рдБрдбрд▓рд░рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЕрд╕рд▓реЗрд▓рд╛ рд╣рд╛ IDE рдЖрд╣реЗ.

рд╕реБрд░рдХреНрд╖реЗрдЪреНрдпрд╛ рдореБрджреНрджреНрдпрд╛рдВрдХрдбреЗрд╣реА рдЖрдореНрд╣реА рдЦреВрдк рд▓рдХреНрд╖ рджреЗрддреЛ. рдЖрддреНрддрд╛ рдЖрдореНрд╣реА рдЙрдЪреНрдЪ рдкрд╛рддрд│реАрдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреА рдкреБрд╖реНрдЯреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╡реИрдпрдХреНрддрд┐рдХ рдбреЗрдЯрд╛ рдорд╛рд╣рд┐рддреА рдкреНрд░рдгрд╛рд▓реА рдЖрдгрд┐ рд╕рд░рдХрд╛рд░реА рдорд╛рд╣рд┐рддреА рдкреНрд░рдгрд╛рд▓реАрдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдЪреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдЪреА рдкреВрд░реНрддрддрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░рд╢рд┐рдпрд╛рдЪреНрдпрд╛ FSTEC рджреНрд╡рд╛рд░реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдШреЗрдд рдЖрд╣реЛрдд.

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

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