ื™ืกื•ื“ื•ืช ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื - ื”ืฉื•ื•ืื” ื‘ื™ืŸ PostgreSQL, Cassandra ื•-MongoDB

ืฉืœื•ื ื—ื‘ืจื™ื. ืœืคื ื™ ื”ื™ืฆื™ืื” ืœื—ืœืง ื”ืฉื ื™ ืฉืœ ื—ื•ืคืฉืช ืžืื™, ืื ื• ืžืฉืชืคื™ื ืืชื›ื ื‘ื—ื•ืžืจ ืฉืชืจื’ืžื ื• ืœืงืจืืช ื”ืฉืงืช ื–ืจื ื—ื“ืฉ ื‘ืงื•ืจืก "DBMS ื™ื—ืกื™".

ื™ืกื•ื“ื•ืช ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื - ื”ืฉื•ื•ืื” ื‘ื™ืŸ PostgreSQL, Cassandra ื•-MongoDB

ืžืคืชื—ื™ ื™ื™ืฉื•ืžื™ื ืžื‘ืœื™ื ื–ืžืŸ ืจื‘ ื‘ื”ืฉื•ื•ืื” ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ืชืคืขื•ืœื™ื™ื ืžืจื•ื‘ื™ื ื›ื“ื™ ืœื‘ื—ื•ืจ ืืช ื–ื” ื”ืžืชืื™ื ื‘ื™ื•ืชืจ ืœืขื•ืžืก ื”ืขื‘ื•ื“ื” ื”ืžื™ื•ืขื“. ื”ืฆืจื›ื™ื ืขืฉื•ื™ื™ื ืœื›ืœื•ืœ ืžื•ื“ืœ ื ืชื•ื ื™ื ืžืคื•ืฉื˜, ืขืจื‘ื•ื™ื•ืช ืขืกืงืื•ืช, ื‘ื™ืฆื•ืขื™ ืงืจื™ืื”/ื›ืชื™ื‘ื”, ืงื ื” ืžื™ื“ื” ืื•ืคืงื™ ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช. ื‘ืื•ืคืŸ ืžืกื•ืจืชื™, ื”ื‘ื—ื™ืจื” ืžืชื—ื™ืœื” ื‘ืงื˜ื’ื•ืจื™ื™ืช ืžืกื“ ื”ื ืชื•ื ื™ื, SQL ืื• NoSQL, ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ืงื˜ื’ื•ืจื™ื” ืžืฆื™ื’ื” ืกื˜ ื‘ืจื•ืจ ืฉืœ ืคืฉืจื•ืช. ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื‘ืžื•ื ื—ื™ื ืฉืœ ื—ื‘ื™ื•ืŸ ื ืžื•ืš ื•ืชืคื•ืงื” ื’ื‘ื•ื”ื” ื ืชืคืกื™ื ื‘ื“ืจืš ื›ืœืœ ื›ื“ืจื™ืฉื” ืฉืื™ื ื” ื ื™ืชื ืช ืœื”ื—ืœืคื” ื•ืœื›ืŸ ื”ื™ื ื—ื™ื•ื ื™ืช ืขื‘ื•ืจ ื›ืœ ืžืกื“ ื ืชื•ื ื™ื ืœื“ื•ื’ืžื”.

ืžื˜ืจืช ืžืืžืจ ื–ื” ื”ื™ื ืœืขื–ื•ืจ ืœืžืคืชื—ื™ ืืคืœื™ืงืฆื™ื•ืช ืœืขืฉื•ืช ืืช ื”ื‘ื—ื™ืจื” ื”ื ื›ื•ื ื” ื‘ื™ืŸ SQL ืœ-NoSQL ื‘ื”ืงืฉืจ ืฉืœ ืžื•ื“ืœื™ื ืฉืœ ื ืชื•ื ื™ ื™ื™ืฉื•ืžื™ื. ื ืกืชื›ืœ ืขืœ ืžืกื“ ื ืชื•ื ื™ื ืื—ื“ ืฉืœ SQL, ื›ืœื•ืžืจ PostgreSQL, ื•ืฉื ื™ ืžืกื“ื™ ื ืชื•ื ื™ื NoSQL, Cassandra ื•-MongoDB, ื›ื“ื™ ืœื›ืกื•ืช ืืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื, ื›ื’ื•ืŸ ื™ืฆื™ืจืช ื˜ื‘ืœืื•ืช, ืื™ื›ืœื•ืกืŸ, ืงืจื™ืืช ื ืชื•ื ื™ื ืžื˜ื‘ืœื” ื•ืžื—ื™ืงืชืŸ. ื‘ืžืืžืจ ื”ื‘ื, ื ืงืคื™ื“ ืœื”ืกืชื›ืœ ืขืœ ืื™ื ื“ืงืกื™ื, ืขืกืงืื•ืช, JOINs, ื”ื ื—ื™ื•ืช TTL ื•ืขื™ืฆื•ื‘ ืžืกื“ ื ืชื•ื ื™ื ืžื‘ื•ืกืก JSON.

