рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ - PostgreSQL, Cassandra, рд░ MongoDB рддреБрд▓рдирд╛ рдЧрд░реНрджреИ

рдирдорд╕реНрддреЗ рд╕рд╛рдереАрд╣рд░реВред рдореЗрдХреЛ рдмрд┐рджрд╛рдХреЛ рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрдерд╛рди рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╣рд╛рдореА рддрдкрд╛рдЗрдБрд╕рдБрдЧ рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдЭрд╛ рдЧрд░реНрджрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд╛рдареНрдпрдХреНрд░рдордорд╛ рдирдпрд╛рдБ рд╕реНрдЯреНрд░рд┐рдордХреЛ рдкреНрд░рдХреНрд╖реЗрдкрдгрдХреЛ рдкреНрд░рддреНрдпрд╛рд╢рд╛рдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВред "рд░рд┐рд▓реЗрд╢рдирд▓ DBMS".

рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ - PostgreSQL, Cassandra, рд░ MongoDB рддреБрд▓рдирд╛ рдЧрд░реНрджреИ

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

рдпрд╕ рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбреЗрдЯрд╛ рдореЛрдбрд▓рд┐рдЩрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ SQL рд░ NoSQL рдмреАрдЪрдХреЛ рд╕рд╣реА рдЫрдиреМрдЯ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреБ рд╣реЛред рд╣рд╛рдореА рдПрдЙрдЯрд╛ SQL рдбрд╛рдЯрд╛рдмреЗрд╕, рдЬрд╕реНрддреИ PostgreSQL, рд░ рджреБрдИ NoSQL рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ, рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛ рд░ MongoDB, рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрдирдХреЛ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди, рдЬрд╕реНрддреИ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рднрд░реНрдиреЗ, рддрд╛рд▓рд┐рдХрд╛рдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкрдвреНрдиреЗ, рд░ рдпрд╕рд▓рд╛рдИ рдореЗрдЯрд╛рдЙрдиреЗ рд╣реЗрд░реНрдиреЗрдЫреМрдВред рдЕрд░реНрдХреЛ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ, рд▓реЗрдирджреЗрдирд╣рд░реВ, JOINs, TTL рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ, рд░ JSON-рдЖрдзрд╛рд░рд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рд╣реЗрд░реНрди рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреЗрдЫреМрдВред

SQL рд░ NoSQL рдмреАрдЪ рдХреЗ рднрд┐рдиреНрдирддрд╛ рдЫ?

SQL рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрд▓реЗ ACID рд▓реЗрдирджреЗрди рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЖрд╡реЗрджрди рд▓рдЪрд┐рд▓реЛрдкрди рдмрдврд╛рдЙрдБрдЫрдиреН, рд╕рд╛рдерд╕рд╛рдереИ рдЕрд╡рд╕реНрдерд┐рдд рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░рд┐рд▓реЗрд╕рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ рдореЛрдбреЗрд▓рд╣рд░реВрдХреЛ рд╢реАрд░реНрд╖рдорд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░рд┐рдХрд╛рд╣рд░реВрдорд╛ JOINs рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛ рдХреНрд╡реЗрд░реА рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ред

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

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

NoSQL рд▓реЗ рд╡рд┐рддрд░рд┐рдд рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╣рд╛рд╕рд┐рд▓ рдЧрд░реНрдирдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ рд░ ACID рд▓реЗрдирджреЗрди рд╣рд╛рдирд┐, JOINs, рд░ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдорд╛рдзреНрдпрдорд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЯреНрд░реЗрдбрдЕрдлрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реНрдХ рд╣реЛред

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

рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛рд▓реЗ NoSQL рдорд╛ рдбреЗрдЯрд╛ рдореЛрдбрд▓рд┐рдЩ SQL рдмрд╛рдЯ рдХрд╕рд░реА рдлрд░рдХ рдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдБрдЫред

рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ - PostgreSQL, Cassandra, рд░ MongoDB рддреБрд▓рдирд╛ рдЧрд░реНрджреИ

SQL рд░ NoSQL: рдХрд┐рди рджреБрдмреИ рдЖрд╡рд╢реНрдпрдХ рдЫ?

