áááºá¹ááá¬áá« áá°áááºáá»ááºážá áá±áá¡á¬ážáááºáááºáá»á¬ážá áá¯áááááá¯ááºážááᯠáááœá¬ážáá®á áááºáááºážááœáẠáá¯ááºááœáŸáá·áºááŸá¯á¡áá
áºáá
áºáᯠá
áááºáá±á¬á·áááºááᯠáá»áŸá±á¬áºááá·áºáᬠáá¬áá¬ááŒááºáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬ááᯠááá·áºá¡á¬áž áá»áŸáá±áá«áááºá
á¡ááá®áá±ážááŸááºáž developer áá»á¬ážááẠáááºááœááºáá¬ážááá·áº á¡áá¯ááºáá¬áááºááŸáá·áº á¡ááá¯ááºáá®áá¯á¶ážááᯠááœá±ážáá»ááºáááºá¡ááœáẠáá¯ááºáááºážáááºáááºááŸá¯ááá¯ááºáᬠáá±áá¬áá±á·á
áºá¡áá»á¬ážá¡ááŒá¬ážááᯠááŸáá¯ááºážááŸááºáᬠá¡áá»áááºá¡áá±á¬áºááŒá¬ áá¯á¶ážá
áœá²ááŒáááºá ááá¯á¡ááºáá»ááºáá»á¬ážááœáẠááá¯ážááŸááºážáá±á¬áá±áá¬áá¯á¶á
á¶áááºáá®ážááŒááºážá ááœá±áá±ážááœá±áá°á¡á¬ááá¶áá»ááºáá»á¬ážá áááº/áá±ážááŒááºážá
áœááºážáá±á¬ááºáááºá á¡áá»á¬ážááá¯ááºá¡ááá¯ááºážá¡áá¬ááŸáá·áº á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáááºážáá¶ááá¯ááºááŸá¯ááá¯á· áá«áááºááá¯ááºáááºá á¡á
ááºá¡áá¬á¡á¬ážááŒáá·áºá á¡áá»áá¯ážá¡á
á¬ážáá
áºáá¯á
á®ááẠááŸááºážáááºážááŒááºáá¬ážáá±á¬ á¡áá±ážá¡áá°á¡á
á¯áá»á¬ážááᯠáááºááŒáá±á¬ááŒá±á¬áá·áº ááœá±ážáá»ááºááŸá¯ááẠáá±áá¬áá±á·á
áºá¡áá»áá¯ážá¡á
á¬ážá SQL ááá¯á·ááá¯áẠNoSQL ááŒáá·áº á
áááºáááºá latency áááºážáá«ážááŒááºážááŸáá·áº ááŒáá·áºáá¬ážáá±á¬ááŒááºáááºážááŸá¯ááá¯ááºáᬠáááºááŸááºáá»ááºáá»á¬ážááœáẠá
áœááºážáá±á¬ááºáááºááŒáá·áºáá¬ážááŸá¯ááᯠáá±áá¯áá»á¡á¬ážááŒáá·áº á¡áá±ážá¡áá°áááŸááá±á¬ ááá¯á¡ááºáá»ááºá¡ááŒá
ẠááŸá¯ááŒááºááŒááŒá®áž ááá¯á·ááŒá±á¬áá·áº áááºááá·áºááá°áá¬áá±áá¬áá±á·á
áºá¡ááœááºáááᯠáááŸááááŒá
áºááá¯á¡ááºáá«áááºá
á€áá±á¬ááºážáá«ážááááºááœááºáá»ááºááŸá¬ á¡ááá®áá±ážááŸááºáž developer áá»á¬áž SQL ááŸáá·áº NoSQL á¡ááŒá¬áž ááŸááºáááºáá±á¬ááœá±ážáá»ááºááŸá¯ááŒá¯áá¯ááºááá¯ááºááẠáá°áá®áá±ážáááºááŒá áºáááºá ááá¬ážáá»á¬ážáááºáá®ážááŒááºážá áááºážááá¯á·ááᯠáá°áá±áá°áááºááŒááºážá ááá¬ážáá áºáá¯á០áá±áá¬áááºááŒááºážááŸáá·áº áá»ááºááŒááºážáá²á·ááá¯á·áá±á¬ áá±áá¬áá±á·á áºáá®ááá¯ááºážá á¡ááŒá±áá¶á¡áá»ááºáá»á¬ážá¡á¬áž á¡áá»á¯á¶ážáááºá á±ááẠSQL database áá áºáá¯ááŒá áºááá·áº PostgreSQL ááŸáá·áº NoSQL database ááŸá áºáá¯ááŒá áºáá±á¬ Cassandra ááŸáá·áº MongoDB ááᯠááŒáá·áºááŸá¯áá«áááºá áá±á¬ááºáá±á¬ááºážáá«ážááœááºá á¡ááœáŸááºážáá»á¬ážá ááœá±áá±ážááœá±áá°áá»á¬ážá JOINsá TTL ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááŸáá·áº JSON-based áá±áá¬áá±á·á áºáá®ááá¯ááºážááá¯á·ááᯠááŒáá·áºááŸá¯ááẠáá±áá»á¬áá«áááºá
SQL ááŸáá·áº NoSQL ááœá¬ááŒá¬ážáá»ááºááá¬áá²á
SQL áá±áá¬áá±á·á áºáá»á¬ážááẠACID á¡áá±á¬ááºážá¡áááºááá¯ááºáᬠá¡á¬ááá¶áá»ááºáá»á¬ážááŸáá áºááá·áº á¡ááá®áá±ážááŸááºážá ááŒá±á¬ááºážááœááºááŒááºááœááºááᯠááá¯ážááŒáá·áºá á±ááŒá®áž ááŸáááŒá®ážáá¬áž áá¯á¶ááŸááºáááºáá¶áá±ážáá±áá¬áá±á·á áºáá±á¬áºáááºáá»á¬ážááááºááœáẠJOINs áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áááºážááá¯á·á áá±áá¬áá»á¬ážááᯠá á¯á¶á ááºážáá±ážááŒááºážááá¯ááºá áœááºážááᯠááá¯ážááŒáŸáá·áºáá±ážáá«áááºá
áááºážááá¯á·á monolithic/single-node áááá¯áá¬ááŸáá·áº áááºáá°ááŸá¯á¡ááœáẠmaster-slave áá°ážáá°ááŒááºážáá¯á¶á á¶ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒá±á¬áá·áºá ááá¬ážááá¯ážáá» SQL databases áá»á¬ážááœáẠá¡áá±ážááŒá®ážáá±á¬á¡ááºá¹áá«áááºááŸá áºáᯠ- linear write scalability (ááá¯ááá¯áááºááŸá¬ nodes á¡áá»á¬ážá¡ááŒá¬ážááœáẠá¡ááá¯á¡áá»á±á¬áẠpartitioning áá¯ááºááŒááºáž) ááŸáá·áº automatic/zero data loss. ááá¯ááá¯áá¬á áááºáá¶áááŸááá²á·áá±áá¬ááá¬ááᬠnode áá áºáá¯áá²á· á¡ááŒáá·áºáá¯á¶áž write throughput ááᯠááá»á±á¬áºááœááºááá¯ááºáá«áá°ážá ááá¯á·á¡ááŒááºá á¡áá»áá¯á·áá±á¬ áá¬áá®áá±áᬠáá¯á¶ážááŸá¯á¶ážááŸá¯ááᯠá¡ááŸá¬ážáá¶ááá¯ááºáááºááŸáááŸá¯ ( shared-nothing architecture ááœááº) ááá·áºááœááºážá ááºážá á¬ážááá«áááºá á€áá±áá¬ááœáẠáááºááá±á¬ áááááááºáá»á¬ážááᯠáá»áœááºáááá¹áá°ááœáẠáááºáááºááŒááºážáááŸááá±ážááŒá±á¬ááºáž áááááŒá¯áááºááá¯áááºá SQL áá±áá¬áá±á·á áºáá»á¬ážááœáẠá¡áá¯ááºááá¯ááºáá±á¬ á¡ááºááááºáá»á¬ážáááºáááºáž á¡á±á¬ááºááŒááºááẠáááºáá²áááºá
NoSQL áá±áá¬áá±á·á áºáá»á¬ážááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááá¬áá¡á¬ážááŒáá·áº ááŒáá·áºáá±ááŒáááºá ááá¯ááá¯áááºááŸá¬á áááºážááá¯á·ááœáẠáá±áá¬áá»á¬ážááᯠá¡ááá¯ááºážáá»á¬ážááœá²áᬠnode á¡áá»á¬ážá¡ááŒá¬ážááœáẠááŒáá·áºáá±áááºá áá°ááá¯á·á denormalization ááá¯á¡ááºáááºá ááá¯ááá¯áááºááŸá¬ áááºáá±ážááá¯á·áá±á¬ áá®ážááŒá¬ážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá¯á¶á·ááŒááºáááºá¡ááœáẠááá·áºááœááºážáá¬ážáá±á¬ áá±áá¬ááá¯áááºáž á¡ááŒáááºáá»á¬ážá áœá¬ áá°ážáá°ááááºááŒá áºáááºá á¡áá¯á¶ážá á¯á¶áááºááŸááºážáá»ááºááŸá¬ áááºáá±á ááºá¡ááœááºáž áááŸáááá¯ááºáá±á¬ shard á¡áá±á¡ááœááºááᯠáá»áŸá±á¬á·áá»ááŒááºážááŒáá·áº ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºááᯠááá°áááºááŒá áºáááºá áááºážááẠNoSQL ááẠááá·áºá¡á¬áž áááºááá±ážááŒááºážááŸá¯áá»á¬ážááᯠá á¶ááá°áá¬ááŒá¯ááẠááá¯á¡ááºááŒá®áž SQL ááẠááá·áºáá±áá¬ááᯠááá°áá¬áá°ááẠááá¯á¡ááºáááºáᯠááá¯ááá¯áááºá
NoSQL ááẠááŒáá·áºáá±áá¬ážáá±á¬ á¡á á¯á¡áá±ážáá áºáá¯ááœáẠááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºáááŸáááẠá¡á¬áá¯á¶á áá¯ááºáá¬ážááŒá®áž áááºážááẠACID á¡áá±á¬ááºážá¡áááºáá¯á¶ážááŸá¯á¶ážááŸá¯áá»á¬ážá JOINs ááŸáá·áº áááááºáááºáž ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáá¯áááá¡ááœáŸááºážááááºážáá»á¬ážáá«áááºááá·áº áá±áá¬áá±á·á áºáá®ááá¯ááºážá¡áá±á¬ááºážá¡áááºáá»á¬ážá¡ááœáẠá¡áááºážáá¶á¡ááŒá±á¬ááºážáááºážááŒá áºáááºá
NoSQL áá±áá¬áá±á·á áºáá»á¬ážááẠlinear write scalability ááŸáá·áº high fault tolerance ááá¯áá±ážáá±á¬áºáááºážá ááœá±áá±ážááœá±áá°á¡á¬ááá¶áá»ááºáá»á¬ážáá¯á¶ážááŸá¯á¶ážááŒááºážááẠmission-critical data áá»á¬ážá¡ááœáẠáááºážááá¯á·á¡á¬áž áááá·áºáá»á±á¬áºááŒá±á¬ááºáž ááŒááºážáá¯á¶áá»ááºáá áºáá¯ááŸááá«áááºá
á¡á±á¬ááºáá«ááá¬ážááẠNoSQL ááœáẠáá±áá¬áá¯á¶á á¶ááŒá¯áá¯ááºááŒááºáž SQL ááŸáá·áº áááºááá¯á·ááœá¬ááŒá¬ážáááºááᯠááŒááááºá
SQL ááŸáá·áº NoSQL- ááŸá
áºáá¯á
áá¯á¶áž áá¬ááŒá±á¬áá·áº ááá¯á¡ááºáá¬áá²á
Amazon.comá Netflixá Uber ááŸáá·áº Airbnb áá²á·ááá¯á·áá±á¬ áá¯á¶ážá áœá²áá°á¡áá»á¬ážá¡ááŒá¬ážááŸááá±á¬ ááá¹áá¬áá±á«áºááŸá á¡ááá®áá±ážááŸááºážáá»á¬ážááẠááŸá¯ááºááœá±ážááŒá®áž áááºáá±á«ááºážá á¯á¶á០áá¯ááºáá±á¬ááºá áá¬áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠáá¬áááºáá±ážáá¬ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá Amazon.com áá²á·ááá¯á· e-commerce á¡ááá®áá±ážááŸááºážáá áºáá¯ááẠáá¯á¶ážá áœá²áá°á¡áá»ááºá¡áááºá áá¯ááºáá¯ááºáá»á¬ážá á¡ááŸá¬á á¬áá»á¬ážá ááœá±áá±á¬ááºážáá¶ááœáŸá¬áá»á¬ážáá²á·ááá¯á·áá±á¬ áá±á«á·áá«ážááŒá®áž á¡áá±ážááŒá®ážáá±á¬áá±áá¬áá»á¬ážááᯠááááºážáááºážááẠááá¯á¡ááºááŒá®áž áá¯ááºáá¯ááºááŒááºáááºáá¯á¶ážáááºááŒááºážá áá¶á·ááá¯ážáá±ážá á¬áá»á¬ážá áá¯á¶ážá áœá²áá°áá¯ááºáá±á¬ááºáá»ááºá á¡áá¯á¶ážááŒá¯áá° áá¯á¶ážáááºáá»ááºáá»á¬ážááŸáá·áº á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá á€á¡ááá®áá±ážááŸááºážáá»á¬ážááẠá¡áááºážáá¯á¶áž NoSQL áá±áá¬áá±á·á áºáá áºáá¯ááŸáá·áºá¡áá° á¡áááºážáá¯á¶áž SQL áá±áá¬áá±á·á áºááᯠá¡á¬ážááá¯ážáá«áááºá áá±áááœááºážááŸáá·áº ááá¹áá¬áá¯á¶ážááá¯ááºáᬠá áá áºáá»á¬ážááœááºá NoSQL áá±áá¬áá±á·á áºááẠáá®ážááŒá¬ážáá±ááá áºáá¯á¡ááœááºáž áá¯ááºáá±á¬ááºáá±ááá·áº áá¯á¶ááŒááºá áááºáá»ááá±á¬ á¡áááºážá¡ááŒá ẠSQL áá±áá¬áá±á·á áºááœáẠááááºážáááºážáá¬ážááá·áº áá±áá¬á¡ááœáẠáááá®áááºááŒáá·áºáá±ááá·áº áááºááŸáºáá áºáá¯á¡ááŒá Ạáá¯ááºáá±á¬ááºáááºá
YugaByte DB ááẠSQL ááŸáá·áº NoSQL ááᯠáááºááá¯á·áá±á«ááºážá ááºááááºážá
ááŸááºáááºážá¡áá¬ážáá±ážáá±á¬ áá±á¬ááŸá±á¬ááá¯ááŸá±á¬ááºááŸá¯á¡ááºáá»ááºá á¡ááá¯á¡áá»á±á¬áẠááœá²ááŒááºážá áááºááŒá¬ááŒááºážá ááœá²ááŒááºážá áááºááŒá¬áá¬ážáá±á¬ á¡áá»á¬ážááá¹áááŒááºáááºáá¯á¶áá°ááŒááºáž ááŸáá·áº ACID ááŒáá·áºáá±áá±ážááœá±áá»á¬áž (Google Spanner ááŸááŸá¯ááºááœááºážáá¬ážáá±á¬)á YugaByte DB ááẠNoSQL (Cassandra & Redis) ááŸáá·áº áááŒáá¯ááºáááºáááá¬áááŒá áºáá±á¬ ááá¹áá¬á·ááááá¯á¶áž open source áá±áá¬áá±á·á áºááŒá áºááŒá®ážá SQL (PostgreSQL)á á¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážááá·áºááá¬ážááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážá YCQLá Cassandra ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬ YugaByte DB API ááẠáá áºáá¯áááºážáá±á¬áá±á¬á·ááŸáá·áºáá»á¬ážá áœá¬áá±á¬ ACID ááœá±áá±ážááœá±áá°áá»á¬ážááŸáá·áº ááá¹áá¬áá¯á¶ážááá¯ááºáá¬áá¯áááá¡ááœáŸááºážááááºážáá»á¬ážááᯠNoSQL API ááá¯á·ááá·áºááœááºážáá±ážáááºá ááá¯á·ááŒá±á¬áá·áº á¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºáá±á¬ NoSQL áá±áá¬áá±á·á áºáá»á¬ážáá±ááºááœááºá áááºáá²á·áááºá ááá¯á·á¡ááŒááºá YCQLá PostgreSQL ááŸáá·áº ááá¯ááºáááºáá±á¬ YugaByte DB API ááẠáá»ááºážáá¬ážáá±ážá áá±ážáá»á²á·ááŒááºážááŸáá·áº SQL API ááá¯á· á¡ááá¯á¡áá»á±á¬áẠá¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááŸááá±á¬ ááá±á¬ááá¬ážáá»á¬ážááá¯áá« ááá·áºááœááºážááŒá®áž ááá¹áá¬ááá¯á· ááŒáá·áºáá±áá¬ážáá±á¬ SQL áá±áá¬áá±á·á áºáá»á¬ážááᯠáá°áá±á¬ááºáá¬áá«áááºá YugaByte DB ááẠá¡áá±á¬ááºážá¡áááºááá±á¬ááá¬áá¡á ááŒá áºáá±á¬ááŒá±á¬áá·áº NoSQL API ááᯠmission-critical data áá¡ááŒá±á¡áá±ááœáẠááá¯á¡áá¯á¶ážááŒá¯ááá¯ááºáá«ááŒá®á
áá±á¬ááºážáá«ážááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž
- áááºáá¡áááá¡áá¯ááºáááºááẠáá®ážáá»á¬ážá áœá¬áá«áááºááá·áºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŒá áºáá«áá ááá¯á·áá±á¬áẠYSQL ááá¯ááœá±ážáá»ááºááá·áºá¡áá«á áááºááá±á¬á·áá»á¬ážááᯠnode á¡áá»á¬ážá¡ááŒá¬ážááœááºááŒáá·áºáá±ááá¯ááºáááºá áááºážááẠNoSQL ááẠlatency ááá¯ááŒáá·áºááŒá®áž/ááá¯á·ááá¯áẠááŒááºáááºážááŸá¯ááŸá¯ááºážáááºážáááºááᯠáá¬ážáááºáá«á
- ááá¯ááºáá«áá NoSQL API ááŸá áºáá¯áá²á០áá áºáá¯áá¯ááᯠááœá±ážáá»ááºáá«á áá áºááŒáááºáá»áŸáẠnode áá áºáá¯á០áá±á¬ááºááœááºáá±ážááá·áº queries áá»á¬ážá ááááºá¡áá±ááŒáá·áº áááºááẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ á áœááºážáá±á¬ááºáááºááᯠáááŸááááºááᯠáááááŒá¯áá«á YugaByte DB ááẠá¡áá¯ááºáá»áááºáá»á¬ážá áœá¬ááᯠáá áºááŒáá¯ááºááẠá á®áá¶ááá·áºááœá²ááẠááá¯á¡ááºááá·áº áááºááœá±á·ááá¹áá¬á ááŸá¯ááºááœá±ážáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáá áºáá¯áááºážáá±á¬ áá¯ááºáááºážáááºáááºááŸá¯áá±áá¬áá±á·á áºá¡ááŒá Ạáá¯ááºáá±á¬ááºááá¯ááºáááºá
áá±á¬ááºá¡ááá¯ááºážááŸá Data modeling lab ááẠáá°áááºážáá±áá¬áá±á·á
áºáá»á¬ážááŸáá·áº ááá·áºáá»ááºááá·áºá¡áá±ááŒáá·áº PostgreSQL ááŸáá·áº Cassandra API ááŸáá·áº ááá¯ááºáá®áá±á¬ YugaByte DB áá±áá¬áá±á·á
áºáá»á¬ážááᯠá¡ááŒá±áá¶áá¬ážáááºá á€áá»ááºážáááºááŸá¯ááẠááá°áá®áá±á¬áá±áá¬áá±á·á
áºááŸá
áºáá¯á áá¯á¶ážáááœááºáááºáá±á¬á¡á
á¯á¡áá±ážáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠáá°áá®áá±á¬áá±áá¬áá±á·á
áºá¡á
á¯á¡áá±ážá ááá°áá®áá±á¬ API ááŸá
áºáᯠ(ááœá²ááŒá¬ážáá±á¬ááááºáááºážááŸá
áºáá¯ááœááº) ááŸáá·áº á¡ááŒááºá¡ááŸááºáááºááœááºáááºááœááºáá°ááŸá¯ááᯠá¡áá±ážáá±ážáá±á¬áºááŒáááºá
á¡á±á¬ááºáá±á¬áºááŒáá«ááá¹ááá»á¬ážááœááºá ááœá²ááœá²ááŸá¯áá»á¬ážááŸáá·áº áá¯á¶ážá¡á¯ááºáá¬ážáá±á¬ databases áá»á¬ážá áá°áá®ááŸá¯á¡áá»áá¯á·ááᯠáá±á¬áºááŒáááºá¡ááœáẠáá±áá¬áá±á¬áºáááºááºáá¬ááºááœá²áááºážááᯠááŒáá·áºááŸá¯áá«áááºá
áá±áá¬áá¯á¶á á¶ááŒáá¬ááºááœá²áááºáž
áá±áá¬áá±á·á áºáááºáááºááŒááºážá
áá±áá¬áá±á¬áºáááºáá®ááá¯ááºážááᯠá¡áá±ážáá±ážá (ááŸá¯ááºááœá±ážáá±á¬á¡áá¯á¶ážáá»áááá¯áá¬áá»á¬ážáááº) áá»áœááºá¯ááºááá¯á·ááẠá ááºááœááºážá ááºááœáẠDocker ááœááºááááºáá¬áá»á¬ážááœáẠáá±áá¬áá±á·á áºáá»á¬ážááᯠááá·áºááœááºážááŒá®áž áááºážááá¯á·á áááºááá¯ááºáᬠcommand line shells áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áááºážááá¯á·ááŸáá·áº á¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºáá«áááºá
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
MongoDB
docker run --name my-mongo -d mongo:latest
Command line áááºáá±á¬ááºááŒááºážá
áááºááá¯ááºáᬠAPIs áá»á¬ážá¡ááœáẠcommand line shell ááᯠá¡áá¯á¶ážááŒá¯á databases áá»á¬ážááá¯á· áá»áááºáááºááŒáá«á áá¯á·á
PostgreSQL
docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres
Cassandra
cqlsh
catalog áá²ááŸá¬ bin
.
CQL ááẠSQL á០ááŸá¯ááºááœááºážáá¬ážááŒá®áž ááá¬ážáá»á¬ážá á¡áááºážáá»á¬ážá áá±á¬áºáá¶áá»á¬ážááŸáá·áº á¡ááœáŸááºážáá»á¬áž á á¡áá¬ážáá° ááá±á¬ááá¬ážáá»á¬áž áá«ááŸáááŒá±á¬ááºáž áááááŒá¯áá«á ááá¯á·áá±á¬áºá NoSQL áá¬áá¬á
áá¬ážá¡áá±ááŒáá·áºá áááºážááẠááá·áºáááºáá»ááºá¡áá»áá¯á·ááᯠááá·áºááœááºážáá±ážáá¬ážááŒá®áž á¡áá»á¬ážá
á¯ááᯠá¡ááŒá¬ážáá±á¬ááºážáá«ážáá»á¬ážááœááºáááºáž ááá·áºááœááºážáá±á¬áºááŒáá«áááºá
docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh
MongoDB
docker exec -it my-mongo bash
cd bin
mongo
á á¬ážááœá²áá áºáá¯áááºáá®ážááŒááºážá
ááᯠáá»áœááºá¯ááºááá¯á·ááẠcommand line ááᯠá¡áá¯á¶ážááŒá¯á á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠáá±áá¬áá±á·á áºááŸáá·áº á¡ááŒááºá¡ááŸáẠáááºááœááºááá¯ááºáá«ááŒá®á ááá°áá®áá±á¬ á¡áá¯ááá¬ááŸááºáá»á¬ážáá±ážáá¬ážáá±á¬ áá®áá»ááºážáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠááááºážáááºážááá·áº ááá¬ážáá áºáá¯ááᯠáááºáá®ážááŒááºážááŒáá·áº á áááºááŒáá«á áá¯á·á á€áá®áá»ááºážáá»á¬ážááẠá¡ááºááºáááºáá áºáá¯á áá áºá áááºáá áºááá¯ááºáž ááŒá áºááá¯ááºáááºá áá®áá»ááºážáá áºáá¯ááºá¡ááœáẠá áááºááŒáá¯ááºááœá±ážáá»ááºááá¯ááºáá±á¬ á¡áááºá¡áá»ááºážáá»á¬ážááẠááœááºááŸáááá·áºááŸá áºá á á»á±ážááŸá¯ááºážá á¡áá»áá¯ážá¡á á¬ážááŸáá·áº á¡ááá·áºáááºááŸááºáá»ááºáá»á¬ážááŒá áºáááºá "áááºáá»á¬áž" á¡ááœááºááŸáááá·áº á¡áá¬áááºááœáẠááá¯á¡ááºáá¬ááá¯ááºááá·áº á¡ááá¯á¡áááºá¡áá»ááºážáá»á¬ážááᯠááá·áºááœááºážááœááºáá»ááºááẠááá¯á¡ááºáá«áááºá áááºážááẠáá±á¬á·áááºááá¯ážá¡ááœá²áá»á¬ážáá¯á¶á á¶ááŒáá·áº semi-structured data áá»á¬ážááᯠááááºážáááºážááá¯ááºáááºá
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
Cassandra ááœááºááá¬ážáá áºáá¯áááºáá®ážááŒááºážááẠPostgreSQL ááŸáá·áºá¡ááœááºáááºáá°áááºá á¡áááááœá¬ááŒá¬ážáá»ááºáá áºáá¯ááŸá¬ ááá¯ááºáá¬ááŸá¯ááá·áºáááºáá»ááºáá»á¬ážáááŸáááŒááºáž (á¥ááᬠNOT NULL)á ááá¯á·áá±á¬áº áááºážááẠNoSQL áá±áá¬áá±á·á áºááá¯ááºáá² á¡ááá®áá±ážááŸááºážááá¬áááºááŒá áºáááºá. á¡ááááá®ážááœáẠá¡áááºážááá·áºáá»ááºáá±á¬á· (á¡á±á¬ááºáá«á¥ááá¬ááŸá á¡áá¯ááá¬ááŸááºáá±á¬áºáá¶) ááŸáá·áº á¡á á¯ááá¯ááºáá±á¬áºáá¶áá»á¬áž (á¡á±á¬ááºáá«á¥ááá¬ááŸá SongTitle áá±á¬áºáá¶) áá«áááºáááºá partition key ááẠáááºááá·áº partition/shard ááᯠrow ááœáẠáá¬ážááá·áºáááºááᯠáá¯á¶ážááŒááºáá±ážááŒá®ážá clustering columns áá»á¬ážááẠdata ááᯠáááºááŸá shard á¡ááœááºážááœáẠáááºááá¯á·á á®á ááºááá·áºáááºááᯠááœáŸááºááŒáá«áááºá
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) (Cassandra ááŸá Keyspace ááŸáá·áº áááºáá°áááº)á Documents (ááá¬ážáá áºáá¯ááŸá á¡áááºážáá»á¬ážááŸáá·áº áááºáá°áááº) áá»á¬ážáá«ááŸááá±á¬ á á¯á ááºážááŸá¯áá»á¬áž (ááá¬ážáá»á¬ážááŸáá·áº áááºáá°áááº) áá»á¬ážááŸáááá·áº áá±áá¬áá±á·á áºáá»á¬áž (Database) ááœáẠá á¯á ááºážáá«áááºá MongoDB ááœááºá á¡ááŒá±áá¶á¡á¬ážááŒáá·áº áááŠáž schema ááᯠáááºááŸááºááẠáááá¯á¡ááºáá«á á¡áááºážá¡ááœá²á· "áá±áá¬áá±á·á áºááá¯áá¯á¶ážáá«"á¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬á ááẠááááá±á«áºááá¯ááŸá¯ááœáẠáá±áá¬áá±á·á áºááᯠáá»ááºáá»ááºážáá¯ááºáá±á¬ááºá á±ááŒá®áž á¡áá áºáááºáá®ážáá¬ážáá±á¬áá±áá¬áá±á·á áºá¡ááœáẠá¡ááŒá±á¬ááºážá¡áá¬ááᯠááŒá±á¬ááºážáá²á á±áááºá á á¯á ááºážááŸá¯áá»á¬ážááá¯ááẠá¡ááá¡áááºáž áááºáá®ážááẠáááá¯á¡ááºáá«á ááá á á¬ááœááºá á¬áááºážááᯠá á¯á ááºážááŸá¯á¡áá áºááá¯á· ááá·áºáá±á¬á¡áá«ááœáẠáááºážááá¯á·ááᯠá¡ááá¯á¡áá»á±á¬áẠáááºáá®ážáá«áááºá 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
Cassandra ááœáẠPostgreSQL ááŸáá·áºá¡ááœááºáááºáá°áááºá ááá¯á·áá±á¬áºá áá±á«áá¬áááá¬ááœáẠááŒá®ážáá¬ážáá±á¬ááœá¬ááŒá¬ážáá»ááºáá
áºáá¯ááŸááááºá Cassandra ááœáẠINSERT
ááááºáá±á¬á· ááœá²á
áááºááŸá¯áá
áºáá¯áá«á UPSERT
á¡áááºážááŸáááŒá®ážáá¬ážááá¯áá»áŸááºá áá±á¬ááºáá¯á¶ážáááºááá¯ážáá»á¬ážááᯠá¡áááºážááá¯á·ááá·áºáááºá
áá±áá¬ááá·áºááœááºážááŸá¯ááẠPostgreSQL ááŸáá·áº áááºáá°áááºá
INSERT
ááá¯ááá¯ááŒááºá·áá¬áž
.
MongoDB
MongoDB ááẠCassandra áá²á·ááá¯á· NoSQL áá±áá¬áá±á·á
áºááŒá
áºáá±á¬áºáááºážá áááºážáááá·áºááœááºážááŸá¯áá¯ááºáá±á¬ááºáá»ááºááẠ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 á¡ááŒá¬áž á¡áááºááŸá¬ážáá¯á¶áž ááŒá¬ážáá¬ážáá»ááºááŸá¬ query áááºáá±á¬ááºááŸá¯ááœáẠá¡áá¯á¶ážááŒá¯áá±á¬ áá¬áá¬á
áá¬ážááŒá
áºáááºá FROM
О WHERE
. SQL ááẠexpression ááŒá®ážáá±á¬áẠááœáá·áºááŒá¯áááºá FROM
ááá¬ážáá»á¬ážá
áœá¬ááᯠááœá±ážáá«á ááŸáá·áº expression with WHERE
ááŸá¯ááºááœá±ážááŸá¯áá»á¬áž (áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážá¡áá«á¡áááº) JOIN
á
á¬ážááœá²áá»á¬ážááŒá¬áž)á ááá¯á·áá±á¬áºáááºáž NoSQL ááẠááŒááºážáááºáá±á¬ ááá·áºáááºáá»ááºáá»á¬ážááᯠáá»ááŸááºáá±á·ááŸááááºá FROM
áááºááŸááºáá¬ážáá±á¬ ááá¬ážáá
áºáá¯ááŸáá·áºáᬠá¡áá¯ááºáá¯ááºáá«á WHERE
áááºááá±á¬á·ááᯠá¡ááŒá²áááºážáááºááŸááºáá¬ážááááºá á€á¡áá¬ááẠá¡á
á±á¬ááá¯ááºážá áá»áœááºá¯ááºááá¯á·ááŒá±á¬áá²á·áá±á¬ NoSQL á
áœááºážáá±á¬ááºáááºááœááºážá¡á¬ážááŸáá·áº áááºá
ááºááŸá¯ááŸááááºá á€ááá¹áááẠcross-tabular ááŸáá·áº cross-key á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯ááá¯ááºážááᯠááŒá
áºááá¯ááºáá»á± áá»áŸá±á¬á·áá»ááá¯ááºáááºááŒá
áºáááºá áá±á¬ááºážááá¯áá»ááºáá
áºáá¯á¡á¬áž áá¯á¶á·ááŒááºáá¬ááœáẠááŒá®ážáá¬ážáá±á¬ ááŸá±á¬áá·áºááŸá±ážááŸá¯ááᯠááŒá
áºáá±á«áºá
á±ááá¯ááºááŒá®áž áá±áá¯áá»á¡á¬ážááŒáá·áº ááŸá±á¬ááºááŸá¬ážááẠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá Cassandra ááẠá¡áá»áá¯á·áá±á¬á¡á±á¬áºááá±áá¬áá»á¬ážá¡ááœááºáᬠááá·áºáááºáá¬ážááẠáá±ážááœááºážáá»á¬áž ááá¯á¡ááºáááºá =, IN, <, >, =>, <=
) áá¯áááá¡ááœáŸááºážááᯠáá±á¬ááºážááá¯ááá·áºá¡áá«ááŸááœá²á (= á¡á±á¬áºááá±áá¬áá»á¬ážááá¯áᬠá€áá±áá¬ááœáẠááœáá·áºááŒá¯áá¬ážáááº) ááŸááœá²á partition keys áá»á¬ážáá±á«áºááœááºá
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;
Cassandra
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ PostgreSQL queries ááœááºá á¡á±á¬áºááá±áá¬á០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
ááááºááá°áá¬áá»á¬ážááœáẠááŒáá¬ážááá·áºá¡ááá¯ááºáž MongoDB ááœáẠáá±ážááœááºážáá»á¬ážáááºáá®ážááẠá¡ááááááºážáááºážááŒá
áºáááºá 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
Cassandra ááŸááááºá UPDATE
PostgreSQL ááŸáá·áº áááºáá°áááºá UPDATE
áá°áá®áá±á¬á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááŸááááºá UPSERT
, á¡áá¬ážáá° INSERT
.
á¡áááºáá±á¬áºááŒáá« PostgreSQL á¥ááá¬ááŸáá·áº áááºáá°áááºá
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 ááœáẠá
á¬ááœááºá
á¬áááºážáá»á¬ážááᯠáá»ááºááẠáá¯ááºáá±á¬ááºáá»áẠááŸá
áºáá»áá¯ážááŸááááºá
db.music.deleteMany( {
artist: "The Acme Band"
}
);
á á¬ážááœá²ááá¯áá»ááºááŒááºážá
PostgreSQL
DROP TABLE Music;
Cassandra
á¡áááºáá±á¬áºááŒáá« PostgreSQL á¥ááá¬ááŸáá·áº áááºáá°áááºá
MongoDB
db.music.drop();
áá±á¬ááºáá»ááº
SQL ááŸáá·áº NoSQL á¡ááŒá¬áž ááœá±ážáá»ááºááŒááºážááá¯ááºáᬠááŒááºážáá¯á¶ááŸá¯áá»á¬ážááẠ10 ááŸá áºáá»á±á¬áºááŒá¬á¡á±á¬áẠáá±á¬ááºáá±á¬ááºáá±áá²á·áááºá á€ááœá±ážááœá±ážááŒááºážáá¯á¶ááŸá¯ááœáẠá¡áááááá¹áááŸá áºáááºááŸááááº- áá±áá¬áá±á·á áºá¡ááºáá»ááºáááá¯áá¬áááºáᬠ(monolithicá á¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºáá±á¬ SQL ááŸáá·áº ááŒáá·áºáá±ááŸá¯á á¡áá±á¬ááºážá¡áááºááá¯ááºáá±á¬ NoSQL) ááŸáá·áº áá±áá¬áá±á·á áºáá®ááá¯ááºážáá»ááºážáááºááŸá¯ (áááºááá±áá¬ááᯠSQL ááœáẠáá¯á¶á á¶áá°ááŒá¯áá¯ááºááŒááºážááŸáá·áº NoSQL ááœáẠááá·áºáá±ážááœááºážáá»á¬ážááᯠáá¯á¶á á¶áá¯ááºááŒááºáž)á
YugaByte DB áá²á·ááá¯á· ááŒáá·áºáá±áá¬ážáá±á¬ ááœá±áá±ážááœá±áá°áá±áá¬áá±á·á áºááŒáá·áºá áá±áá¬áá±á·á áºáááá¯áá¬ááŸáá·áºáááºáááºááá·áº á¡áá»á±á¡áááºááœá±ážááœá±ážááŸá¯áá»á¬ážááᯠá¡ááœááºááá° á¡áá¬ážáá°ááá¯ááºáá«áááºá áá±áᬠvolumes áá»á¬ážááẠnode áá áºáá¯ááœááºáá±ážáá¬ážááá¯ááºááá·áºá¡áá¬ááẠááá¯ááŒá®ážáá¬áááºááŸáá·áºá¡áá»áŸá á¡ááá¯á¡áá»á±á¬áẠsharding/rebalancing ááŒáá·áº linear write scalability ááᯠáá¶á·ááá¯ážáá±ážááá·áº á¡ááŒáá·áºá¡áááŒáá·áºáá±áá¬ážáá±á¬ áááá¯áá¬áá áºáá¯ááẠááá¯á¡ááºáá¬áááºá
ááá¯á·á¡ááŒáẠáá±á¬ááºážáá«ážáá
áºáá¯ááºááœáẠáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž ááŒá
áºáááºá
áá±áá¬áá±á·á Ạáá®ááá¯ááºážááœá±ážááœá±ážááŸá¯ááá¯á· ááŒááºáá¬ááŒá®ážá ááŸá¯ááºááœá±ážáá±á¬ áááºááœá±á·ááá¹áá¬á¡áá¯á¶ážáá»áááá¯ááááºá¡ááœáẠáá®ááá¯ááºážáá»ááºážáááºááŸá¯ (SQL ááŸáá·áº NoSQL) ááŸá áºáá¯á áá¯á¶ážááẠááá¯á¡ááºáááºáᯠáá»áŸááá«áááºá SQL "data modeling" áá»ááºážáááºááŸá¯ááẠdeveloper áá»á¬ážá¡á¬áž ááŒá±á¬ááºážáá²áá±áá±á¬ áá¯ááºáááºážááá¯á¡ááºáá»ááºáá»á¬ážááᯠááá¯ááá¯ááœááºáá°á áœá¬ ááŒáá·áºáááºážááá¯ááºá á±áááºááŒá áºááŒá®áž NoSQL "query modeling" áá»ááºážáááºááŸá¯ááẠáá°áá®áá±á¬ developer áá»á¬ážá¡á¬áž latency áááºážáá«ážááŒá®áž high throughput ááŒáá·áº data á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºáááºá á±áá«áááºá á€á¡ááŒá±á¬ááºážááŒá±á¬áá·áº YugaByte DB ááẠáá»ááºážáááºááŸá¯áá áºáá¯á¡á¬áž ááŒáŸáá·áºáááºááŒááºážááẠáá°áá®áá±á¬ core áá áºáá¯ááœáẠSQL ááŸáá·áº NoSQL API áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá±á¬ááŒá±á¬áá·áºááŒá áºáááºá ááá¯á·á¡ááŒááºá PostgreSQL ááŸáá·áº Cassandra á¡áá«á¡ááẠáá°ááŒáá¯ááºáá»á¬ážáá±á¬ áá±áá¬áá±á·á áºáá¬áá¬á áá¬ážáá»á¬ážááŸáá·áº ááá¯ááºáááºáá®á¡á±á¬áẠáá¶á·ááá¯ážáá±ážááŒááºážááŒáá·áº YugaByte DB ááẠááŒáá·áºáá±ááŒá®áž á¡ááœááºááá¯ááºáá®áá±á¬ áá±áá¬áá±á·á áºá¡ááºáá»ááºááŒáá·áº áá¯ááºáá±á¬ááºááẠdeveloper áá»á¬ážá០á¡ááŒá¬ážáá¬áá¬á áá¬ážááᯠáááºáá°áááºáááá¯á¡ááºááŒá±á¬ááºáž áá±áá»á¬á á±áááºá
á€áá±á¬ááºážáá«ážááœááºá PostgreSQLá Cassandra ááŸáá·áº MongoDB á¡ááŒá¬áž áá±áá¬áá±á·á áºáá®ááá¯ááºážá¡ááŒá±áá¶áá»á¬áž áááºááá¯á·ááœá¬ááŒá¬ážáááºááᯠáá»áœááºá¯ááºááá¯á· áá±á·áá¬áá²á·áááºá áá±á¬ááºáá±á¬ááºážáá«ážáá»á¬ážááœááºá á¡ááœáŸááºážáá»á¬ážá ááœá±áá±ážááœá±áá°áá»á¬ážá JOINsá TTL ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááŸáá·áº JSON á á¬ááœááºá á¬áááºážáá»á¬ážáá²á·ááá¯á·áá±á¬ á¡ááá·áºááŒáá·áº áá®ááá¯ááºážááá±á¬ááá¬ážáá»á¬ážááᯠá á°ážá ááºážáá±á·áá¬áá«áááºá
áá®áááºážáá»áœááºááááºáááºááᯠáá»á±á¬áºááœáŸááºá
áœá¬ááŒááºáááºážááá¯ááºáá«á
á±ááá¯á· ááááºáá±á«áºáá«áááºá
source: www.habr.com