ืžื” ื”ื”ื‘ื“ืœ ื‘ื™ืŸ SQL ืœ-NoSQL?

ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ SQL ืžื’ื‘ื™ืจื™ื ืืช ื’ืžื™ืฉื•ืช ื”ื™ื™ืฉื•ื ื‘ืืžืฆืขื•ืช ืขืจื‘ื•ื™ื•ืช ืขืกืงืื•ืช ACID, ื›ืžื• ื’ื ืืช ื”ื™ื›ื•ืœืช ืฉืœื”ื ืœื‘ืฆืข ืฉืื™ืœืชื•ืช ื‘ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช JOIN ื‘ื“ืจื›ื™ื ื‘ืœืชื™ ืฆืคื•ื™ื•ืช ืขืœ ื’ื‘ื™ ืžื•ื“ืœื™ื ืงื™ื™ืžื™ื ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื ืžื ื•ืจืžืœื™ื.

ื‘ื”ืชื—ืฉื‘ ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืžื•ื ื•ืœื™ื˜ื™ืช/ื”ืฆื•ืžืช ื”ื‘ื•ื“ื“ืช ืฉืœื”ื ื•ื”ืฉื™ืžื•ืฉ ื‘ืžื•ื“ืœ ืฉื›ืคื•ืœ ืžืืกื˜ืจ-slave ืขื‘ื•ืจ ื™ืชื™ืจื•ืช, ืžืกื“ื™ ื ืชื•ื ื™ื ืžืกื•ืจืชื™ื™ื ืฉืœ SQL ื—ืกืจื™ื ืฉืชื™ ืชื›ื•ื ื•ืช ื—ืฉื•ื‘ื•ืช - ืžื“ืจื’ื™ื•ืช ื›ืชื™ื‘ื” ืœื™ื ื™ืืจื™ืช (ื›ืœื•ืžืจ ื—ืœื•ืงื” ืื•ื˜ื•ืžื˜ื™ืช ืขืœ ืคื ื™ ืžืกืคืจ ืฆืžืชื™ื) ื•ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื ืื•ื˜ื•ืžื˜ื™/ืืคืก. ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื ืฉื›ืžื•ืช ื”ื ืชื•ื ื™ื ื”ืžืชืงื‘ืœืช ืื™ื ื” ื™ื›ื•ืœื” ืœืขืœื•ืช ืขืœ ืชืคื•ืงืช ื”ื›ืชื™ื‘ื” ื”ืžืงืกื™ืžืœื™ืช ืฉืœ ืฆื•ืžืช ื‘ื•ื“ื“. ื‘ื ื•ืกืฃ, ื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื ื–ืžื ื™ ื‘ืกื‘ื™ืœื•ืช ืœืชืงืœื•ืช (ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช ืœื-ื›ืœื•ื). ื›ืืŸ ืืชื” ืฆืจื™ืš ืœื–ื›ื•ืจ ืฉื”ื”ืชื—ื™ื™ื‘ื•ื™ื•ืช ื”ืื—ืจื•ื ื•ืช ืขื“ื™ื™ืŸ ืœื ื‘ืื• ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ื‘ืขื•ืชืง ื”ืขื‘ื“. ืงืฉื” ืœื”ืฉื™ื’ ืขื“ื›ื•ื ื™ื ืฉืื™ื ื ื‘ื–ืžืŸ ื”ืฉื‘ืชื” ื’ื ื‘ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ SQL.

ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ NoSQL ืžื•ืคืฆื™ื ื‘ื“ืจืš ื›ืœืœ ืžื˜ื‘ืขื, ื›ืœื•ืžืจ. ื‘ื”ื, ื”ื ืชื•ื ื™ื ืžื—ื•ืœืงื™ื ืœืžืงื˜ืขื™ื ื•ืžื•ืคืฆื™ื ืขืœ ืคื ื™ ืžืกืคืจ ืฆืžืชื™ื. ื”ื ื“ื•ืจืฉื™ื ื“ื ื•ืจืžืœื™ื–ืฆื™ื”. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื’ื ืืช ื”ื ืชื•ื ื™ื ืฉื”ื•ื–ื ื• ื™ืฉ ืœื”ืขืชื™ืง ืžืกืคืจ ืคืขืžื™ื ื›ื“ื™ ืœื”ื’ื™ื‘ ืœื‘ืงืฉื•ืช ื”ืกืคืฆื™ืคื™ื•ืช ืฉืืชื” ืฉื•ืœื—. ื”ืžื˜ืจื” ื”ื›ื•ืœืœืช ื”ื™ื ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืขืœ ื™ื“ื™ ื”ืคื—ืชืช ืžืกืคืจ ื”ืจืกื™ืกื™ื ื”ื–ืžื™ื ื™ื ื‘ืžื”ืœืš ื”ืงืจื™ืื”. ื–ื” ืžืจืžื– ืฉ-NoSQL ื“ื•ืจืฉ ืžืžืš ืœืขืฆื‘ ืืช ื”ืฉืื™ืœืชื•ืช ืฉืœืš, ื‘ืขื•ื“ ืฉ-SQL ื“ื•ืจืฉ ืžืžืš ืœืขืฆื‘ ืืช ื”ื ืชื•ื ื™ื ืฉืœืš.