Amazon.com, Netflix, Uber, рд░ Airbnb рдЬрд╕реНрддрд╛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рднрдПрдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╡рд┐рд╢реНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рдЬрдЯрд┐рд▓, рдмрд╣реБрдореБрдЦреА рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрдиреЗ рдЬрд┐рдореНрдорд╛ рджрд┐рдЗрдПрдХреЛ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Amazon.com рдЬрд╕реНрддрд╛ рдИ-рдХрдорд░реНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдЬрд╛рдирдХрд╛рд░реА, рдЙрддреНрдкрд╛рджрдирд╣рд░реВ, рдЕрд░реНрдбрд░рд╣рд░реВ, рдЗрдирднреНрд╡рд╛рдЗрд╕рд╣рд░реВ, рдЙрддреНрдкрд╛рджрди рд╕рдореАрдХреНрд╖рд╛, рд╕рдорд░реНрдерди рд╕рдиреНрджреЗрд╢рд╣рд░реВ, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВ рдЬрд╕реНрддрд╛ рднрд╛рд░реА, рдХрдо рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛рд╣рд░реВ рдЬрд╕реНрддрд╛ рд╣рд▓реНрдХрд╛, рдЙрдЪреНрдЪ-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореАрдХреНрд╖рд╛ рд░ рд╕рд┐рдлрд╛рд░рд┐рд╕рд╣рд░реВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛, рдпреА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ NoSQL рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рд╛рдердорд╛ рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ SQL рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рднрд░ рдкрд░реНрдЫрдиреНред рдХреНрд░рд╕-рдХреНрд╖реЗрддреНрд░реАрдп рд░ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛, рдПрдХ NoSQL рдбрд╛рдЯрд╛рдмреЗрд╕рд▓реЗ рдПрдХрд▓ рдХреНрд╖реЗрддреНрд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрдд SQL рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рднреВ-рд╡рд┐рддрд░рд┐рдд рдХреНрдпрд╛рд╕рдХреЛ рд░реВрдкрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрджрдЫред

YugaByte DB рд▓реЗ SQL рд░ NoSQL рд▓рд╛рдИ рдХрд╕рд░реА рдЬреЛрдбреНрдЫ?

рд▓рдЧ-рдЙрдиреНрдореБрдЦ рдорд┐рд╢реНрд░рд┐рдд рднрдгреНрдбрд╛рд░рдг рдЗрдиреНрдЬрд┐рдирдорд╛ рдирд┐рд░реНрдорд┐рдд, рд╕реНрд╡рдд:-рд╢реЗрд░реНрдбрд┐рдЩ, рд╕рд╛рдЭрд╛ рд╡рд┐рддрд░рд┐рдд рд╕рд╣рдорддрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рд░ ACID рд╡рд┐рддрд░рд┐рдд рд▓реЗрдирджреЗрдирд╣рд░реВ (рдЧреБрдЧрд▓ рд╕реНрдкреНрдпрд╛рдирд░рдмрд╛рдЯ рдкреНрд░реЗрд░рд┐рдд), рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рд╕рдВрд╕рд╛рд░рдХреЛ рдкрд╣рд┐рд▓реЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реЛ рдЬреБрди NoSQL (Cassandra & Redis) рд╕рдБрдЧ рдПрдХреИрд╕рд╛рде рдЙрдкрдпреБрдХреНрдд рдЫред SQL (PostgreSQL)ред рддрд▓рдХреЛ рддрд╛рд▓рд┐рдХрд╛рдорд╛ рджреЗрдЦрд╛рдЗрдП рдЕрдиреБрд╕рд╛рд░, YCQL, рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛рд╕рдБрдЧ рдорд┐рд▓реНрджреЛ рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB API, NoSQL API рдорд╛ рдПрдХрд▓ рд░ рдмрд╣реБ-рдХреБрдЮреНрдЬреА ACID рд▓реЗрдирджреЗрдирд╣рд░реВ рд░ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдорд╛рдзреНрдпрдорд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ рдердкреНрдЫ, рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рд▓реЗрдирджреЗрди NoSQL рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдХреЛ рдпреБрдЧрдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдЫред рдердк рд░реВрдкрдорд╛, YCQL, PostgreSQL рд╕рдБрдЧ рдорд┐рд▓реНрджреЛ рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB API, SQL API рдорд╛ рд░реИрдЦрд┐рдХ рд▓реЗрдЦрди рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддреНрд░реБрдЯрд┐ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ рдердкреНрдЫ, рд╡рд┐рд╢реНрд╡рдорд╛ рд╡рд┐рддрд░рд┐рдд SQL рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рд▓реНрдпрд╛рдЙрдБрдЫред YugaByte DB рд▓реЗрдирджреЗрди рдкреНрд░рдХреГрддрд┐рдХреЛ рд╣реБрдирд╛рд▓реЗ, NoSQL API рдЕрдм рдорд┐рд╢рди-рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдбрд╛рдЯрд╛рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ - PostgreSQL, Cassandra, рд░ MongoDB рддреБрд▓рдирд╛ рдЧрд░реНрджреИ

