рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рд╕реА ++ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдореЗрд░реА рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕реА ++ рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реА ++ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рднреА рд╣реИрдВред


рдЕрдкрд╛рдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдПрдХ рд╣рд╛рдм рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЕрдкрд╛рдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЕрднреА рддрдХ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ


рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреИрд╕реЗ рдЖрдпрд╛ рдФрд░ рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИред рдпреЗ рд╕рднреА рдкреНрд░рд╢реНрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рдпрд╣рд╛рдБ рдпрд╛ рдпрд╣рд╛рдБ рдЙрдард╛рдП рдЧрдП рд╣реИрдВ ред


рддреЛ, рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд░реИрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдПрдХ рддреЗрдЬреА рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдПрдХ рдЗрди-рдореЗрдореЛрд░реА рдбреЗрдЯрд╛ рдЧреНрд░рд┐рдб рд╕реЗ рдмрдврд╝реА рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рд╡рд┐рддрд░рд┐рдд рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдмрд╣реБрдд рддреЗрдЬрд╝, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрди-рдореЗрдореЛрд░реА рд╡рд┐рддрд░рд┐рдд рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реАрд▓рд┐рдП, рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХреА рддреЗрдЬреА рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ: рдореИрдк-рд░рд┐рдбреНрдпреВрд╕, рдПрдЯреЙрдорд┐рдХ рдбреЗрдЯрд╛ рдСрдкрд░реЗрд╢рдВрд╕, рдлреБрд▓-рдПрдбреЗрдб рдПрд╕реАрдЖрдИрдбреА тАЛтАЛрдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рдВрд╕, рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛ рдХреНрд╡реЗрд╢реНрдЪрдВрд╕, рддрдерд╛рдХрдерд┐рдд рдХрдВрдЯреАрдиреНрдпреВрдЬрд╝ рдХреНрд╡реЗрд░реАрдЬрд╝, рдЬреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


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


рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ


рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдкреВрдЫреЗрдВрдЧреЗ: "рдЕрдЧрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдлрд░реНрдХ рдкрдбрд╝рддрд╛ рд╣реИ?" рдЗрд╕ рдмрд╛рдд рдореЗрдВ рдХреБрдЫ рд╕рдЪреНрдЪрд╛рдИ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдЧреНрдирд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк ODBC рдпрд╛ JDBC рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ ignite.sh рд▓рд┐рдкрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░ рдиреЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ ignite.sh , рдЙрдиреНрд╣реЗрдВ рд▓рдЪреАрд▓реЗ ignite.sh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрдврд╝рддрд╛ рд╣реИ, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЧреЛ рд╕реЗ рднреА, PHP рд╕реЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред


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


рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЪреВрдВрдХрд┐ рдЗрдЧреНрдирд╛рдЗрдЯ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рд╡реНрдпрд╛рдкрдХ рдПрдкреАрдЖрдИ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд╛рд╡рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, C # .NET рдФрд░ C ++ рдХреЗ рд▓рд┐рдП рднреА рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВред рдпреЗ рддрдерд╛рдХрдерд┐рдд "рдореЛрдЯреА" рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдЗрдЧреНрдирд╛рдЗрдЯ рдиреЛрдб, рд╕реА ++ рдпрд╛ рд╕реА # рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдЬреЗрдПрдирдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдХреА рдиреЛрдб рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрд░рдо рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрдЧрдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП - рд╕реА ++ рдФрд░ рд╕реА #ред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрдерд╛рдХрдерд┐рдд "рдкрддрд▓реЗ" рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рдпреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╣рд▓реНрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдмрд╣реБрдд рдХрдо рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рд▓реЗрддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдорд╢реАрди рдкрд░ рдПрдХ рдЬреЗрд╡реАрдПрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдкрд╛рд╕ "рдореЛрдЯреА" рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрддрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд░ рдЗрддрдирд╛ рд╕рдореГрджреНрдз рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реИред рдЖрдЬ рдЬрд╛рд╡рд╛, C #, рдФрд░ Node.js рдореЗрдВ рдкрддрд▓реЗ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ, C ++, PHP, Python3, Go рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реИрдВред


рдПрдХ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ C ++ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЗрдЧреНрдирд╛рдЗрдЯ рдореЛрдЯреА рдПрдкреАрдЖрдИ рдХреЛ рджреЗрдЦреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рд╡реНрдпрд╛рдкрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ


рдореИрдВ рдврд╛рдВрдЪреЗ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдпрдорд┐рдд рд╣реИ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ ред рд╕реАрдзреЗ рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред


рдЪреВрдВрдХрд┐ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдПрдХ рд╡рд┐рддрд░рд┐рдд рдордВрдЪ рд╣реИ, рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдиреЛрдб рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓рддрд╛ рд╕реЗ ignite::Ignition рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ignite::Ignition рдХреНрд▓рд╛рд╕:


 #include <iostream> #include <ignite/ignition.h> using namespace ignite; int main() { IgniteConfiguration cfg; Ignite node = Ignition::Start(cfg); std::cout << "Node started. Press 'Enter' to stop" << std::endl; std::cin.get(); Ignition::StopAll(false); std::cout << "Node stopped" << std::endl; return 0; } 

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


рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реА ++ рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдЬреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рдХреИрд╢, ignite::cache::Cache<K,V> ред рдХреИрд╢ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ Cache рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рддрд░рд┐рдд рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЗ map рдпрд╛ unordered_map рдЬреИрд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред


 #include <string> #include <cassert> #include <cstdint> #include <ignite/ignition.h> using namespace ignite; struct Person { int32_t age; std::string firstName; std::string lastName; } //... int main() { IgniteConfiguration cfg; Ignite node = Ignition::Start(cfg); cache::Cache<int32_t, Person> personCache = node.CreateCache<int32_t, Person>("PersonCache"); Person p1 = { 35, "John", "Smith" }; personCache.Put(42, p1); Person p2 = personCache.Get(42); std::cout << p2 << std::endl; assert(p1 == p2); return 0; } 

рдмрд╣реБрдд рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЕрдЧрд░ рд╣рдо C ++ рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред


C ++ рдПрдХреАрдХрд░рдг рдЪреБрдиреМрддрд┐рдпрд╛рдВ


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдкреВрд░реА рддрд░рд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдУрдУрдкреА-рд╕рдВрдЪрд╛рд▓рд┐рдд рднрд╛рд╖рд╛ред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдЗрд╕ рднрд╛рд╖рд╛ рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд╕рд╛рде, рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдШрдЯрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдереАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбрд┐рд╕реНрдХ рдкрд░ рднрдВрдбрд╛рд░рдг рдФрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕рдВрдЪрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди / deserialization рдХреЗ рд▓рд┐рдПред


рдЬрд╛рд╡рд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд C ++ рдореЗрдВ, рдРрд╕рд╛ рдХреЛрдИ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рддрд┐рдмрд┐рдВрдм рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд╣реАрдВ, рдЕрднреА рддрдХ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдирд╣реАрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдХреЛрдИ рддрд░реАрдХреЗ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз / deserializing рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред


рдЗрдЧреНрдирд╛рдЗрдЯ рд╕реА ++ рдореЗрдВ, рдпрд╣ ignite::binary::BinaryType<T> рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ "рдореЛрдЯреА" рдФрд░ "рдкрддрд▓реЗ" рдХреНрд▓рд╛рдЗрдВрдЯ рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рд╡реНрдпрдХреНрддрд┐ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:


 namespace ignite { namespace binary { template<> struct BinaryType<Person> { static int32_t GetTypeId() { return GetBinaryStringHashCode("Person"); } static void GetTypeName(std::string& name) { name = "Person"; } static int32_t GetFieldId(const char* name) { return GetBinaryStringHashCode(name); } static bool IsNull(const Person& obj) { return false; } static void GetNull(Person& dst) { dst = Person(); } static void Write(BinaryWriter& writer, const Person& obj) { writer.WriteInt32("age", obj.age; writer.WriteString("firstName", obj.firstName); writer.WriteString("lastName", obj.lastName); } static void Read(BinaryReader& reader, Person& dst) { dst.age = reader.ReadInt32("age"); dst.firstName = reader.ReadString("firstName"); dst.lastName = reader.ReadString("lastName"); } }; } // namespace binary } // namespace ignite 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрд░рдорд╛рдВрдХрди / deserialization BinaryType<Person>::Write , BinaryType<Person>::Read , рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд╕реНрдЯрдо C ++ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:


  • GetTypeName() - рдЯрд╛рдЗрдк рдирд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕ рдкрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЗрдЧреНрдирд╛рдЗрдЯ C ++ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд╛рдо рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • GetTypeId() - рдпрд╣ рд╡рд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджреЗрддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЧрдгрдирд╛ рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рд╣реЛред GetBinaryStringHashCode(TypeName) рд╡рд┐рдзрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА ID рд▓реМрдЯрд╛рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдкрдХреЛ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • GetFieldId() - рдкреНрд░рдХрд╛рд░ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ, рд╕рд╣реА рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдпрд╣ GetBinaryStringHashCode() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ;
  • IsNull() - рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг NULL рдкреНрд░рдХрд╛рд░ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ NULL ред NULL рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реА рд░реВрдк рд╕реЗ NULL рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, BinaryType< std::unique_ptr<Person> > ред
  • GetNull() - рдЬрдм рдХрд┐рд╕реА NULL рд╡реИрд▓реНрдпреВ рдХреЛ GetNull() рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред IsNull рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ GetNull() рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИред

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


рдпрджрд┐ рд╣рдо рд╢рд╛рд╕реНрддреНрд░реАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреИрд╢ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрддреА рд╣реИ - рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рдеред рдХреИрд╢ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ PUBLIC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдорд╛рдирдХ DDL рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЯреЗрдмрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ / рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХреНрд░рд┐рдПрдЯ CREATE TABLE , DROP TABLE рдФрд░ рдЗрддрдиреЗ рдкрд░ред рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдпреЛрдЬрдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ ODBC / JDBC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдХреЗрд╡рд▓ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдЧреНрдирд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


рдЗрдЧреНрдирд╛рдЗрдЯ рдбреАрдПрдордПрд▓ рдФрд░ рдбреАрдбреАрдПрд▓ рд╕рд╣рд┐рдд рдкреВрд░реНрдг рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред SQL рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдореБрджрд╛рдп рдЕрдм MVCC рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд▓реЗрдирджреЗрди рдХреЛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдФрд░, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдереЗред


SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╢ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреИрд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ SQL рдХреНрд╡реЗрд░реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХреМрди рд╕реЗ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди XML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдиреЛрдб рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> <property name="cacheConfiguration"> <list> <bean class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="PersonCache"/> <property name="queryEntities"> <list> <bean class="org.apache.ignite.cache.QueryEntity"> <property name="keyType" value="java.lang.Integer"/> <property name="valueType" value="Person"/> <property name="fields"> <map> <entry key="age" value="java.lang.Integer"/> <entry key="firstName" value="java.lang.String"/> <entry key="lastName" value="java.lang.String"/> </map> </property> </bean> </list> </property> </bean> </list> </property> </bean> </beans> 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рд╡рд╛ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдиреЛрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреИрд╢ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЖрдк рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 //... int main() { IgniteConfiguration cfg; cfg.springCfgPath = "config.xml"; Ignite node = Ignition::Start(cfg); cache::Cache<int32_t, Person> personCache = node.GetCache<int32_t, Person>("PersonCache"); personCache.Put(1, Person(35, "John", "Smith")); personCache.Put(2, Person(31, "Jane", "Doe")); personCache.Put(3, Person(12, "Harry", "Potter")); personCache.Put(4, Person(12, "Ronald", "Weasley")); cache::query::SqlFieldsQuery qry( "select firstName, lastName from Person where age = ?"); qry.AddArgument<int32_t>(12); cache::query::QueryFieldsCursor cursor = cache.Query(qry); while (cursor.HasNext()) { QueryFieldsRow row = cursor.GetNext(); std::cout << row.GetNext<std::string>() << ", "; std::cout << row.GetNext<std::string>() << std::endl; } return 0; } 

рдЙрд╕реА рддрд░рд╣, рдЖрдк insert , update , create table рдФрд░ рдЕрдиреНрдп рдХреНрд╡реЗрд░реА create table рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХреНрд░реЙрд╕-рдХреИрд╢ рдЕрдиреБрд░реЛрдз рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреИрд╢ рдирд╛рдо рдпреЛрдЬрдирд╛ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗ рдмрдЬрд╛рдп


 select * from Person inner join Profession 

рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП


 select * from "PersonCache".Person inner join "ProfessionCache".Profession 

рдФрд░ рдЗрд╕реА рддрд░рд╣


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


PS рдореИрдВ 2017 рд╕реЗ рдЕрдкрд╛рдЪреЗ рдЗрдЧреНрдирд╛рдЗрдЯ рдХрдореЗрдЯрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП C ++ API рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк C ++, Java, рдпрд╛ .NET рд╕реЗ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ рдПрдХ рд╕рдХреНрд░рд┐рдп, рдореИрддреНрд░реАрдкреВрд░реНрдг рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдПрдХ рдЦреБрд▓реЗ рдЙрддреНрдкрд╛рдж рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗред

Source: https://habr.com/ru/post/hi420623/


All Articles