NoSQL ืžืชืžืงื“ืช ื‘ื”ืฉื’ืช ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื‘ืืฉื›ื•ืœ ืžื‘ื•ื–ืจ ื•ื–ื”ื• ื”ืจืฆื™ื•ื ืœ ื”ื‘ืกื™ืกื™ ืœืฉื™ื ื•ื™ื™ื ืจื‘ื™ื ื‘ืชื›ื ื•ืŸ ืžืกื“ื™ ื ืชื•ื ื™ื ื”ื›ื•ืœืœื™ื ืื•ื‘ื“ืŸ ืขืกืงืื•ืช ACID, JOINs ื•ืื™ื ื“ืงืกื™ื ืžืฉื ื™ื™ื ื’ืœื•ื‘ืœื™ื™ื ืขืงื‘ื™ื™ื.

ื™ืฉ ื˜ืขื ื” ืฉื‘ืขื•ื“ ืฉืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ NoSQL ืžืกืคืงื™ื ืžื“ืจื’ื™ื•ืช ื›ืชื™ื‘ื” ืœื™ื ื™ืืจื™ืช ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ื’ื‘ื•ื”ื”, ืื•ื‘ื“ืŸ ืขืจื‘ื•ื™ื•ืช ืขืกืงืื•ืช ื”ื•ืคืš ืื•ืชื ืœืœื ืžืชืื™ืžื™ื ืœื ืชื•ื ื™ื ืงืจื™ื˜ื™ื™ื ืœืžืฉื™ืžื”.

ื”ื˜ื‘ืœื” ื”ื‘ืื” ืžืจืื” ื›ื™ืฆื“ ืžื•ื“ืœ ื ืชื•ื ื™ื ื‘-NoSQL ืฉื•ื ื” ืž-SQL.

ื™ืกื•ื“ื•ืช ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื - ื”ืฉื•ื•ืื” ื‘ื™ืŸ PostgreSQL, Cassandra ื•-MongoDB

SQL ื•-NoSQL: ืžื“ื•ืข ื™ืฉ ืฆื•ืจืš ื‘ืฉื ื™ื”ื?

ืืคืœื™ืงืฆื™ื•ืช ื‘ืขื•ืœื ื”ืืžื™ืชื™ ืขื ืžืกืคืจ ื’ื“ื•ืœ ืฉืœ ืžืฉืชืžืฉื™ื, ื›ื’ื•ืŸ Amazon.com, Netflix, Uber ื•-Airbnb, ืžื•ื˜ืœื•ืช ืขืœ ื‘ื™ืฆื•ืข ืžืฉื™ืžื•ืช ืžื•ืจื›ื‘ื•ืช ื•ืจื‘-ืคื ื™ื. ืœื“ื•ื’ืžื”, ืืคืœื™ืงืฆื™ื™ืช ืžืกื—ืจ ืืœืงื˜ืจื•ื ื™ ื›ืžื• Amazon.com ืฆืจื™ื›ื” ืœืื—ืกืŸ ื ืชื•ื ื™ื ืงืœื™ื ื•ืงืจื™ื˜ื™ื™ื ื›ืžื• ืžื™ื“ืข ืžืฉืชืžืฉ, ืžื•ืฆืจื™ื, ื”ื–ืžื ื•ืช, ื—ืฉื‘ื•ื ื™ื•ืช, ื™ื—ื“ ืขื ื ืชื•ื ื™ื ื›ื‘ื“ื™ื ื•ืคื—ื•ืช ืจื’ื™ืฉื™ื ื›ืžื• ื‘ื™ืงื•ืจื•ืช ืžื•ืฆืจื™ื, ื”ื•ื“ืขื•ืช ืชืžื™ื›ื”, ืคืขื™ืœื•ืช ืžืฉืชืžืฉื™ื, ื‘ื™ืงื•ืจื•ืช ื•ื”ืžืœืฆื•ืช ืžืฉืชืžืฉื™ื. ื‘ืื•ืคืŸ ื˜ื‘ืขื™, ื™ื™ืฉื•ืžื™ื ืืœื” ืžืกืชืžื›ื™ื ืขืœ ืžืกื“ ื ืชื•ื ื™ื SQL ืื—ื“ ืœืคื—ื•ืช ื™ื—ื“ ืขื ืžืกื“ ื ืชื•ื ื™ื NoSQL ืื—ื“ ืœืคื—ื•ืช. ื‘ืžืขืจื›ื•ืช ื—ื•ืฆื•ืช ืื–ื•ืจื™ื•ืช ื•ื’ืœื•ื‘ืœื™ื•ืช, ืžืกื“ ื ืชื•ื ื™ื NoSQL ืคื•ืขืœ ื›ืžื˜ืžื•ืŸ ืžื‘ื•ื–ืจ ื’ื™ืื•ื’ืจืคื™ ืขื‘ื•ืจ ื ืชื•ื ื™ื ื”ืžืื•ื—ืกื ื™ื ื‘ืžืกื“ ื ืชื•ื ื™ื SQL ืžืงื•ืจ ืžื”ื™ืžืŸ ื”ืคื•ืขืœ ื‘ืื–ื•ืจ ืžืกื•ื™ื.