рдкрд╣рд┐рд▓реЗ рд▓реЗрдЦ рдорд╛ рднрдирд┐рдПрдХреЛ рдЫ "YSQL рдкрд░рд┐рдЪрдп рджрд┐рдБрджреИ: YugaByte DB рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ PostgreSQL рд╕рдВрдЧрдд рд╡рд┐рддрд░рд┐рдд SQL API", YugaByte DB рдорд╛ SQL рд╡рд╛ NoSQL рдмреАрдЪрдХреЛ рдЫрдиреЛрдЯ рдкреВрд░реНрдгрддрдпрд╛ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрднрд╛рд░рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ:

  • рдпрджрд┐ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдпрднрд╛рд░ рдмрд╣реБ-рдХреБрдЮреНрдЬреА JOIN рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рд╣реЛ рднрдиреЗ, рддрдм YSQL рдЫрдиреМрдЯ рдЧрд░реНрджрд╛, рдмреБрдЭреНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдИрдВрдХреЛ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдзреЗрд░реИ рдиреЛрдбрд╣рд░реВрдорд╛ рд╡рд┐рддрд░рд┐рдд рд╣реБрди рд╕рдХреНрдЫрдиреН, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрдЪреНрдЪ рд╡рд┐рд▓рдореНрдмрддрд╛ рд░/рд╡рд╛ NoSQL рднрдиреНрджрд╛ рдХрдо рдереНрд░реБрдкреБрдЯред
  • рдЕрдиреНрдпрдерд╛, рджреБрдИ NoSQL API рд╣рд░реВ рдордзреНрдпреЗ рдХреБрдиреИ рдПрдХ рдЫрд╛рдиреНрдиреБрд╣реЛрд╕реН, рддрдкрд╛рдИрдВрд▓реЗ рдПрдХ рдкрдЯрдХрдорд╛ рдПрдЙрдЯреИ рдиреЛрдбрдмрд╛рдЯ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд░реВрдк рд░рд╛рдореНрд░реЛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИред YugaByte DB рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╡рд┐рд╢реНрд╡, рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрд▓ рдкрд░рд┐рдЪрд╛рд▓рди рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрд╡рд╛ рдЧрд░реНрди рд╕рдХреНрдЫ рдЬреБрди рдПрдХреИ рд╕рд╛рде рдзреЗрд░реИ рдХрд╛рд░реНрдпрднрд╛рд░рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдЕрд░реНрдХреЛ рдЦрдгреНрдбрдорд╛ рдбрд╛рдЯрд╛ рдореЛрдбрд▓рд┐рдЩ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ PostgreSQL рд░ Cassandra API рдорд┐рд▓реНрджреЛ рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ, рдиреЗрдЯрд┐рдн рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдХреЛ рд╡рд┐рдкрд░реАрддред рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдПрдЙрдЯреИ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рджреБрдИ рдлрд░рдХ API рд╣рд░реВ (рджреБрдИ рдлрд░рдХ рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛) рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди рд╕рд╣рдЬрддрд╛рд▓рд╛рдИ рдЬреЛрдб рджрд┐рдиреНрдЫ, рджреБрдИ рдлрд░рдХ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╡рд┐рдкрд░рд┐рддред
рдирд┐рдореНрди рдЦрдгреНрдбрд╣рд░реВрдорд╛, рд╣рд╛рдореА рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓рд┐рдЩ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдорд╛ рдлрд░рдХ рд░ рдХрднрд░ рдЧрд░рд┐рдПрдХрд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХрд╛ рдХреЗрд╣реА рд╕рдорд╛рдирддрд╛рд╣рд░реВ рдЪрд┐рддреНрд░рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рдбрд╛рдЯрд╛ рдореЛрдбрд▓рд┐рдЩ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛

рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдерд╛рдкрдирд╛

рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓ рдбрд┐рдЬрд╛рдЗрди (рдЬрдЯрд┐рд▓ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд╕рдЯреНрдЯрд╛) рдорд╛ рдЬреЛрдб рджрд┐рдПрд░, рд╣рд╛рдореА рд╕реНрдерд╛рдиреАрдп рдореЗрд╕рд┐рдирдорд╛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╢реЗрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗрдЫреМрдВред

PostgreSQL рд░ Cassandra рд╕рдВрдЧрдд рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рдбрд╛рдЯрд╛рдмреЗрд╕

mkdir ~/yugabyte && cd ~/yugabyte
wget https://downloads.yugabyte.com/yb-docker-ctl && chmod +x yb-docker-ctl
docker pull yugabytedb/yugabyte
./yb-docker-ctl create --enable_postgres

MongoDB

docker run --name my-mongo -d mongo:latest

рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкрд╣реБрдБрдЪ

рд╕рдореНрдмрдиреНрдзрд┐рдд API рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбреЗрдЯрд╛рдмреЗрд╕рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реМрдВред

PostgreSQL

psql PostgreSQL рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╣реЛред рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдЬрд┐рд▓реЛрдХреЛ рд▓рд╛рдЧрд┐, рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB psql рд╕рдБрдЧ рдмрд┐рди рдлреЛрд▓реНрдбрд░рдорд╛ рдЖрдЙрдБрдЫред

docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres

Cassandra

cqlsh CQL (Cassandra Query Language) рдорд╛рд░реНрдлрдд Cassandra рд░ рдпрд╕рдХреЛ рдорд┐рд▓реНрджреЛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╣реЛред рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдЬрд┐рд▓реЛрдХреЛ рд▓рд╛рдЧрд┐, рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рд╕рдБрдЧ рдЖрдЙрдБрдЫ cqlsh рд╕реВрдЪреАрдорд╛ bin.
рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ CQL SQL рдмрд╛рдЯ рдкреНрд░реЗрд░рд┐рдд рдерд┐рдпреЛ рд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ, рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ, рд╕реНрддрдореНрднрд╣рд░реВ рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрдХреЛ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ рдЫрдиреНред рдпрджреНрдпрдкрд┐, NoSQL рднрд╛рд╖рд╛рдХреЛ рд░реВрдкрдорд╛, рдпрд╕рд▓реЗ рд╕реАрдорд┐рддрддрд╛рд╣рд░реВрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдердкреНрдЫ, рдЬрд╕рдордзреНрдпреЗ рдзреЗрд░реИ рдЬрд╕реЛ рд╣рд╛рдореА рдЕрдиреНрдп рд▓реЗрдЦрд╣рд░реВрдорд╛ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗрдЫреМрдВред

docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh

MongoDB

рдореЛрдиреНрдЧреЛ MongoDB рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╢реЗрд▓ рд╣реЛред рдпреЛ MongoDB рд╕реНрдерд╛рдкрдирд╛рдХреЛ рдмрд┐рди рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫред

docker exec -it my-mongo bash 
cd bin
mongo

рддрд╛рд▓рд┐рдХрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

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

PostgreSQL

CREATE TABLE Music (
    Artist VARCHAR(20) NOT NULL, 
    SongTitle VARCHAR(30) NOT NULL,
    AlbumTitle VARCHAR(25),
    Year INT,
    Price FLOAT,
    Genre VARCHAR(10),
    CriticRating FLOAT,
    Tags TEXT,
    PRIMARY KEY(Artist, SongTitle)
);	

Cassandra

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

CREATE KEYSPACE myapp;
USE myapp;
CREATE TABLE Music (
    Artist TEXT, 
    SongTitle TEXT,
    AlbumTitle TEXT,
    Year INT,
    Price FLOAT,
    Genre TEXT,
    CriticRating FLOAT,
    Tags TEXT,
    PRIMARY KEY(Artist, SongTitle)
);

MongoDB

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

use myNewDatabase;

рддрд╛рд▓рд┐рдХрд╛ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ
PostgreSQL

d Music
Table "public.music"
    Column    |         Type          | Collation | Nullable | Default 
--------------+-----------------------+-----------+----------+--------
 artist       | character varying(20) |           | not null | 
 songtitle    | character varying(30) |           | not null | 
 albumtitle   | character varying(25) |           |          | 
 year         | integer               |           |          | 
 price        | double precision      |           |          | 
 genre        | character varying(10) |           |          | 
 criticrating | double precision      |           |          | 
 tags         | text                  |           |          | 
Indexes:
    "music_pkey" PRIMARY KEY, btree (artist, songtitle)

Cassandra

DESCRIBE TABLE MUSIC;
CREATE TABLE myapp.music (
    artist text,
    songtitle text,
    albumtitle text,
    year int,
    price float,
    genre text,
    tags text,
    PRIMARY KEY (artist, songtitle)
) WITH CLUSTERING ORDER BY (songtitle ASC)
    AND default_time_to_live = 0
    AND transactions = {'enabled': 'false'};

MongoDB

use myNewDatabase;
show collections;

рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрджреИ
PostgreSQL

INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Year, Price, Genre, CriticRating, 
    Tags)
VALUES(
    'No One You Know', 'Call Me Today', 'Somewhat Famous',
    2015, 2.14, 'Country', 7.8,
    '{"Composers": ["Smith", "Jones", "Davis"],"LengthInSeconds": 214}'
);
INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Price, Genre, CriticRating)
VALUES(
    'No One You Know', 'My Dog Spot', 'Hey Now',
    1.98, 'Country', 8.4
);
INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Price, Genre)
VALUES(
    'The Acme Band', 'Look Out, World', 'The Buck Starts Here',
    0.99, 'Rock'
);
INSERT INTO Music 
    (Artist, SongTitle, AlbumTitle, 
    Price, Genre, 
    Tags)
VALUES(
    'The Acme Band', 'Still In Love', 'The Buck Starts Here',
    2.47, 'Rock', 
    '{"radioStationsPlaying": ["KHCR", "KBQX", "WTNR", "WJJH"], "tourDates": { "Seattle": "20150625", "Cleveland": "20150630"}, "rotation": Heavy}'
);

