ื“ืึทื˜ืึทื‘ืึทืกืข ื“ื™ื–ื™ื™ืŸ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœืก โ€‹โ€‹- ืงืึทืžืคึผืขืจื™ื ื’ PostgreSQL, Cassandra ืื•ืŸ MongoDB

ื”ืขืœื, ืคืจื™ื™ื ื˜. ืื™ื™ื“ืขืจ ืžื™ืจ ื’ื™ื™ืŸ ืคึฟืึทืจ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืžื™ื™ึท ื”ืึธืœื™ื“ื™ื™ึทืก, ืžื™ืจ ื˜ื™ื™ืœืŸ ืžื™ื˜ ืื™ืจ ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ ื•ื•ืึธืก ืžื™ืจ ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ืื™ืŸ ืึทื ื˜ื™ืกืึทืคึผื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืงืึทื˜ืขืจ ืคื•ืŸ ืึท ื ื™ื™ึท ื˜ื™ื™ึทืš ืื•ื™ืฃ ื“ืขื ืงื•ืจืก "ืจืขืœืขื ื“ืขืจ DBMS".

ื“ืึทื˜ืึทื‘ืึทืกืข ื“ื™ื–ื™ื™ืŸ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœืก โ€‹โ€‹- ืงืึทืžืคึผืขืจื™ื ื’ PostgreSQL, Cassandra ืื•ืŸ MongoDB

ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคืึทืจื‘ืจืขื ื’ืขืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืฆื™ื™ื˜ ืฆื• ืคืึทืจื’ืœื™ื™ึทื›ืŸ ืงื™ื™ืคืœ ืึทืคึผืขืจื™ื™ืฉืึทื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืฆื• ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ื•ื•ืึธืก ืื™ื– ื‘ืขืกื˜ืขืจ ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ื™ ื‘ื“ืขื” ื•ื•ืขืจืงืœืึธื•ื“. ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืงืขื ืขืŸ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืกื™ืžืคึผืœืึทืคื™ื™ื“ ื“ืึทื˜ืŸ ืžืึธื“ืขืœื™ื ื’, ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ื’ืขืจืึทื ื˜ื™ื–, ืœื™ื™ืขื ืขืŸ / ืฉืจื™ื™ึทื‘ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’, ื”ืึธืจื™ื–ืึธื ื˜ืึทืœ ืกืงื™ื™ืœื™ื ื’ ืื•ืŸ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ. ื˜ืจืึทื“ื™ืฉืึทื ืึทืœื™, ื“ื™ ื‘ืจื™ืจื” ื”ื™ื™ื‘ื˜ ื–ื™ืš ืžื™ื˜ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืงืึทื˜ืขื’ืึธืจื™ืข, SQL ืึธื“ืขืจ NoSQL, ื•ื•ื™ื™ึทืœ ื™ืขื“ืขืจ ืงืึทื˜ืขื’ืึธืจื™ืข ื’ื™ื˜ ืึท ืงืœืึธืจ ื’ืึทื ื’ ืคื•ืŸ ื”ืึทื ื“ืœ-ืึธืคืก. ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื ื™ื“ืขืจื™ืง ืœื™ื™ื˜ืึทื ืกื™ ืื•ืŸ ื”ื•ื™ืš ื˜ืจื•ืคึผื•ื˜ ืื™ื– ื‘ื›ืœืœ ื’ืขื–ืขืŸ ื•ื•ื™ ืึท ื ื™ื˜-ื”ืึทื ื“ืœ-ืึทื•ื•ืขืง ืคืึธื“ืขืจื•ื ื’ ืื•ืŸ ืื™ื– ื“ืขืจื™ื‘ืขืจ ื™ืงืขืจื“ื™ืง ืคึฟืึทืจ ืงื™ื™ืŸ ืžื•ืกื˜ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก.

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

ื•ื•ืึธืก ืื™ื– ื“ื™ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ SQL ืื•ืŸ NoSQL?

SQL ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืคืึทืจื’ืจืขืกืขืจืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ื™ื™ื’ื™ืงื™ื™ื˜ ื“ื•ืจืš ืึทืกื™ื“ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ื’ืขืจืึทื ื˜ื™ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื–ื™ื™ืขืจ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืึธื ืคืจืขื’ ื“ืึทื˜ืŸ ื ื™ืฆืŸ JOINs ืื™ืŸ ืื•ืžื’ืขืจื™ื›ื˜ ื•ื•ืขื’ืŸ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื ืึธืจืžืึทืœื™ื–ืขื“ ืจื™ืœื™ื™ืฉืึทื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืก ืžืึธื“ืขืœืก.