ื›ื™ืฆื“ YugaByte DB ืžืฉืœื‘ SQL ื•-NoSQL?

ื ื‘ื ื” ืขืœ ืžื ื•ืข ืื—ืกื•ืŸ ืžืขื•ืจื‘ ืžื•ื ื—ื” ื™ื•ืžืŸ, ืคื™ืฆื•ืœ ืื•ื˜ื•ืžื˜ื™, ืฉื›ืคื•ืœ ืงื•ื ืฆื ื–ื•ืก ืžื‘ื•ื–ืจ ื•ืขืกืงืื•ืช ืžื‘ื•ื–ืจื•ืช ACID (ื‘ื”ืฉืจืืช Google Spanner), YugaByte DB ื”ื•ื ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืจืืฉื•ืŸ ื‘ืขื•ืœื ื‘ืงื•ื“ ืคืชื•ื— ื”ืชื•ืื ื‘ื•-ื–ืžื ื™ืช ืขื NoSQL (Cassandra & Redis) ื• SQL (PostgreSQL). ื›ืคื™ ืฉืžื•ืฆื’ ื‘ื˜ื‘ืœื” ืœืžื˜ื”, YCQL, ื”-API ืฉืœ YugaByte DB ื”ืชื•ืื ืœืงืกื ื“ืจื”, ืžื•ืกื™ืฃ ืืช ื”ืžื•ืฉื’ื™ื ืฉืœ ืขืกืงืื•ืช ACID ื‘ื•ื“ื“ื•ืช ื•ืžืจื•ื‘ื•ืช ืžืคืชื— ื•ืื™ื ื“ืงืกื™ื ืžืฉื ื™ื™ื ื’ืœื•ื‘ืœื™ื™ื ืœ-NoSQL API, ื•ื‘ื›ืš ืžื•ื‘ื™ืœ ืืช ืขื™ื“ืŸ ืžืกื“ื™ ื”ื ืชื•ื ื™ื ืฉืœ NoSQL ื˜ืจื ื–ืงืฆื™ื•ืช. ื‘ื ื•ืกืฃ, YCQL, ื”-API ืฉืœ YugaByte DB ื”ืชื•ืื ืœ-PostgreSQL, ืžื•ืกื™ืฃ ืืช ื”ืžื•ืฉื’ื™ื ืฉืœ ืงื ื” ืžื™ื“ื” ื›ืชื™ื‘ื” ืœื™ื ื™ืืจื™ ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ืื•ื˜ื•ืžื˜ื™ืช ืœ-SQL API, ื•ืžื‘ื™ื ืžืกื“ื™ ื ืชื•ื ื™ื ืžื‘ื•ื–ืจื™ื ืฉืœ SQL ืœืขื•ืœื. ืžื›ื™ื•ื•ืŸ ืฉ-YugaByte DB ื”ื•ื ื˜ืจื ื–ืงืฆื™ื•ื ื™ ื‘ืื•ืคื™ื•, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื›ืขืช ื‘-API ืฉืœ NoSQL ื‘ื”ืงืฉืจ ืฉืœ ื ืชื•ื ื™ื ืงืจื™ื˜ื™ื™ื ืœืžืฉื™ืžื”.

ื™ืกื•ื“ื•ืช ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื - ื”ืฉื•ื•ืื” ื‘ื™ืŸ PostgreSQL, Cassandra ื•-MongoDB