Cassandra

рд╕рдордЧреНрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ INSERT рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛рдорд╛ PostgreSQL рдорд╛ рдзреЗрд░реИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рджреЗрдЦрд┐рдиреНрдЫред рддрд░, рд╕рд┐рдорд╛рдиреНрдЯрд┐рдХреНрд╕рдорд╛ рдПрдЙрдЯрд╛ рдареВрд▓реЛ рднрд┐рдиреНрдирддрд╛ рдЫред Cassandra рдорд╛ INSERT рд╡рд╛рд╕реНрддрд╡рдорд╛ рдПрдХ рдЕрдкрд░реЗрд╢рди рд╣реЛ UPSERT, рдЬрд╣рд╛рдБ рдкрдЩреНрдХреНрддрд┐ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗ рдкрдЩреНрдХреНрддрд┐рдорд╛ рдЕрдиреНрддрд┐рдо рдорд╛рдирд╣рд░реВ рдердкрд┐рдиреНрдЫрдиреНред

рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ PostgreSQL рдЬрд╕реНрддреИ рдЫ INSERT рдЙрдЪреНрдЪ

.

MongoDB

рдпрджреНрдпрдкрд┐ MongoDB рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛ рдЬрд╕реНрддреИ NoSQL рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реЛ, рдпрд╕рдХреЛ рд╕рдореНрдорд┐рд▓рди рдЕрдкрд░реЗрд╕рди рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛рдХреЛ рд╕рд┐рдореЗрдиреНрдЯрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░рд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫреИрдиред MongoDB рдорд╛ рдШреБрд╕рд╛рдЙрдиреБрд╣реЛрд╕реН () рдХреБрдиреИ рдЕрд╡рд╕рд░ рдЫреИрди UPSERT, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ PostgreSQL рдЬрд╕реНрддреИ рдмрдирд╛рдЙрдБрдЫред рдмрд┐рдирд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдбрд╛рдЯрд╛ рдердкреНрджреИ _idspecified рд╕рдВрдЧреНрд░рд╣рдорд╛ рдирдпрд╛рдБ рдХрд╛рдЧрдЬрд╛рдд рдердкрд┐рдиреЗ рдХрд╛рд░рдг рд╣реБрдиреЗрдЫред

db.music.insert( {
artist: "No One You Know",
songTitle: "Call Me Today",
albumTitle: "Somewhat Famous",
year: 2015,
price: 2.14,
genre: "Country",
tags: {
Composers: ["Smith", "Jones", "Davis"],
LengthInSeconds: 214
}
}
);
db.music.insert( {
artist: "No One You Know",
songTitle: "My Dog Spot",
albumTitle: "Hey Now",
price: 1.98,
genre: "Country",
criticRating: 8.4
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Look Out, World",
albumTitle:"The Buck Starts Here",
price: 0.99,
genre: "Rock"
}
);
db.music.insert( {
artist: "The Acme Band",
songTitle: "Still In Love",
albumTitle:"The Buck Starts Here",
price: 2.47,
genre: "Rock",
tags: {
radioStationsPlaying:["KHCR", "KBQX", "WTNR", "WJJH"],
tourDates: {
Seattle: "20150625",
Cleveland: "20150630"
},
rotation: "Heavy"
}
}
);

рддрд╛рд▓рд┐рдХрд╛ рдХреНрд╡реЗрд░реА