ื’ืขื’ืขื‘ืŸ ื–ื™ื™ืขืจ ืžืึทื ืึทืœื™ื˜ื™ืง / ืื™ื™ืŸ-ื ืึธื“ืข ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ื ื•ืฆืŸ ืคื•ืŸ ืึท ื‘ืขืœ-ืฉืงืœืึทืฃ ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžืึธื“ืขืœ ืคึฟืึทืจ ื™ื‘ืขืจื™ืงื™ื™ึทื˜, ื‘ืขืงืึทื‘ืึธืœืขื“ื™ืง ืกืงืœ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืคืขืœืŸ ืฆื•ื•ื™ื™ ื•ื•ื™ื›ื˜ื™ืง ืคึฟืขื™ึดืงื™ื™ื˜ืŸ - ืœื™ื ืขืึทืจ ืฉืจื™ื™ึทื‘ืŸ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ (ื“"ื” ืึธื˜ืึทืžืึทื˜ื™ืง ืคึผืึทืจื˜ื™ืฉืึทื ื™ื ื’ ืึทืจื™ื‘ืขืจ ืงื™ื™ืคืœ ื ืึธื•ื“ื–) ืื•ืŸ ืึธื˜ืึทืžืึทื˜ื™ืง / ื ื•ืœ ื“ืึทื˜ืŸ ืึธื ื•ื•ืขืจ. ื“ืขื ืžื™ื˜ืœ ืึทื– ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืึทื˜ืŸ ื‘ืืงื•ืžืขืŸ ืงืขืŸ ื ื™ืฉื˜ ื™ืงืกื™ื“ ื“ื™ ืžืึทืงืกื™ืžื•ื ืฉืจื™ื™ึทื‘ืŸ ื˜ืจื•ืคึผื•ื˜ ืคื•ืŸ ืึท ืื™ื™ืŸ ื ืึธื“ืข. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืขื˜ืœืขื›ืข ืฆื™ื™ื˜ื•ื•ื™ื™ืœื™ื’ืข ื“ืึทื˜ืŸ ืึธื ื•ื•ืขืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ืื™ืŸ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ (ืื™ืŸ ืึท ืฉืขืจื“-ื’ืึธืจื ื™ืฉื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ). ื“ืึธ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื”ืึทืœื˜ืŸ ืื™ืŸ ื–ื™ื ืขืŸ ืึทื– ื“ื™ ืœืขืฆื˜ืข ืงืึทืžื™ืฅ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื ืึธืš ื’ืขื•ื•ืขืŸ ืฉืคื™ื’ืœื˜ ืื™ืŸ ื“ื™ ืฉืงืœืึทืฃ ืงืึธืคึผื™ืข. ื ื™ื˜-ื“ืึทื•ื ื˜ื™ื™ื ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ื–ืขื ืขืŸ ืื•ื™ืš ืฉื•ื•ืขืจ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืื™ืŸ SQL ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–.

NoSQL ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื–ืขื ืขืŸ ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ื ืึทื˜ื•ืจ, ื“"ื”. ืื™ืŸ ื–ื™ื™, ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ ืกืขืงืฉืึทื ื– ืื•ืŸ ืฆืขืฉื™ืงื˜ ืื•ื™ืฃ ืขื˜ืœืขื›ืข ื ืึธื•ื“ื–. ื–ื™ื™ ื“ืึทืจืคืŸ ื“ื™ื ืึธืจืžืึทืœื™ื–ื™ื™ืฉืึทืŸ. ื“ืขื ืžื™ื˜ืœ ืึทื– ื“ื™ ืึทืจื™ื™ึทื ื’ืขืฉื™ืงื˜ ื“ืึทื˜ืŸ ืžื•ื–ืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืงืึทืคึผื™ื“ ืขื˜ืœืขื›ืข ืžืึธืœ ืฆื• ืจื™ืกืคึผืึทื ื“ ืฆื• ื“ื™ ืกืคึผืขืฆื™ืคื™ืฉ ืจื™ืงื•ื•ืขืก ืื™ืจ ืฉื™ืงืŸ. ื“ืขืจ ืงื•ื™ืœืขืœื“ื™ืง ืฆื™ืœ ืื™ื– ืฆื• ื‘ืึทืงื•ืžืขืŸ ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’ ื“ื•ืจืš ืจื™ื“ื•ืกื™ื ื’ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืฉืึทืจื“ื– ื‘ื ื™ืžืฆื ื‘ืขืฉืึทืก ืœื™ื™ืขื ืขืŸ. ื“ืึธืก ื™ืžืคึผืœื™ื™ื– ืึทื– NoSQL ืจื™ืงื•ื•ื™ื™ืขืจื– ืื™ืจ ืฆื• ืžืึธื“ืขืœ ื“ื™ื™ืŸ ืคึฟืจืื’ืŸ, ื‘ืฉืขืช SQL ืจื™ืงื•ื•ื™ื™ืขืจื– ืื™ืจ ืฆื• ืžืึธื“ืขืœ ื“ื™ื™ืŸ ื“ืึทื˜ืŸ.

NoSQL ืคืึธื•ืงื™ืกื™ื– ืื•ื™ืฃ ื“ืขืจื’ืจื™ื™ื›ืŸ ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ืŸ ืึท ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืงื ื•ื™ืœ ืื•ืŸ ื“ืึธืก ืื™ื– ื“ื™ ืึทื ื“ืขืจืœื™ื™ื™ื ื’ ืกื™ื™ื›ืœ ืคึฟืึทืจ ืคื™ืœืข ื“ื™ื™ื˜ืึทื‘ื™ื™ืก ืคึผืœืึทืŸ ื˜ืจื™ื™ื“ืึธืคืคืก ื•ื•ืึธืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืึทืกื™ื“ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืึธื ื•ื•ืขืจ, JOINs ืื•ืŸ ืงืึธื ืกื™ืกื˜ืขื ื˜ ื’ืœืื‘ืืœืข ืฆื•ื•ื™ื™ื˜ื™ืง ื™ื ื“ืขืงืกื™ื–.

ืขืก ืื™ื– ืึทืŸ ืึทืจื’ื•ืžืขื ื˜ ืึทื– ื›ืึธื˜ืฉ NoSQL ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืฆื•ืฉื˜ืขืœืŸ ืœื™ื ืขืึทืจ ืฉืจื™ื™ึทื‘ืŸ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ืื•ืŸ ื”ื•ื™ืš ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ, ื“ื™ ืึธื ื•ื•ืขืจ ืคื•ืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ื’ืขืจืึทื ื˜ื™ื– ืžืื›ื˜ ื–ื™ื™ ื•ืžืคึผืึทืกื™ืง ืคึฟืึทืจ ืžื™ืกื™ืข-ืงืจื™ื˜ื™ืฉ ื“ืึทื˜ืŸ.

ื“ื™ ืคืืœื’ืขื ื“ืข ื˜ื™ืฉ ื•ื•ื™ื™ื–ื˜ ื•ื•ื™ ื“ืึทื˜ืŸ ืžืึธื“ืขืœื™ื ื’ ืื™ืŸ NoSQL ืื™ื– ืึทื ื“ืขืจืฉ ืคื•ืŸ SQL.

ื“ืึทื˜ืึทื‘ืึทืกืข ื“ื™ื–ื™ื™ืŸ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœืก โ€‹โ€‹- ืงืึทืžืคึผืขืจื™ื ื’ PostgreSQL, Cassandra ืื•ืŸ MongoDB

SQL ืื•ืŸ NoSQL: ืคืืจื•ื•ืืก ื–ืขื ืขืŸ ื‘ื™ื™ื“ืข ื“ืืจืฃ?

ืคืึทืงื˜ื™ืฉ-ื•ื•ืขืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืžื™ื˜ ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื ื™ืฆืขืจืก, ืึทื–ืึท ื•ื•ื™ Amazon.com, Netflix, Uber ืื•ืŸ Airbnb, ื–ืขื ืขืŸ ื˜ืึทืกืงื˜ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืงืึธืžืคึผืœืขืงืก, ืžืึทืœื˜ื™-ืคืึทืกืึทื˜ื™ื“ ื˜ืึทืกืงืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึทืŸ E- ื”ืึทื ื“ืœ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ื™ Amazon.com ื“ืึทืจืฃ ืงืจืึธื ืœื™ื™ื˜ื•ื•ื™ื™ื˜, ื”ื•ื™ืš-ืงืจื™ื˜ื™ืฉ ื“ืึทื˜ืŸ ืึทื–ืึท ื•ื•ื™ ื‘ืึทื ื™ืฆืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืคึผืจืึธื“ื•ืงื˜ืŸ, ืึธืจื“ืขืจืก, ื™ื ื•ื•ื•ื™ืกื™ื–, ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ ืฉื•ื•ืขืจ, ื•ื•ื™ื™ื ื™ืงืขืจ ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ื“ืึทื˜ืŸ ืึทื–ืึท ื•ื•ื™ ืคึผืจืึธื“ื•ืงื˜ ื‘ืืจื™ื›ื˜ืŸ, ืฉื˜ื™ืฆืŸ ืึทืจื˜ื™ืงืœืขืŸ, ื‘ืึทื ื™ืฆืขืจ ื˜ืขื˜ื™ืงื™ื™ื˜, ื‘ืึทื ื™ืฆืขืจ ื‘ืืจื™ื›ื˜ืŸ ืื•ืŸ ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื–. ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš, ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคืึทืจืœืึธื–ื  ื–ื™ืš ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ SQL ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื•ื–ืืžืขืŸ ืžื™ื˜ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ NoSQL ื“ืึทื˜ืึทื‘ื™ื™ืก. ืื™ืŸ ืงืจื™ื™ึทื–-ืจืขื’ื™ืึธื ืึทืœ ืื•ืŸ ื’ืœืื‘ืืœืข ืกื™ืกื˜ืขืžืขืŸ, ืึท NoSQL ื“ืึทื˜ืึทื‘ื™ื™ืก ืึทืคึผืขืจื™ื™ืฅ ื•ื•ื™ ืึท ื’ืขืึธ-ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ืงืึทืฉ ืคึฟืึทืจ ื“ืึทื˜ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืึท ื˜ืจืึทืกื˜ื™ื“ ืžืงื•ืจ ืกืงืœ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคืœื™ืกื ื“ื™ืง ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื’ืขื’ื ื˜.

ื•ื•ื™ ืงืขืŸ YugaByte DB ืคืึทืจื‘ื™ื ื“ืŸ SQL ืื•ืŸ NoSQL?

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

ื“ืึทื˜ืึทื‘ืึทืกืข ื“ื™ื–ื™ื™ืŸ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœืก โ€‹โ€‹- ืงืึทืžืคึผืขืจื™ื ื’ PostgreSQL, Cassandra ืื•ืŸ MongoDB

ื•ื•ื™ ืคืจื™ืขืจ ืกื˜ื™ื™ื˜ื™ื“ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ "ื™ื ื˜ืจืึธื“ื•ืกื™ื ื’ YSQL: ืึท PostgreSQL ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื“ื™ืกื˜ืจื™ื‘ื™ื•ื˜ื™ื“ ืกืงืœ ืึทืคึผื™ ืคึฟืึทืจ ื™ื•ื’ืึทื‘ื™ื˜ืข ื“ื‘", ื“ื™ ื‘ืจื™ืจื” ืฆื•ื•ื™ืฉืŸ SQL ืึธื“ืขืจ NoSQL ืื™ืŸ YugaByte DB ื“ืขืคึผืขื ื“ืก ืœืขื’ืึทืžืจืข ืื•ื™ืฃ ื“ื™ ืงืขืจืึทืงื˜ืขืจื™ืกื˜ื™ืงืก ืคื•ืŸ ื“ื™ ืึทื ื“ืขืจืœื™ื™ื™ื ื’ ื•ื•ืขืจืงืœืึธื•ื“:

  • ืื•ื™ื‘ ื“ื™ื™ืŸ ืขืจืฉื˜ื™ืง ื•ื•ืขืจืงืœืึธื•ื“ ืื™ื– ืžืึทืœื˜ื™-ืฉืœื™ืกืœ JOIN ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ื•ื•ืขืŸ ื˜ืฉื•ื–ื™ื ื’ YSQL, ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ื“ื™ื™ืŸ ืฉืœื™ืกืœืขืŸ ืงืขืŸ ื–ื™ื™ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื™ื‘ืขืจ ืงื™ื™ืคืœ ื ืึธื•ื“ื–, ืจื™ื–ืึทืœื˜ื™ื ื’ ืื™ืŸ ื”ืขื›ืขืจ ืœื™ื™ื˜ืึทื ืกื™ ืื•ืŸ / ืึธื“ืขืจ ื ื™ื“ืขืจื™ืงืขืจ ื˜ืจื•ืคึผื•ื˜ ื•ื•ื™ NoSQL.
  • ืึทื ื“ืขืจืฉ, ืงืœื™ื™ึทื‘ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืฆื•ื•ื™ื™ NoSQL APIs, ืื•ืŸ ื”ืึทืœื˜ืŸ ืื™ืŸ ืžื™ื™ื ื•ื ื’ ืึทื– ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ื‘ืขืกืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืคึฟืจืื’ืŸ ื’ืขื“ื™ื ื˜ ืคึฟื•ืŸ ืื™ื™ืŸ ื ืึธื“ืข ืื™ืŸ ืึท ืฆื™ื™ื˜. YugaByte DB ืงืขื ืขืŸ ื“ื™ื ืขืŸ ื•ื•ื™ ืึท ืื™ื™ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟืึทืจ ืคืึทืงื˜ื™ืฉ-ื•ื•ืขืœื˜, ืงืึธืžืคึผืœืขืงืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื“ืึทืจืคึฟืŸ ืฆื• ืคื™ืจืŸ ืงื™ื™ืคืœ ื•ื•ืขืจืงืœืึธื•ื“ื– ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™.

ื“ื™ ื“ืึทื˜ืึท ืžืึธื“ืขืœื™ื ื’ ืœืึทื‘ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ PostgreSQL ืื•ืŸ Cassandra API ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ YugaByte DB ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–, ื•ื•ื™ ืงืขื’ืŸ ืฆื• ื’ืขื‘ื•ื™ืจืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–. ื“ืขืจ ืฆื•ื’ืึทื ื’ ืขืžืคืึทืกื™ื™ื–ื™ื– ื“ื™ ื™ื– ืคื•ืŸ ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ ืฆื•ื•ื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ืึทืคึผื™ืก (ืื•ื™ืฃ ืฆื•ื•ื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืึธืจืฅ) ืคื•ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก ืงื ื•ื™ืœ, ื•ื•ื™ ืงืขื’ืŸ ืฆื• ื ื•ืฆืŸ ื’ืึธืจ ืคืจื™ื™ึท ืงืœืึทืกื˜ืขืจื– ืคื•ืŸ ืฆื•ื•ื™ื™ ืคืึทืจืฉื™ื“ืขื ืข ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–.
ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืกืขืงืฉืึทื ื–, ืžื™ืจ ื•ื•ืขืœืŸ ื ืขืžืขืŸ ืึท ืงื•ืง ืื™ืŸ ื“ื™ ื“ืึทื˜ืŸ ืžืึธื“ืขืœื™ื ื’ ืœืึทื‘ ืฆื• ืื™ืœื•ืกื˜ืจื™ืจืŸ ื“ื™ ื“ื™ืคืขืจืึทื ืกื™ื– ืื•ืŸ ืขื˜ืœืขื›ืข ืงืึทืžืึทื ืึทืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื‘ืื“ืขืงื˜.

ื“ืึทื˜ืึท ืžืึธื“ืขืœื™ื ื’ ืœืึทื‘ืึธืจืึทื˜ืึธืจื™ืข

ื“ืึทื˜ืึทื‘ืึทืกืข ื™ื ืกื˜ืึทืœื™ืจื•ื ื’

ื’ืขื’ืขื‘ืŸ ื“ืขื ื˜ืจืึธืคึผ ืื•ื™ืฃ ื“ืึทื˜ืŸ ืžืึธื“ืขืœ ืคึผืœืึทืŸ (ืืœื ื•ื•ื™ ืงืึธืžืคึผืœืขืงืก ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–), ืžื™ืจ ื•ื•ืขืœืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืื™ืŸ ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ื™ืฃ ื“ื™ ื”ื™ื’ืข ืžืึทืฉื™ืŸ ืื•ืŸ ื“ืขืจื ืึธืš ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื–ื™ื™ ืžื™ื˜ ื–ื™ื™ืขืจ ืจื™ืกืคึผืขืงื˜ื™ื•ื• ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืฉืขืœื–.

PostgreSQL & Cassandra ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ YugaByte 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

ืžืึธื ื’ืึธื“ื‘

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

ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืึทืงืกืขืก

ืœืึธืžื™ืจ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืฉืึธืœ ืคึฟืึทืจ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืึทืคึผื™ืก.

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

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

ืžืึธื ื’ืึธื“ื‘

mongo ืื™ื– ืึท ื‘ืึทืคึฟืขืœ ืฉื•ืจื” ืฉืึธืœ ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงื˜ื™ื ื’ ืžื™ื˜ MongoDB. ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ื™ bin Directory ืคื•ืŸ ื“ื™ MongoDB ื™ื ืกื˜ืึทืœื™ืจื•ื ื’.

docker exec -it my-mongo bash 
cd bin
mongo

ืฉืืคืŸ ื ื˜ื™ืฉ

ืื™ืฆื˜ ืžื™ืจ ืงืขื ืขืŸ ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืคืึทืจืฉื™ื“ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”. ืœืึธืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ืฉืึทืคึฟืŸ ืึท ื˜ื™ืฉ ื•ื•ืึธืก ืกื˜ืึธืจื– ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืœื™ื“ืขืจ ื’ืขืฉืจื™ื‘ืŸ ื“ื•ืจืš ืคืึทืจืฉื™ื“ืขื ืข ืึทืจื˜ื™ืก. ื“ื™ ืœื™ื“ืขืจ ืงืขืŸ ื–ื™ื™ืŸ ื˜ื™ื™ืœ ืคื•ืŸ ืึทืŸ ืืœื‘ืื. ืื•ื™ืš ืึทืคึผืฉืึทื ืึทืœ ืึทื˜ืจื™ื‘ื™ื•ืฅ ืคึฟืึทืจ ืึท ืœื™ื“ ื–ืขื ืขืŸ ื™ืึธืจ ืคื•ืŸ ืžืขืœื“ื•ื ื’, ืคึผืจื™ื™ึทื–, ื–ืฉืึทื ืจืึท ืื•ืŸ ืฉืึทืฅ. ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจืขื›ืขื ืขืŸ ื ืึธืš ืึทื˜ืจื™ื‘ื™ื•ืฅ ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ื“ืืจืฃ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ื“ื•ืจืš ื“ื™ "ื˜ืึทื’ืก" ืคืขืœื“. ืขืก ืงืขื ืขืŸ ืงืจืึธื ื”ืึทืœื‘-ืกื˜ืจืึทืงื˜ืฉืขืจื“ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืขืจื–.

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

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 ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ืขืจ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืึท ืฆืขื˜ื™ื™ืœื•ื ื’ ืฉืœื™ืกืœ (ื“ืขืจ ืงื™ื ืกื˜ืœืขืจ ื–ื™ื™ึทืœ ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื ื˜ืŸ) ืื•ืŸ ืึท ืกื›ื•ื ืคื•ืŸ ืงืœืึทืกื˜ืขืจื™ื ื’ ืฉืคืืœื˜ืŸ (ื“ื™ 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 ืึธืจื’ืึทื ื™ื–ื™ืจื˜ ื“ืึทื˜ืŸ ืื™ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– (ื“ืึทื˜ืึทื‘ืึทืกืข) (ืขื ืœืขืš ืฆื• Keyspace ืื™ืŸ Cassandra), ื•ื•ื• ืขืก ื–ืขื ืขืŸ ื–ืึทืžืœื•ื ื’ืขืŸ (ืขื ืœืขืš ืฆื• ื˜ื™ืฉืŸ) ื•ื•ืึธืก ืึทื ื˜ื”ืึทืœื˜ืŸ ื“ืึธืงื•ืžืขื ื˜ืŸ (ืขื ืœืขืš ืฆื• ืจืึธื•ื– ืื™ืŸ ืึท ื˜ื™ืฉ). ืื™ืŸ MongoDB, ืขืก ืื™ื– ื‘ื™ื™ืกื™ืงืœื™ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื“ืขืคื™ื ื™ืจืŸ ืึทืŸ ืขืจืฉื˜ ืกื˜ืฉืขืžืึท. ืžืึทื ืฉืึทืคึฟื˜ "ื ื•ืฆืŸ ื“ืึทื˜ืึทื‘ืึทืกืข", ื’ืขื•ื•ื™ื–ืŸ ืื•ื ื˜ืŸ, ื™ื ืกื˜ืึทื ื˜ื™ืึทื˜ืขืก ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ื™ืฃ ื“ืขืจ ืขืจืฉื˜ืขืจ ืจื•ืคืŸ ืื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ื™ ืงืึธื ื˜ืขืงืกื˜ ืคึฟืึทืจ ื“ื™ ื ื™ื™ ื‘ืืฉืืคืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืืคื™ืœื• ื–ืึทืžืœื•ื ื’ืขืŸ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ ื‘ืคื™ืจื•ืฉ; ื–ื™ื™ ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ, ื ืึธืจ ื•ื•ืขืŸ ืื™ืจ ืœื™ื™ื’ืŸ ื“ืขื ืขืจืฉื˜ืขืจ ื“ืึธืงื•ืžืขื ื˜ ืฆื• ืึท ื ื™ื™ึทืข ื–ืึทืžืœื•ื ื’. ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– MongoDB ื ื™ืฆื˜ ื“ื™ ืคึผืจืึธื‘ืข ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืึทื–ื•ื™ ืงื™ื™ืŸ ื–ืึทืžืœื•ื ื’-ืžื“ืจื’ื” ืึธืคึผืขืจืึทืฆื™ืข ืึธืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ืขื˜ ืœื•ื™ืคืŸ ืื•ื™ืฃ ืขืก ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜.

use myNewDatabase;

ื‘ืึทืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึท ื˜ื™ืฉ
ืคึผืึธืกื˜ื’ืจืขืกืงืœ

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

ืžืึธื ื’ืึธื“ื‘

use myNewDatabase;
show collections;

ืึทืจื™ื™ึทืŸ ื“ืึทื˜ืŸ ืื™ืŸ ืึท ื˜ื™ืฉ
ืคึผืึธืกื˜ื’ืจืขืกืงืœ

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 ืื™ื– ืึท NoSQL ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ Cassandra, ื–ื™ื™ืŸ ื™ื ืกืขืจืฉืึทืŸ ืึธืคึผืขืจืึทืฆื™ืข ื”ืื˜ ื’ืึธืจื ื™ืฉื˜ ืื™ืŸ ืคึผืจืึธืกื˜ ืžื™ื˜ ื“ื™ ืกืขืžืึทื ื˜ื™ืง ื ืึทื˜ื•ืจ ืคื•ืŸ Cassandra. ืื™ืŸ 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. ืกืงืœ ืึทืœืึทื•ื– ื ืึธืš ืื•ื™ืกื“ืจื•ืง FROM ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืงื™ื™ืคืœ ื˜ื™ืฉืŸ, ืื•ืŸ ืื•ื™ืกื“ืจื•ืง ืžื™ื˜ WHERE ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคื•ืŸ ืงื™ื™ืŸ ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ (ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึทืคึผืขืจื™ื™ืฉืึทื ื– JOIN ืฆื•ื•ื™ืฉืŸ ื˜ื™ืฉืŸ). ืึธื‘ืขืจ, NoSQL ื˜ืขื ื“ื– ืฆื• ืึธื ื˜ืึธืŸ ืึท ืฉื˜ืจืขื ื’ ื‘ืึทื’ืจืขื ืขืฆื•ื ื’ FROM, ืื•ืŸ ืึทืจื‘ืขื˜ ื‘ืœื•ื™ื– ืžื™ื˜ ืื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ ื˜ื™ืฉ, ืื•ืŸ ืื™ืŸ WHERE, ื“ืขืจ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ ืžื•ื–ืŸ ืฉื˜ืขื ื“ื™ืง ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“. ื“ืขื ื˜ื™ื™ื– ืื™ืŸ ื“ื™ NoSQL ืคืึธืจืฉื˜ืขืœื•ื ื’ ืฉื˜ื•ืคึผืŸ ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ืคืจื™ืขืจ. ื“ืขืจ ืคืึทืจืœืึทื ื’ ืคื™ืจื˜ ืฆื• ื™ืขื“ืขืจ ืžืขื’ืœืขืš ืจืขื“ื•ืงืฆื™ืข ืื™ืŸ ืงื™ื™ืŸ ืงืจื™ื™ึทื–-ื˜ืึทื‘ื•ืœืึทืจ ืื•ืŸ ืงืจื™ื™ึทื–-ืฉืœื™ืกืœ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ. ืขืก ืงืขืŸ ืคืึธืจืฉื˜ืขืœืŸ ืึท ื’ืจื•ื™ืก ืคืึทืจื”ืึทืœื˜ืŸ ืื™ืŸ ื™ื ื˜ืขืจ-ื ืึธื“ืข ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ืขืŸ ืจื™ืกืคึผืึทื ื“ื™ื ื’ ืฆื• ืึท ื‘ืงืฉื” ืื•ืŸ ืื™ื– ื“ืขืจื™ื‘ืขืจ ื‘ืขืกื˜ืขืจ ืึทื•ื•ื•ื™ื“ื™ื“ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, Cassandra ืจื™ืงื•ื•ื™ื™ืขืจื– ืคึฟืจืื’ืŸ ืฆื• ื–ื™ื™ืŸ ืœื™ืžื™ื˜ืขื“ ืฆื• ื–ื™ื›ืขืจ ืึธืคึผืขืจื™ื™ื˜ืขืจื– (ื‘ืœื•ื™ื– =, IN, <, >, =>, <=) ืื•ื™ืฃ ืฆืขื˜ื™ื™ืœื•ื ื’ ืฉืœื™ืกืœืขืŸ, ืึทื—ื•ืฅ ื•ื•ืขืŸ ืื™ืจ ื‘ืขื˜ืŸ ืึท ืฆื•ื•ื™ื™ื˜ื™ืง ืื™ื ื“ืขืงืก (ื‘ืœื•ื™ื– ื“ืขืจ = ืึธืคึผืขืจืึทื˜ืึธืจ ืื™ื– ืขืจืœื•ื™ื‘ื˜ ื“ืึธ).

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

ื•ื ื˜ืขืจ ื–ืขื ืขืŸ ื“ืจื™ื™ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืงื•ื•ื™ืจื™ื– ื•ื•ืึธืก ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ื“ื•ืจืš ืึท 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 ืงื•ื•ื™ืจื™ื– ืœื™ืกื˜ืขื“ ืื•ื™ื‘ืŸ, ื‘ืœื•ื™ื– ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื™ื ืขืจ ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ืึทื ื˜ืฉื™ื™ื ื“ื–ืฉื“ ืื™ืŸ Cassandra, ื–ื™ื ื˜ ื“ืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ 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 ืื™ื– db.collection.find(). ื“ืขืจ ืื•ืคึฟืŸ ื›ึผื•ืœืœ ื‘ืคื™ืจื•ืฉ ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ื–ืึทืžืœื•ื ื’ (music ืื™ืŸ ื“ืขื ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื ื˜ืŸ), ืึทื–ื•ื™ ืฆื• ืคืจืขื’ืŸ ืงื™ื™ืคืœ ื–ืึทืžืœื•ื ื’ืขืŸ ืื™ื– ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“.

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

ืœื™ื™ืขื ืขืŸ ืึทืœืข ืจืึธื•ื– ืคื•ืŸ ืึท ื˜ื™ืฉ

ืœื™ื™ืขื ืขืŸ ืึทืœืข ืจืึธื•ื– ืื™ื– ืคืฉื•ื˜ ืึท ืกืคึผืขืฆื™ืขืœ ืคืึทืœ ืคื•ืŸ ื“ื™ ืึธื ืคึฟืจืขื’ ืžื•ืกื˜ืขืจ ืžื™ืจ ื’ืขืงื•ืงื˜ ืื™ืŸ ืคืจื™ืขืจ.

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

SELECT * 
FROM Music;

ืงืึทืกืกืึทื ื“ืจืึท

ืขื ืœืขืš ืฆื• ื“ื™ PostgreSQL ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื™ื‘ืŸ.

ืžืึธื ื’ืึธื“ื‘

db.music.find( {} );

ืขื“ื™ื˜ื™ื ื’ ื“ืึทื˜ืŸ ืื™ืŸ ืึท ื˜ื™ืฉ

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

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 ืงืขื ืขืŸ ื’ืึธืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืึทืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื“ืึธืงื•ืžืขื ื˜ ืึธื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื‘ืœื•ื™ื– ื–ื™ื›ืขืจ ืคืขืœื“ืขืจ. ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืขืก ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื‘ืœื•ื™ื– ืื™ื™ืŸ ื“ืึธืงื•ืžืขื ื˜ ืžื™ื˜ ืกืขืžืึทื ื˜ื™ืงืก ืคืึทืจืงืจื™ืคึผืœื˜ UPSERT. ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืงื™ื™ืคืœ ื“ืึธืงื•ืžืขื ื˜ืŸ ืื•ืŸ ืขื ืœืขืš ื ืึทื˜ื•ืจ UPSERT ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ืขื ื“ื˜ ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื ืึธืš ืคืœืึทื’ืก ืคึฟืึทืจ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื ื˜ืŸ, ื“ื™ ื–ืฉืึทื ืจืึท ืคื•ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืงื™ื ืกื˜ืœืขืจ ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื–ื™ื™ืŸ ืœื™ื“.

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

ืจื™ืžื•ื•ื•ื™ื ื’ ื“ืึทื˜ืŸ ืคื•ืŸ ืึท ื˜ื™ืฉ

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

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

ืงืึทืกืกืึทื ื“ืจืึท

ืขื ืœืขืš ืฆื• ื“ื™ PostgreSQL ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื™ื‘ืŸ.

ืžืึธื ื’ืึธื“ื‘

MongoDB ื”ืื˜ ืฆื•ื•ื™ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืฆื• ื•ื™ืกืžืขืงืŸ ื“ืึธืงื•ืžืขื ื˜ืŸ - deleteOne() /deleteMany() ะธ ืึทืจืึธืคึผื ืขืžืขืŸ (). ื‘ื™ื™ื“ืข ื˜ื™ื™ืคึผืก ื•ื™ืกืžืขืงืŸ ื“ืึธืงื•ืžืขื ื˜ืŸ ืึธื‘ืขืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืคืึทืจืฉื™ื“ืขื ืข ืจืขื–ื•ืœื˜ืึทื˜ืŸ.

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

ื•ื™ืกืžืขืงืŸ ืึท ื˜ื™ืฉ

ืคึผืึธืกื˜ื’ืจืขืกืงืœ

DROP TABLE Music;

ืงืึทืกืกืึทื ื“ืจืึท

ืขื ืœืขืš ืฆื• ื“ื™ PostgreSQL ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื™ื‘ืŸ.

ืžืึธื ื’ืึธื“ื‘

db.music.drop();

ืกืึธืฃ

ื“ื™ ื“ืขื‘ืึทื˜ืข ื•ื•ืขื’ืŸ ื˜ืฉื•ื–ื™ื ื’ ืฆื•ื•ื™ืฉืŸ SQL ืื•ืŸ NoSQL ืื™ื– ืจื™ื™ื“ื–ืฉื™ื ื’ ืคึฟืึทืจ ืžืขืจ ื•ื•ื™ 10 ื™ืึธืจ. ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื”ื•ื™ืคึผื˜ ืึทืกืคึผืขืงืฅ ืคื•ืŸ ื“ืขื ื“ืขื‘ืึทื˜ืข: ื“ืึทื˜ืึทื‘ื™ื™ืก ืžืึธื˜ืึธืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ (ืžืึธื ืึธืœื™ื˜ื”ื™ืง, ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ืกืงืœ ื•ื•ืก ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜, ื ื™ื˜-ื˜ืจืึทื ื–ืึทืงืฉืึทื ืึทืœ ื ืึธืกืงืงืœ) ืื•ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึผืœืึทืŸ ืฆื•ื’ืึทื ื’ (ืžืึธื“ืขืœื™ื ื’ ื“ื™ื™ืŸ ื“ืึทื˜ืŸ ืื™ืŸ SQL ื•ื•ืก ืžืึธื“ืขืœื™ื ื’ ื“ื™ื™ืŸ ืคึฟืจืื’ืŸ ืื™ืŸ NoSQL).

ืžื™ื˜ ืึท ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ YugaByte DB, ื“ื™ ื“ืขื‘ืึทื˜ืข ื•ื•ืขื’ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื™ื›ื˜ ืฉื˜ืขืœืŸ ืฆื• ืจื•. ื•ื•ื™ ื“ืึทื˜ืŸ ื•ื•ืึทืœื™ื•ืžื– ื•ื•ืขืจืŸ ื’ืจืขืกืขืจืข ื•ื•ื™ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ืึท ืื™ื™ืŸ ื ืึธื“ืข, ืึท ื’ืึธืจ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ืœื™ื ืขืึทืจ ืฉืจื™ื™ึทื‘ืŸ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ืžื™ื˜ ืึธื˜ืึทืžืึทื˜ื™ืง ืฉืึทืจื“ื™ื ื’ / ืจื™ื‘ืึทืœืึทื ืกื™ื ื’ ื•ื•ืขืจื˜ ื ื™ื™ื˜ื™ืง.

ืื•ื™ืกืขืจื“ืขื, ื•ื•ื™ ืขืก ืฉื˜ื™ื™ื˜ ืื™ืŸ ืื™ื™ื ืขื ืคื•ืŸ ื“ื™ ืืจื˜ื™ืงืœืขืŸ Google Cloud,ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ, ืฉื˜ืืจืง ืงืึธื ืกื™ืกื˜ืขื ื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื– ื–ืขื ืขืŸ ืื™ืฆื˜ ืžืขืจ, ื’ืขื ื™ืฆื˜ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื‘ืขืกืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคืœื™ื ืงื™ื™ึทื˜ ื•ื•ื™ ื ื™ื˜-ื˜ืจืึทื ื–ืึทืงืฉืึทื ืึทืœ, ื™ื•ื•ืขื ื˜ืฉืึทื•ื•ืึทืœื™ ืงืึธื ืกื™ืกื˜ืขื ื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–.

ืฆื•ืจื™ืง ืฆื• ื“ื™ ื“ื™ืกืงื•ืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึผืœืึทืŸ, ืขืก ืื™ื– ืฉื™ื™ืŸ ืฆื• ื–ืึธื’ืŸ ืึทื– ื‘ื™ื™ื“ืข ืคึผืœืึทืŸ ืึทืคึผืจืึธื•ื˜ืฉื™ื– (SQL ืื•ืŸ NoSQL) ื–ืขื ืขืŸ ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ืงื™ื™ืŸ ืงืึธืžืคึผืœืขืงืก ืคืึทืงื˜ื™ืฉ-ื•ื•ืขืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื“ื™ ืกืงืœ "ื“ืึทื˜ืึท ืžืึธื“ืขืœื™ื ื’" ืฆื•ื’ืึทื ื’ ืึทืœืึทื•ื– ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืฆื• ืžืขืจ ืœื™ื™ื›ื˜ ื˜ืจืขืคืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื’ืขืฉืขืคื˜ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ, ื‘ืฉืขืช ื“ื™ NoSQL "ืึธื ืคึฟืจืขื’ ืžืึธื“ืขืœื™ื ื’" ืฆื•ื’ืึทื ื’ ืึทืœืึทื•ื– ื“ื™ ื–ืขืœื‘ืข ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืฆื• ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ื’ืจื•ื™ืก ื•ื•ืึทืœื™ื•ืžื– ืคื•ืŸ ื“ืึทื˜ืŸ ืžื™ื˜ ื ื™ื“ืขืจื™ืง ืœื™ื™ื˜ืึทื ืกื™ ืื•ืŸ ื”ื•ื™ืš ื˜ืจื•ืคึผื•ื˜. ืขืก ืื™ื– ืคึฟืึทืจ ื“ืขื ืกื™ื‘ื” ืึทื– YugaByte DB ื’ื™ื˜ SQL ืื•ืŸ NoSQL APIs ืื™ืŸ ืึท ืคึผืจืึธืกื˜ ื”ืึทืจืฅ, ืืœื ื•ื•ื™ ืคึผืจืึทืžืึธื•ื˜ื™ื ื’ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืึทืคึผืจืึธื•ื˜ืฉื™ื–. ืึทื“ื“ื™ื˜ื™ืึธื ืึทืœืœื™, ื“ื•ืจืš ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžื™ื˜ ืคืึธืœืงืก ื“ืึทื˜ืึทื‘ื™ื™ืก ืฉืคึผืจืึทื›ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ PostgreSQL ืื•ืŸ Cassandra, YugaByte DB ื™ื ืฉื•ืจื– ืึทื– ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ืœืขืจื ืขืŸ ืืŸ ืื ื“ืขืจ ืฉืคึผืจืึทืš ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜, ื”ืขื›ืกื˜ ืงืึธื ืกื™ืกื˜ืขื ื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ืžืึธื˜ืึธืจ.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืžื™ืจ ื’ืขืงื•ืงื˜ ืื•ื™ืฃ ื•ื•ื™ ื“ื™ ืคืึทื ื“ืึทืžืขื ื˜ืึทืœื– ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึผืœืึทืŸ ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ืฆื•ื•ื™ืฉืŸ PostgreSQL, Cassandra ืื•ืŸ MongoDB. ืื™ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืึทืจื˜ื™ืงืœืขืŸ, ืžื™ืจ ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ืื™ืŸ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืคึผืœืึทืŸ ืงืึทื ืกืขืคึผืก ืึทื–ืึท ื•ื•ื™ ื™ื ื“ืขืงืกื™ื–, ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, JOINs, TTL ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื– ืื•ืŸ JSON ื“ืึธืงื•ืžืขื ื˜ืŸ.

ืžื™ืจ ื•ื•ื™ื ื˜ืฉืŸ ืื™ืจ ืึท ื’ืจื•ื™ืก ืžื ื•ื—ื” ืคื•ืŸ ื“ื™ ืึธืคึผืจื•ื˜ืขื’ ืื•ืŸ ืœืึทื“ืŸ ืื™ืจ ืฆื• ืคึฟืจื™ื™ึท ื•ื•ืขื‘ื™ื ืึทืจ, ื•ื•ืืก ื•ื•ืขื˜ ืคืืจืงื•ืžืขืŸ ื“ืขื 14ื˜ืŸ ืžืื™.

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’