ื›ืคื™ ืฉื ืืžืจ ื‘ืขื‘ืจ ื‘ื›ืชื‘ื” "ืžื›ื™ืจื” ืืช YSQL: SQL ืžื‘ื•ื–ืจ ืชื•ืื PostgreSQL API ืขื‘ื•ืจ YugaByte DB", ื”ื‘ื—ื™ืจื” ื‘ื™ืŸ SQL ืื• NoSQL ื‘-YugaByte DB ืชืœื•ื™ื” ืœื—ืœื•ื˜ื™ืŸ ื‘ืžืืคื™ื™ื ื™ื ืฉืœ ืขื•ืžืก ื”ืขื‘ื•ื“ื” ื”ื‘ืกื™ืกื™:

  • ืื ืขื•ืžืก ื”ืขื‘ื•ื“ื” ื”ืขื™ืงืจื™ ืฉืœืš ื”ื•ื ืคืขื•ืœื•ืช JOIN ืžืจื•ื‘ื•ืช ืžืคืชื—ื•ืช, ืื– ื‘ืขืช ื‘ื—ื™ืจืช YSQL, ื”ื‘ืŸ ืฉื”ืžืคืชื—ื•ืช ืฉืœืš ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืžื•ืคืฆื™ื ืขืœ ืคื ื™ ืžืกืคืจ ืฆืžืชื™ื, ื•ื›ืชื•ืฆืื” ืžื›ืš ื–ืžืŸ ื”ืฉื”ื™ื™ื” ื’ื‘ื•ื” ื™ื•ืชืจ ื•/ืื• ืชืคื•ืงื” ื ืžื•ื›ื” ื™ื•ืชืจ ืžืืฉืจ NoSQL.
  • ืื—ืจืช, ื‘ื—ืจ ื‘ืื—ื“ ืžืฉื ื™ ืžืžืฉืงื™ ื”-API ืฉืœ NoSQL, ืชื•ืš ื–ื›ื•ืจ ืฉืชืงื‘ืœ ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ื™ื•ืชืจ ื›ืชื•ืฆืื” ืžืฉืื™ืœืชื•ืช ื”ืžื•ื’ืฉื•ืช ืžืฆื•ืžืช ืื—ื“ ื‘ื›ืœ ืคืขื. YugaByte DB ื™ื›ื•ืœ ืœืฉืžืฉ ื›ื‘ืกื™ืก ื ืชื•ื ื™ื ืชืคืขื•ืœื™ ื™ื—ื™ื“ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืžื•ืจื›ื‘ื™ื ื‘ืขื•ืœื ื”ืืžื™ืชื™ ืฉืฆืจื™ื›ื™ื ืœื ื”ืœ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ืžืจื•ื‘ื™ื ื‘ื• ื–ืžื ื™ืช.

ืžืขื‘ื“ืช ื”ืžื•ื“ืœื™ื ืฉืœ ื”ื ืชื•ื ื™ื ื‘ืกืขื™ืฃ ื”ื‘ื ืžื‘ื•ืกืกืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื ืชื•ืืžื™ YugaByte DB ืฉืœ PostgreSQL ื•- Cassandra API, ื‘ื ื™ื’ื•ื“ ืœื‘ืกื™ืกื™ ื ืชื•ื ื™ื ืžืงื•ืจื™ื™ื. ื’ื™ืฉื” ื–ื• ืžื“ื’ื™ืฉื” ืืช ืงืœื•ืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืฉื ื™ ืžืžืฉืงื™ API ืฉื•ื ื™ื (ื‘ืฉืชื™ ื™ืฆื™ืื•ืช ืฉื•ื ื•ืช) ืฉืœ ืื•ืชื• ืืฉื›ื•ืœ ืžืกื“ ื ืชื•ื ื™ื, ื‘ื ื™ื’ื•ื“ ืœืฉื™ืžื•ืฉ ื‘ืืฉื›ื•ืœื•ืช ืขืฆืžืื™ื™ื ืœื—ืœื•ื˜ื™ืŸ ืฉืœ ืฉื ื™ ืžืกื“ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื.
ื‘ืกืขื™ืคื™ื ื”ื‘ืื™ื, ื ืกืงื•ืจ ืืช ืžืขื‘ื“ืช ืžื•ื“ืœ ื”ื ืชื•ื ื™ื ื›ื“ื™ ืœื”ืžื—ื™ืฉ ืืช ื”ื”ื‘ื“ืœื™ื ื•ื—ืœืง ืžื”ืžืฉื•ืชืฃ ืฉืœ ืžืกื“ื™ ื”ื ืชื•ื ื™ื ื”ืžื›ื•ืกื™ื.

ืžืขื‘ื“ืช ืžื•ื“ืœ ื ืชื•ื ื™ื

ื”ืชืงื ืช ืžืกื“ ื ืชื•ื ื™ื

ื‘ื”ืชื—ืฉื‘ ื‘ื“ื’ืฉ ืขืœ ืขื™ืฆื•ื‘ ืžื•ื“ืœ ื ืชื•ื ื™ื (ื•ืœื ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืคืจื™ืกื” ืžื•ืจื›ื‘ื•ืช), ื ืชืงื™ืŸ ืžืกื“ื™ ื ืชื•ื ื™ื ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ Docker ื‘ืžื—ืฉื‘ ื”ืžืงื•ืžื™ ื•ืœืื—ืจ ืžื›ืŸ ื ื™ืฆื•ืจ ืื™ืชื ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืืžืฆืขื•ืช ืžืขื˜ืคืช ืฉื•ืจืช ื”ืคืงื•ื“ื” ืฉืœื”ื.

ืžืกื“ ื ืชื•ื ื™ื YugaByte DB ืชื•ืื PostgreSQL & Cassandra

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. ืœื ื•ื—ื•ืช ื”ืฉื™ืžื•ืฉ, YugaByte DB ืžื’ื™ืข ืขื psql ืžืžืฉ ื‘ืชื™ืงื™ื™ืช bin.

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

ืงืกื ื“ืจื”