рдХреНрд╡реЗрд░реА рдирд┐рд░реНрдорд╛рдгрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ SQL рд░ NoSQL рдмреАрдЪрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд┐рдиреНрдирддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рднрд╛рд╖рд╛ рд╣реЛ FROM ╨╕ WHEREред SQL рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрдЫрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ FROM рдзреЗрд░реИ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ, рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╕рдБрдЧ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН WHERE рдХреБрдиреИ рдкрдирд┐ рдЬрдЯрд┐рд▓рддрд╛ рд╣реБрди рд╕рдХреНрдЫ (рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рд╕рд╣рд┐рдд JOIN рдЯреЗрдмрд▓ рдмреАрдЪ)ред рдпрджреНрдпрдкрд┐, NoSQL рдорд╛ рдПрдХ рдЧрдореНрднреАрд░ рд╕реАрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЬрд╛рдиреНрдЫ FROM, рд░ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдЧ рдХрд╛рдо, рд░ рднрд┐рддреНрд░ WHERE, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдЮреНрдЬреА рд╕рдзреИрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реБрдиреБрдкрд░реНрдЫред рдпреЛ NoSQL рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдкреБрд╢рдорд╛ рдЬреЛрдбрд┐рдПрдХреЛ рдЫ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдХреБрд░рд╛ рдЧрд░реЗрдХрд╛ рдерд┐рдпреМрдВред рдпреЛ рдЗрдЪреНрдЫрд╛рд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдХреНрд░рд╕-рдЯреЗрдмреБрд▓рд░ рд░ рдХреНрд░рд╕-рдХреБрдЮреНрдЬреА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╣рд░реЗрдХ рд╕рдореНрднрд╛рд╡рд┐рдд рдХрдореАрд▓рд╛рдИ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред рдЕрдиреБрд░реЛрдзрдХреЛ рдЬрд╡рд╛рдл рджрд┐рдБрджрд╛ рдпрд╕рд▓реЗ рдЕрдиреНрддрд░-рдиреЛрдб рд╕рдЮреНрдЪрд╛рд░рдорд╛ рдареВрд▓реЛ рдврд┐рд▓рд╛рдЗ рдкрд░рд┐рдЪрдп рдЧрд░рд╛рдЙрди рд╕рдХреНрдЫ рд░ рддреНрдпрд╕реИрд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛рд▓рд╛рдИ рдХреЗрд╣реА рдЕрдкрд░реЗрдЯрд░рд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рд╕реАрдорд┐рдд рд╣реБрди рдкреНрд░рд╢реНрдирд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдЫ (рдХреЗрд╡рд▓ =, IN, <, >, =>, <=) рд╡рд┐рднрд╛рдЬрди рдХреБрдЮреНрдЬреАрд╣рд░реВрдорд╛, рдорд╛рдзреНрдпрдорд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрд╛ рдмрд╛рд╣реЗрдХ (рдпрд╣рд╛рдБ = рдЕрдкрд░реЗрдЯрд░рд▓рд╛рдИ рдорд╛рддреНрд░ рдЕрдиреБрдорддрд┐ рдЫ)ред

PostgreSQL

рддрд▓ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рддреАрди рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЫрдиреН рдЬреБрди SQL рдбрд╛рдЯрд╛рдмреЗрд╕рджреНрд╡рд╛рд░рд╛ рд╕рдЬрд┐рд▓реИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

  • рдХрд▓рд╛рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдмреИ рдЧреАрддрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рд╢реАрд░реНрд╖рдХрдХреЛ рдкрд╣рд┐рд▓реЛ рднрд╛рдЧрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреЗ рдХрд▓рд╛рдХрд╛рд░рджреНрд╡рд╛рд░рд╛ рд╕рдмреИ рдЧреАрддрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рд╢реАрд░реНрд╖рдХрдорд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╢рдмреНрдж рднрдПрдХреЛ рд░ рез.режреж рднрдиреНрджрд╛ рдХрдо рдореВрд▓реНрдп рднрдПрдХрд╛ рдХрд▓рд╛рдХрд╛рд░рдХрд╛ рд╕рдмреИ рдЧреАрддрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%'
AND Price > 1.00;

Cassandra

рдорд╛рдерд┐ рд╕реВрдЪреАрдмрджреНрдз PostgreSQL рдкреНрд░рд╢реНрдирд╣рд░реВ рдордзреНрдпреЗ, рдХреЗрд╡рд▓ рдкрд╣рд┐рд▓реЛрд▓реЗ рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛рдорд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ, рдХрд┐рдирдХрд┐ рдЕрдкрд░реЗрдЯрд░ LIKE рдЬрд╕реНрддреИ рдХреНрд▓рд╕реНрдЯрд░рд┐рдЩ рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди SongTitleред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдХреЗрд╡рд▓ рдЕрдкрд░реЗрдЯрд░рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рдЫ = ╨╕ IN.

SELECT * FROM Music
WHERE Artist='No One You Know';
SELECT * FROM Music
WHERE Artist='No One You Know' AND SongTitle IN ('Call Me Today', 'My Dog Spot')
AND Price > 1.00;

MongoDB

рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рд░реВрдкрдорд╛, MongoDB рдорд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рд╣реЛ db.collection.find()ред рдпреЛ рд╡рд┐рдзрд┐рд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕рдВрдЧреНрд░рд╣рдХреЛ рдирд╛рдо рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ (music рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛), рддреНрдпрд╕реИрд▓реЗ рдзреЗрд░реИ рд╕рдЩреНрдЧреНрд░рд╣рд╣рд░реВ рд╕реЛрдзреНрди рдирд┐рд╖реЗрдз рдЧрд░рд┐рдПрдХреЛ рдЫред

db.music.find( {
  artist: "No One You Know"
 } 
);
db.music.find( {
  artist: "No One You Know",
  songTitle: /Call/
 } 
);

рддрд╛рд▓рд┐рдХрд╛рдХрд╛ рд╕рдмреИ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдкрдвреНрджреИ

рд╕рдмреИ рдкрдЩреНрдХреНрддрд┐рд╣рд░реВ рдкрдвреНрдиреБ рднрдиреЗрдХреЛ рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рд╣реЗрд░реЗрдХреЛ рдХреНрд╡реЗрд░реА рдврд╛рдБрдЪрд╛рдХреЛ рдПрдЙрдЯрд╛ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╕ рд╣реЛред