cqlsh ื”ื™ื ืžืขื˜ืคืช ืฉื•ืจืช ืคืงื•ื“ื” ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื Cassandra ื•ืžืกื“ื™ ื”ื ืชื•ื ื™ื ื”ืชื•ืืžื™ื ืฉืœื” ื‘ืืžืฆืขื•ืช CQL (Cassandra Query Language). ืœื ื•ื—ื•ืช ื”ืฉื™ืžื•ืฉ, YugaByte DB ืžื’ื™ืข ืขื cqlsh ื‘ืงื˜ืœื•ื’ bin.
ืฉื™ืžื• ืœื‘ ืฉ-CQL ื ื•ืฆืจ ื‘ื”ืฉืจืืช SQL ื•ื™ืฉ ืœื” ืžื•ืฉื’ื™ื ื“ื•ืžื™ื ืฉืœ ื˜ื‘ืœืื•ืช, ืฉื•ืจื•ืช, ืขืžื•ื“ื•ืช ื•ืื™ื ื“ืงืกื™ื. ืขื ื–ืืช, ื›ืฉืคืช NoSQL, ื”ื™ื ืžื•ืกื™ืคื” ืกื˜ ืžืกื•ื™ื ืฉืœ ืžื’ื‘ืœื•ืช, ืฉืืช ืจื•ื‘ืŸ ื ืขืกื•ืง ื’ื ื‘ืžืืžืจื™ื ืื—ืจื™ื.

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

MongoDB

ืžื•ื ื’ื• ื”ื™ื ืžืขื˜ืคืช ืฉื•ืจืช ืคืงื•ื“ื” ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื MongoDB. ื ื™ืชืŸ ืœืžืฆื•ื ืื•ืชื• ื‘ืกืคืจื™ื™ืช bin ืฉืœ ื”ืชืงื ืช 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)
);	

ืงืกื ื“ืจื”

ื™ืฆื™ืจืช ื˜ื‘ืœื” ื‘ืงืกื ื“ืจื” ื“ื•ืžื” ืžืื•ื“ ืœ- PostgreSQL. ืื—ื“ ื”ื”ื‘ื“ืœื™ื ื”ืขื™ืงืจื™ื™ื ื”ื•ื ื”ื™ืขื“ืจ ืื™ืœื•ืฆื™ ืชืงื™ื ื•ืช (ืœืžืฉืœ NOT NULL), ืื‘ืœ ื–ื” ื‘ืื—ืจื™ื•ืช ื”ืืคืœื™ืงืฆื™ื”, ืœื ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ NoSQL. ื”ืžืคืชื— ื”ืจืืฉื™ ืžื•ืจื›ื‘ ืžืžืคืชื— ืžื—ื™ืฆื” (ืขืžื•ื“ืช ื”ืืžืŸ ื‘ื“ื•ื’ืžื” ืœืžื˜ื”) ื•ืžืงื‘ื•ืฆื” ืฉืœ ืขืžื•ื“ื•ืช ืืฉื›ื•ืœื•ืช (ืขืžื•ื“ืช SongTitle ื‘ื“ื•ื’ืžื” ืœืžื˜ื”). ืžืคืชื— ื”ืžื—ื™ืฆื” ืงื•ื‘ืข ืœืื™ื–ื• ืžื—ื™ืฆื”/ืฉื‘ืจ ื™ืฉ ืœืžืงื ืืช ื”ืฉื•ืจื”, ื•ืขืžื•ื“ื•ืช ื”ืืฉื›ื•ืœื•ืช ืžืฆื™ื™ื ื•ืช ื›ื™ืฆื“ ื™ืฉ ืœืืจื’ืŸ ืืช ื”ื ืชื•ื ื™ื ื‘ืชื•ืš ื”ืจืกื™ืก ื”ื ื•ื›ื—ื™.

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 ืžืืจื’ืŸ ื ืชื•ื ื™ื ืœืชื•ืš ืžืกื“ื™ ื ืชื•ื ื™ื (Database) (ื‘ื“ื•ืžื” ืœ-Keyspace ื‘-Cassandra), ืฉื ื™ืฉ Collections (ื‘ื“ื•ืžื” ืœื˜ื‘ืœืื•ืช) ื”ืžื›ื™ืœื™ื ืžืกืžื›ื™ื (ื‘ื“ื•ืžื” ืœืฉื•ืจื•ืช ื‘ื˜ื‘ืœื”). ื‘-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)

ืงืกื ื“ืจื”

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}'
);

ืงืกื ื“ืจื”

ื‘ื™ื˜ื•ื™ ื›ื•ืœืœ INSERT ื‘- Cassandra ื ืจืื” ืžืื•ื“ ื“ื•ืžื” ืœื–ื” ืฉื‘-PostgreSQL. ืขื ื–ืืช, ื™ืฉ ื”ื‘ื“ืœ ืื—ื“ ื’ื“ื•ืœ ื‘ืกืžื ื˜ื™ืงื”. ื‘ืงืกื ื“ืจื” 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.

  • ื”ืฆื’ ืืช ื›ืœ ื”ืฉื™ืจื™ื ืฉืœ ืืžืŸ;
  • ื”ืฆื’ ืืช ื›ืœ ื”ืฉื™ืจื™ื ืฉืœ ื”ืืžืŸ ื”ืชื•ืืžื™ื ืœื—ืœืง ื”ืจืืฉื•ืŸ ืฉืœ ื”ื›ื•ืชืจืช;
  • ื”ืฆื’ ืืช ื›ืœ ื”ืฉื™ืจื™ื ืฉืœ ืืžืŸ ืฉื™ืฉ ืœื”ื ืžื™ืœื” ืžืกื•ื™ืžืช ื‘ื›ื•ืชืจืช ื•ืžื—ื™ืจื ื ืžื•ืš ืž-1.00.
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;