PostgreSQL

SELECT * 
FROM Music;

Cassandra

рдорд╛рдерд┐рдХреЛ PostgreSQL рдЙрджрд╛рд╣рд░рдг рдЬрд╕реНрддреИред

MongoDB

db.music.find( {} );

рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдбрд╛рдЯрд╛ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрджреИ

PostgreSQL

PostgreSQL рд▓реЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ UPDATE рдбрд╛рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиред рдЙрдиреАрд╕рдБрдЧ рдХреБрдиреИ рдЕрд╡рд╕рд░ рдЫреИрди UPSERT, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдХрдерди рдЕрд╕рдлрд▓ рд╣реБрдиреЗрдЫ рдпрджрд┐ рдкрдЩреНрдХреНрддрд┐ рдЕрдм рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЫреИрдиред

UPDATE Music
SET Genre = 'Disco'
WHERE Artist = 'The Acme Band' AND SongTitle = 'Still In Love';

Cassandra

рдХреНрдпрд╛рд╕рд╛рдиреНрдбреНрд░рд╛рд╕рдБрдЧ рдЫ UPDATE PostgreSQL рдЬрд╕реНрддреИред UPDATE рд╕рдорд╛рди рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдЫ UPSERT, рд╕рдорд╛рди INSERT.

рдорд╛рдерд┐рдХреЛ PostgreSQL рдЙрджрд╛рд╣рд░рдг рдЬрд╕реНрддреИред

MongoDB
рдЕрдкрд░реЗрд╢рди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ () MongoDB рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдХрд╛рдЧрдЬрд╛рдд рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рд╡рд╛ рдХреЗрд╣реА рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдорд╛рддреНрд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рд╕рдХреНрдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдпрд╕рд▓реЗ рд╕рд┐рдорд╛рдиреНрдЯрд┐рдХреНрд╕ рдЕрд╕рдХреНрд╖рдо рднрдПрдХреЛ рдПрдЙрдЯрд╛ рдХрд╛рдЧрдЬрд╛рдд рдорд╛рддреНрд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдЫ UPSERTред рдзреЗрд░реИ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рд░ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрдбреЗрдЯ рдЧрд░реНрджреИ UPSERT рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ рдердк рдЭрдгреНрдбрд╛рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реЗрд░ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд▓рд╛рдХрд╛рд░рдХреЛ рд╡рд┐рдзрд╛ рдЙрд╕рдХреЛ рдЧреАрддрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫред

db.music.update(
  {"artist": "The Acme Band"},
  { 
    $set: {
      "genre": "Disco"
    }
  },
  {"multi": true, "upsert": true}
);

рддрд╛рд▓рд┐рдХрд╛рдмрд╛рдЯ рдбрд╛рдЯрд╛ рд╣рдЯрд╛рдЙрдБрджреИ

PostgreSQL

DELETE FROM Music
WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';

Cassandra

рдорд╛рдерд┐рдХреЛ PostgreSQL рдЙрджрд╛рд╣рд░рдг рдЬрд╕реНрддреИред

MongoDB

MongoDB рд╕рдБрдЧ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдореЗрдЯрд╛рдЙрди рджреБрдИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЫрдиреН - рдореЗрдЯреНрдиреБрд╣реЛрд╕реН рдПрдХ() /deleteMany() ╨╕ рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН ()ред рджреБрд╡реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдореЗрдЯрд╛рдЙрдБрдЫрдиреН рддрд░ рдлрд░рдХ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдБрдЫрдиреНред

db.music.deleteMany( {
        artist: "The Acme Band"
    }
);

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдЯрд╛рдЙрдБрджреИ

PostgreSQL

DROP TABLE Music;

Cassandra

рдорд╛рдерд┐рдХреЛ PostgreSQL рдЙрджрд╛рд╣рд░рдг рдЬрд╕реНрддреИред

MongoDB

db.music.drop();

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

SQL рд░ NoSQL рдХреЛ рдмреАрдЪрдорд╛ рдЫрдиреЛрдЯ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдмрд╣рд╕ резреж рдмрд░реНрд╖ рднрдиреНрджрд╛ рдмрдврд┐ рднреИрд░рд╣реЗрдХреЛ рдЫред рдпрд╕ рдмрд╣рд╕рдХрд╛ рджреБрдИ рдореБрдЦреНрдп рдкрдХреНрд╖рд╣рд░реВ рдЫрдиреН: рдбрд╛рдЯрд╛рдмреЗрд╕ рдЗрдиреНрдЬрд┐рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (рдореЛрдиреЛрд▓рд┐рдерд┐рдХ, рд▓реЗрдирджреЗрди SQL рдмрдирд╛рдо рд╡рд┐рддрд░рд┐рдд, рдЧреИрд░-рд▓реЗрдирджреЗрди NoSQL) рд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдг (SQL рдорд╛ рддрдкрд╛рдИрдВрдХреЛ рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓рд┐рдЩ рдмрдирд╛рдо NoSQL рдорд╛ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдореЛрдбреЗрд▓рд┐рдЩ)ред

рдпреБрдЧрд╛рдмрд╛рдЗрдЯ рдбреАрдмреА рдЬрд╕реНрддрд╛ рд╡рд┐рддрд░рд┐рдд рд▓реЗрдирджреЗрди рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рд╛рде, рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрд╣рд╕ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдЖрд░рд╛рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдбреЗрдЯрд╛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдПрдХрд▓ рдиреЛрдбрдорд╛ рд▓реЗрдЦреНрди рд╕рдХрд┐рдиреЗ рднрдиреНрджрд╛ рдареВрд▓рд╛ рд╣реБрдБрджреИ рдЬрд╛рдБрджрд╛, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢рд╛рд░реНрдбрд┐рдЩ/рд░рд┐рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд┐рдЩрдХреЛ рд╕рд╛рде рд░реИрдЦрд┐рдХ рд▓реЗрдЦрди рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреАрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡рд┐рддрд░рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред

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

рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЫрд▓рдлрд▓рдорд╛ рдлрд┐рд░реНрддрд╛ рдЖрдЙрдБрджреИ, рдпреЛ рднрдиреНрди рдЙрдЪрд┐рдд рдЫ рдХрд┐ рджреБрдмреИ рдбрд┐рдЬрд╛рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ (SQL рд░ NoSQL) рдХреБрдиреИ рдкрдирд┐ рдЬрдЯрд┐рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╡рд┐рд╢реНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫрдиреНред SQL "рдбреЗрдЯрд╛ рдореЛрдбрд▓рд┐рдЩ" рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗ рд╡реНрдпрд╛рдкрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрдмрдХрд┐ NoSQL "рдХреНрд╡реЗрд░реА рдореЛрдбрд▓рд┐рдЩ" рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рд╕рдорд╛рди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдХрдо рд╡рд┐рд▓рдореНрдмрддрд╛ рд░ рдЙрдЪреНрдЪ рдереНрд░реБрдкреБрдЯрдХреЛ рд╕рд╛рде рдбреЗрдЯрд╛рдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рдпреБрдЧрд╛рдмрд╛рдЗрдЯ DB рд▓реЗ SQL рд░ NoSQL API рд╣рд░реВ рдПрдХ рд╕рд╛рдЭрд╛ рдХреЛрд░рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓рд╛рдИ рдмрдврд╛рд╡рд╛ рджрд┐рдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ред рдердк рд░реВрдкрдорд╛, PostgreSQL рд░ Cassandra рд╕рд╣рд┐рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдбрд╛рдЯрд╛рдмреЗрд╕ рднрд╛рд╖рд╛рд╣рд░реВрд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реЗрд░, YugaByte DB рд▓реЗ рдпреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ рдХрд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╡рд┐рддрд░рд┐рдд, рдЕрддреНрдпрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдЗрдиреНрдЬрд┐рдирд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЕрд░реНрдХреЛ рднрд╛рд╖рд╛ рд╕рд┐рдХреНрдиреБ рдкрд░реНрджреИрдиред

рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рдбрд╛рдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдЖрдзрд╛рд░рднреВрддрд╣рд░реВ PostgreSQL, Cassandra, рд░ MongoDB рдмреАрдЪ рднрд┐рдиреНрдирддрд╛ рджреЗрдЦреНрдпреМрдВред рднрд╡рд┐рд╖реНрдпрдХрд╛ рд▓реЗрдЦрд╣рд░реВрдорд╛, рд╣рд╛рдореА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ, рд▓реЗрдирджреЗрдирд╣рд░реВ, JOINs, TTL рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ, рд░ JSON рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЬрд╕реНрддрд╛ рдЙрдиреНрдирдд рдбрд┐рдЬрд╛рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВрдорд╛ рдбреБрдмреНрдиреЗрдЫреМрдВред

рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдкреНрддрд╛рд╣рдиреНрддрдХреЛ рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд┐рд╢реНрд░рд╛рдордХреЛ рдХрд╛рдордирд╛ рдЧрд░реНрджрдЫреМрдВ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдирд┐рдордиреНрддреНрд░рдгрд╛ рдЧрд░реНрджрдЫреМрдВ рдирд┐: рд╢реБрд▓реНрдХ рд╡реЗрдмрд┐рдирд╛рд░, рдЬреБрди рдореЗ 14 рдорд╛ рд╣реБрдиреЗрдЫред

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

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