ืงืกื ื“ืจื”

ืžื‘ื™ืŸ ื”ืฉืื™ืœืชื•ืช 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;

ืงืกื ื“ืจื”

ื‘ื“ื•ืžื” ืœื“ื•ื’ืžื ืฉืœ PostgreSQL ืœืขื™ืœ.

MongoDB

db.music.find( {} );

ืขืจื™ื›ืช ื ืชื•ื ื™ื ื‘ื˜ื‘ืœื”

PostgreSQL

PostgreSQL ืžืกืคืง ื”ื•ืจืื•ืช UPDATE ื›ื“ื™ ืœืฉื ื•ืช ื ืชื•ื ื™ื. ืื™ืŸ ืœื” ื”ื–ื“ืžื ื•ื™ื•ืช UPSERT, ื›ืš ืฉื”ืžืฉืคื˜ ื”ื–ื” ื™ื™ื›ืฉืœ ืื ื”ืฉื•ืจื” ื›ื‘ืจ ืœื ื ืžืฆืืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื.

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

ืงืกื ื“ืจื”

ืœืงืกื ื“ืจื” ื™ืฉ 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';

ืงืกื ื“ืจื”

ื‘ื“ื•ืžื” ืœื“ื•ื’ืžื ืฉืœ PostgreSQL ืœืขื™ืœ.

MongoDB

ืœ-MongoDB ื™ืฉ ืฉื ื™ ืกื•ื’ื™ื ืฉืœ ืคืขื•ืœื•ืช ืœืžื—ื™ืงืช ืžืกืžื›ื™ื - deleteOne() /deleteMany() ะธ ืœึฐื”ึทืกึดื™ืจ(). ืฉื ื™ ื”ืกื•ื’ื™ื ืžื•ื—ืงื™ื ืžืกืžื›ื™ื ืืš ืžื—ื–ื™ืจื™ื ืชื•ืฆืื•ืช ืฉื•ื ื•ืช.

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

ืžื—ื™ืงืช ื˜ื‘ืœื”

PostgreSQL

DROP TABLE Music;

ืงืกื ื“ืจื”

ื‘ื“ื•ืžื” ืœื“ื•ื’ืžื ืฉืœ PostgreSQL ืœืขื™ืœ.

MongoDB

db.music.drop();

ืžืกืงื ื”

ื”ื•ื•ื™ื›ื•ื— ืขืœ ื”ื‘ื—ื™ืจื” ื‘ื™ืŸ SQL ืœ-NoSQL ืžืฉืชื•ืœืœ ื›ื‘ืจ ื™ื•ืชืจ ืž-10 ืฉื ื™ื. ื™ืฉ ืฉื ื™ ื”ื™ื‘ื˜ื™ื ืขื™ืงืจื™ื™ื ืœื•ื•ื™ื›ื•ื— ื”ื–ื”: ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžื ื•ืข ืžืกื“ ื”ื ืชื•ื ื™ื (SQL ืžื•ื ื•ืœื™ื˜ื™, ื˜ืจื ื–ืงืฆื™ื•ื ืœื™ ืœืขื•ืžืช NoSQL ืžื‘ื•ื–ืจ, ืœื ื˜ืจื ื–ืงืฆื™ื•ื ืœื™) ื•ื’ื™ืฉืช ืขื™ืฆื•ื‘ ืžืกื“ ื ืชื•ื ื™ื (ืžื•ื“ืœื™ื ืฉืœ ื”ื ืชื•ื ื™ื ืฉืœืš ื‘-SQL ืœืขื•ืžืช ืžื•ื“ืœื™ื ืฉืœ ื”ืฉืื™ืœืชื•ืช ืฉืœืš ื‘-NoSQL).

ืขื ืžืกื“ ื ืชื•ื ื™ื ืขืกืงืื•ืช ืžื‘ื•ื–ืจ ื›ืžื• YugaByte DB, ื ื™ืชืŸ ืœื”ืคืกื™ืง ื‘ืงืœื•ืช ืืช ื”ื•ื•ื™ื›ื•ื— ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžืกื“ ื”ื ืชื•ื ื™ื. ื›ื›ืœ ืฉื ืคื—ื™ ื”ื ืชื•ื ื™ื ื”ื•ืคื›ื™ื ื’ื“ื•ืœื™ื ื™ื•ืชืจ ืžืžื” ืฉื ื™ืชืŸ ืœื›ืชื•ื‘ ืœืฆื•ืžืช ื‘ื•ื“ื“, ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื‘ื•ื–ืจืช ื‘ืžืœื•ืื” ื”ืชื•ืžื›ืช ื‘ืžื“ืจื’ื™ื•ืช ื›ืชื™ื‘ื” ืœื™ื ื™ืืจื™ืช ืขื ืจื™ืกื•ืง/ืื™ื–ื•ืŸ ืžื—ื“ืฉ ืื•ื˜ื•ืžื˜ื™ื™ื.

ื—ื•ืฅ ืžื–ื”, ื›ืคื™ ืฉื ืืžืจ ื‘ืื—ืช ื”ื›ืชื‘ื•ืช Google Cloud,ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืขืกืงื™ื•ืช, ืขืงื‘ื™ื•ืช ืžืื•ื“, ืžืฉืžืฉื•ืช ื›ื™ื•ื ื™ื•ืชืจ ื›ื“ื™ ืœืกืคืง ื–ืจื™ื–ื•ืช ืคื™ืชื•ื— ื˜ื•ื‘ื” ื™ื•ืชืจ ืžืืฉืจ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืœื ืขืกืงื™ื•ืช, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืขืงื‘ื™ื•ืช.

ืื ื ื—ื–ื•ืจ ืœื“ื™ื•ืŸ ื‘ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื, ื–ื” ื”ื•ื’ืŸ ืœื•ืžืจ ืฉืฉืชื™ ื’ื™ืฉื•ืช ื”ืขื™ืฆื•ื‘ (SQL ื•-NoSQL) ื ื—ื•ืฆื•ืช ืขื‘ื•ืจ ื›ืœ ื™ื™ืฉื•ื ืžื•ืจื›ื‘ ื‘ืขื•ืœื ื”ืืžื™ืชื™. ื’ื™ืฉืช "ืžื•ื“ืœ ื”ื ืชื•ื ื™ื" ืฉืœ SQL ืžืืคืฉืจืช ืœืžืคืชื—ื™ื ืœืขืžื•ื“ ื‘ื™ืชืจ ืงืœื•ืช ื‘ื“ืจื™ืฉื•ืช ื”ืขืกืงื™ื•ืช ื”ืžืฉืชื ื•ืช, ื‘ืขื•ื“ ืฉื’ื™ืฉืช "ืžื•ื“ืœ ื”ืฉืื™ืœืชื•ืช" ืฉืœ NoSQL ืžืืคืฉืจืช ืœืื•ืชื ืžืคืชื—ื™ื ืœืคืขื•ืœ ืขืœ ื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ื ืชื•ื ื™ื ืขื ื—ื‘ื™ื•ืŸ ื ืžื•ืš ื•ืชืคื•ืงื” ื’ื‘ื•ื”ื”. ืžืกื™ื‘ื” ื–ื•, YugaByte DB ืžืกืคืงืช ืžืžืฉืงื™ API ืฉืœ SQL ื•-NoSQL ื‘ืœื™ื‘ื” ืžืฉื•ืชืคืช, ื‘ืžืงื•ื ืœืงื“ื ืื—ืช ืžื”ื’ื™ืฉื•ืช. ื‘ื ื•ืกืฃ, ืขืœ ื™ื“ื™ ืžืชืŸ ืชืื™ืžื•ืช ืœืฉืคื•ืช ืžืกื“ ื ืชื•ื ื™ื ืคื•ืคื•ืœืจื™ื•ืช ื›ื•ืœืœ PostgreSQL ื•- Cassandra, YugaByte DB ืžื‘ื˜ื™ื— ืฉืžืคืชื—ื™ื ืœื ื™ืฆื˜ืจื›ื• ืœืœืžื•ื“ ืฉืคื” ืื—ืจืช ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ืžื ื•ืข ืžืกื“ ื ืชื•ื ื™ื ืžื‘ื•ื–ืจ ื•ืขืงื‘ื™ ื‘ืžื™ื•ื—ื“.

ื‘ืžืืžืจ ื–ื”, ื‘ื“ืงื ื• ื›ื™ืฆื“ ื™ืกื•ื“ื•ืช ืขื™ืฆื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉื•ื ื™ื ื‘ื™ืŸ PostgreSQL, Cassandra ื•- MongoDB. ื‘ืžืืžืจื™ื ืขืชื™ื“ื™ื™ื, ื ืฆืœื•ืœ ืœืžื•ืฉื’ื™ ืขื™ืฆื•ื‘ ืžืชืงื“ืžื™ื ื›ื’ื•ืŸ ืื™ื ื“ืงืกื™ื, ื˜ืจื ื–ืงืฆื™ื•ืช, JOINs, ื”ื ื—ื™ื•ืช TTL ื•ืžืกืžื›ื™ JSON.

ืื ื• ืžืื—ืœื™ื ืœื›ื ืžื ื•ื—ื” ื ื”ื“ืจืช ื‘ืกื•ืฃ ื”ืฉื‘ื•ืข ื•ืžื–ืžื™ื ื™ื ืืชื›ื ืกืžื™ื ืจ ืžืงื•ื•ืŸ ื—ื™ื ื, ืฉื™ืชืงื™ื™ื ื‘-14 ื‘ืžืื™.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”