Fototry ny famolavolana angona - Fampitahana ny PostgreSQL, Cassandra, ary MongoDB

Salama ry namana. Alohan'ny hiaingana amin'ny tapany faharoa amin'ny fialantsasatry ny volana Mey dia zarainay aminareo ny fitaovana nadikanay ho fiandrasana ny fandefasana stream vaovao amin'ny taranja. "DBMS mifandraika".

Fototry ny famolavolana angona - Fampitahana ny PostgreSQL, Cassandra, ary MongoDB

Mandany fotoana betsaka mampitaha angon-drakitra miasa maro ny mpamorona fampiharana mba hisafidianana izay mifanaraka indrindra amin'ny enta-mavesatry ny asa. Ny filana dia mety ahitana ny maodely angon-drakitra notsorina, ny antoka ara-barotra, ny fahaiza-mamaky/manoratra, ny fanamafisam-peo mitsivalana, ary ny fandeferana ny fahadisoana. Amin'ny fomba nentim-paharazana, ny safidy dia manomboka amin'ny sokajy database, SQL na NoSQL, satria ny sokajy tsirairay dia manolotra karazana varotra mazava. Ny fampandehanana avo lenta amin'ny resaka latency ambany sy ny fivezivezena avo dia hita amin'ny ankapobeny ho fitakiana tsy misy varotra ary noho izany dia ilaina amin'ny angon-drakitra santionany.

Ny tanjon'ity lahatsoratra ity dia ny hanampy ireo mpamorona fampiharana hanao safidy tsara eo amin'ny SQL sy NoSQL amin'ny sehatry ny modeling data fampiharana. Hijery angon-drakitra SQL iray isika, dia ny PostgreSQL, ary ny angona NoSQL roa, Cassandra sy MongoDB, mba handrakotra ny fototry ny famolavolana angona, toy ny famoronana latabatra, famenoana azy, famakiana angona avy amin'ny latabatra ary famafana azy. Ao amin'ny lahatsoratra manaraka, ho azo antoka fa hijery ny indexes, transactions, JOINs, TTL directives ary ny JSON-based database design.

Inona no maha samy hafa ny SQL sy ny NoSQL?

Ny angon-drakitra SQL dia mampitombo ny fahafahan'ny fampiharana amin'ny alΓ lan'ny fiantohana ara-barotra ACID, ary koa ny fahafahan'izy ireo manontany angon-drakitra amin'ny fampiasana JOIN amin'ny fomba tsy ampoizina ankoatry ny modely angon-drakitra ara-pifandraisana efa misy.

Raha jerena ny maritrano monolithic/single-node sy ny fampiasana modely replication master-slave ho an'ny redundancy, ny angon-drakitra SQL nentim-paharazana dia tsy manana endri-javatra manan-danja roa - scalability fanoratana linear (izany hoe fizarazarana mandeha ho azy amin'ny node maro) sy ny fahaverezan'ny angona automatique/zero. Midika izany fa ny habetsaky ny angona voaray dia tsy afaka hihoatra ny famotsorana manoratra ambony indrindra amin'ny node tokana. Fanampin'izany, ny fahaverezan'ny angon-drakitra vonjimaika dia tsy maintsy raisina amin'ny fandeferana amin'ny fahadisoana (ao amin'ny rafitra tsy misy na inona na inona). Eto ianao dia tokony hotadidinao fa ny commits vao haingana dia tsy mbola hita taratra amin'ny kopia andevo. Sarotra ihany koa ny fanavaozam-baovao tsy misy fiatoana amin'ny angon-drakitra SQL.

Ny angon-drakitra NoSQL dia matetika nozaraina araka ny natiora, i.e. Amin'izy ireo, ny angona dia mizara ho fizarana ary mizara amin'ny nodes maromaro. Mitaky denormalization izy ireo. Midika izany fa tsy maintsy adika imbetsaka ihany koa ny angon-drakitra nampidirina mba hamaliana ireo fangatahana manokana alefanao. Ny tanjona amin'ny ankapobeny dia ny hahazoana fampisehoana avo lenta amin'ny fampihenana ny isan'ny shards azo mandritra ny famakiana. Midika izany fa ny NoSQL dia mitaky anao hanao modely amin'ny fanontanianao, fa ny SQL kosa dia mitaky anao hamolavola ny angonao.

Ny NoSQL dia mifantoka amin'ny fanatontosana avo lenta amin'ny kluster voazara ary izany no antony fototry ny fifanakalozam-pandrafetana angon-drakitra maro izay ahitana ny fatiantoka amin'ny fifanakalozana ACID, ny JOIN, ary ny mari-pamantarana faharoa manerantany.

Misy ny tohan-kevitra fa na dia manome scalability fanoratana an-tsoratra sy fandeferana avo lenta aza ny angon-drakitra NoSQL, ny fahaverezan'ny antoka ara-barotra dia mahatonga azy ireo tsy mety amin'ny angon-drakitra mitsikera iraka.

Ity tabilao manaraka ity dia mampiseho ny maha-samihafa ny modeling data amin'ny NoSQL amin'ny SQL.

Fototry ny famolavolana angona - Fampitahana ny PostgreSQL, Cassandra, ary MongoDB

SQL sy NoSQL: Nahoana no samy ilaina?

Ireo rindranasa tena misy amin'ny mpampiasa marobe, toa an'i Amazon.com, Netflix, Uber, ary Airbnb, dia asaina manao asa sarotra sy maro karazana. Ohatra, ny rindranasa e-varotra toa an'i Amazon.com dia mila mitahiry angona maivana sy mitsikera be toy ny mombamomba ny mpampiasa, vokatra, baiko, faktiora, miaraka amin'ny angona mavesatra sy tsy dia saro-pady toy ny tsikera momba ny vokatra, hafatra fanohanana , asan'ny mpampiasa, hevitra sy tolo-kevitry ny mpampiasa. Mazava ho azy, ireo fampiharana ireo dia miankina amin'ny angona SQL iray farafahakeliny miaraka amin'ny angona NoSQL iray farafahakeliny. Ao amin'ny rafitra manerana ny faritra sy maneran-tany, ny angon-drakitra NoSQL dia miasa toy ny cache zaraina amin'ny geo ho an'ny angona voatahiry ao anaty angona SQL azo itokisana mandeha amin'ny faritra iray.

Ahoana no ampiarahan'ny YugaByte DB ny SQL sy ny NoSQL?

Namboarina tamin'ny maotera fitehirizana mifangaro miompana amin'ny log, auto-sharding, replication consensus zaraina zaraina ary fifanakalozana mizara ACID (aingam-panahy avy amin'ny Google Spanner), YugaByte DB no angona loharano misokatra voalohany eran-tany izay mifanaraka amin'ny NoSQL (Cassandra & Redis) ary SQL (PostgreSQL). Araka ny asehon'ny tabilao etsy ambany, YCQL, ny YugaByte DB API mifanaraka amin'i Cassandra, dia manampy ny foto-kevitra momba ny fifanakalozana ACID tokana sy multi-key ary fanondroana faharoa manerantany amin'ny NoSQL API, ka nahatonga ny vanim-potoanan'ny angon-drakitra NoSQL transactional. Fanampin'izany, YCQL, ny YugaByte DB API mifanaraka amin'ny PostgreSQL, dia manampy ny foto-kevitry ny fanoratana an-tsoratra sy ny fandeferana ny fahadisoana mandeha ho azy amin'ny SQL API, mitondra ny angon-drakitra SQL zaraina ho an'izao tontolo izao. Satria YugaByte DB dia ara-barotra amin'ny natiora, ny NoSQL API dia azo ampiasaina amin'ny sehatry ny angon-drakitra mitsikera iraka.

Fototry ny famolavolana angona - Fampitahana ny PostgreSQL, Cassandra, ary MongoDB

Araka ny efa voalaza ao amin'ny lahatsoratra "Fampidirana YSQL: A PostgreSQL Compatible Distributed SQL API ho an'ny YugaByte DB", ny safidy eo amin'ny SQL na NoSQL ao amin'ny YugaByte DB dia miankina tanteraka amin'ny toetran'ny enta-mavesatry ny asa:

  • Raha ny enta-mavesatry ny asanao voalohany dia fiasana JOIN marobe, dia fantaro fa rehefa misafidy YSQL ianao, dia fantaro fa mety hozaraina amin'ny node maro ny fanalahidinao, ka miteraka fahatarana ambony kokoa sy/na ambany kokoa noho ny NoSQL.
  • Raha tsy izany, safidio ny iray amin'ireo API NoSQL roa, tadidio fa hahazo fampisehoana tsara kokoa ianao vokatry ny fanontaniana atolotra avy amin'ny node iray isaky ny mandeha. YugaByte DB dia afaka miasa ho toy ny angon-drakitra miasa tokana ho an'ny fampiharana tena izy sy sarotra izay mila mitantana enta-mavesatra maro miaraka.

Ny laboratoara modeling Data ao amin'ny fizarana manaraka dia mifototra amin'ny angon-drakitra YugaByte DB mifanaraka amin'ny PostgreSQL sy Cassandra API, mifanohitra amin'ny angona teratany. Ity fomba fiasa ity dia manantitrantitra ny fanamorana ny fifandraisana amin'ny API roa samy hafa (amin'ny seranana roa samy hafa) amin'ny cluster database mitovy, fa mifanohitra amin'ny fampiasana cluster tsy miankina tanteraka amin'ny tahiry roa samy hafa.
Ao amin'ny fizarana manaraka, hojerentsika ny laboratoara modelin'ny angona mba hanehoana ny fahasamihafana sy ny sasany amin'ireo iraisan'ny angon-drakitra voarakitra.

Data Modeling Laboratory

Fametrahana angon-drakitra

Raha jerena ny fanantitranterana ny famolavolana modely angon-drakitra (fa tsy ny rafitra fametrahana sarotra), dia hametraka angon-drakitra ao amin'ny kaontenera Docker amin'ny milina eo an-toerana izahay ary hifanerasera amin'izy ireo amin'ny alΓ lan'ny akorandriaka andalana tsirairay avy.

PostgreSQL & Cassandra compatible YugaByte DB database

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

Fidirana andalana baiko

Andao hifandray amin'ny angon-drakitra amin'ny alΓ lan'ny shell andalana baiko ho an'ny API mifanaraka amin'izany.

PostgreSQL

psql dia shell andalana baiko hifaneraserana amin'ny PostgreSQL. Ho fanamorana ny fampiasana, YugaByte DB dia tonga miaraka amin'ny psql ao amin'ny lahatahiry bin.

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

Cassandra

cqlsh dia shell andalana baiko hifaneraserana amin'i Cassandra sy ny angon-drakitra mifanaraka aminy amin'ny alΓ lan'ny CQL (Cassandra Query Language). Ho fanamorana ny fampiasana dia tonga miaraka amin'ny YugaByte DB cqlsh ao amin'ny katalaogy bin.
Mariho fa ny CQL dia nentanin'ny SQL ary manana hevitra mitovy amin'ny latabatra, andalana, tsanganana ary index. Na izany aza, amin'ny maha-fiteny NoSQL azy, dia manampy fetra maromaro izy io, ary ny ankamaroany dia horesahina ao amin'ny lahatsoratra hafa.

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

MongoDB

mongo dia shell andalana baiko hifaneraserana amin'ny MongoDB. Hita ao amin'ny lahatahiry bin amin'ny fametrahana MongoDB.

docker exec -it my-mongo bash 
cd bin
mongo

Mamorona latabatra

Ankehitriny isika dia afaka mifandray amin'ny angon-drakitra mba hanao asa isan-karazany mampiasa ny baiko baiko. Andao hanomboka amin'ny famoronana latabatra mitahiry vaovao momba ireo hira nosoratan'ny mpanakanto samihafa. Mety ho anisan'ny rakikira ireo hira ireo. Ny toetra tsy voatery ho an'ny hira iray koa dia ny taonan'ny famoahana, ny vidiny, ny karazana ary ny naoty. Mila manao kaonty momba ireo toetra fanampiny izay mety ilaina amin'ny ho avy isika amin'ny alΓ lan'ny saha "tag". Izy io dia afaka mitahiry angona semi-structured amin'ny endrika tsiroaroa manan-danja.

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

Ny famoronana latabatra ao Cassandra dia mitovy amin'ny PostgreSQL. Ny iray amin'ireo fahasamihafana lehibe dia ny tsy fisian'ny famerana ny fahamendrehana (ohatra TSY NULL), fa io no andraikitry ny fampiharana, fa tsy ny angona NoSQL.. Ny lakile voalohany dia misy fanalahidin'ny fizarazarana (ny tsanganana Mpanakanto eo amin'ny ohatra etsy ambany) ary andiana tsanganana mivondrona (ny tsanganana SongTitle amin'ny ohatra etsy ambany). Ny fanalahidin'ny fizarazarana no mamaritra ny fizarazarana/shard ny andalana tokony hapetraka, ary ny tsanganana mivondrona dia manondro ny fomba tokony handaminana ny angona ao anatin'ny shard ankehitriny.

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

Ny MongoDB dia mandamina ny angona ho tahiry (Database) (mitovy amin'ny Keyspace ao Cassandra), izay misy Collections (mitovy amin'ny tabilao) misy Documents (mitovy amin'ny andalana ao anaty latabatra). Ao amin'ny MongoDB dia tsy ilaina ny mamaritra ny schema voalohany. Ekipa "mampiasa database", aseho eto ambany, dia mametraka ny angon-drakitra amin'ny antso voalohany ary manova ny contexte ho an'ny angona vao noforonina. Na ny famoriam-bola aza dia tsy mila noforonina mazava fa noforonina ho azy izy ireo, rehefa ampidirinao amin'ny fanangonana vaovao ny antontan-taratasy voalohany. Mariho fa ny MongoDB dia mampiasa ny angon-drakitra fitsapana amin'ny alΓ lan'ny default, ka izay hetsika ambaratonga fanangonam-bokatra tsy misy famaritana angona manokana dia handeha amin'ny alΓ lan'ny default.

use myNewDatabase;

Mahazoa fampahalalana momba ny latabatra
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;

Mampiditra angona ao anaty latabatra
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

Fiteny ankapobeny INSERT ao Cassandra dia mitovy amin'ny PostgreSQL. Na izany aza, misy fahasamihafana lehibe amin'ny semantika. Ao amin'ny Cassandra INSERT fandidiana tokoa UPSERT, izay ampiana ny sanda farany amin'ny laharana raha toa ka efa misy ny laharana.

Ny fidirana data dia mitovy amin'ny PostgreSQL INSERT ambony

.

MongoDB

Na dia angon-drakitra NoSQL toa an'i Cassandra aza i MongoDB, dia tsy misy ifandraisany amin'ny fihetsika semantika an'i Cassandra ny asa fampidirana azy. Ao amin'ny MongoDB ampidiro () tsy manana fahafahana UPSERT, izay mampitovy azy amin'ny PostgreSQL. Manampy angon-drakitra default tsy misy _idspecified dia hiteraka antontan-taratasy vaovao fanampiny amin'ny fanangonana.

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

Fanontaniana latabatra

Angamba ny fahasamihafana lehibe indrindra eo amin'ny SQL sy ny NoSQL amin'ny resaka fananganana fanontaniana dia ny fiteny ampiasaina FROM ΠΈ WHERE. SQL dia mamela aorian'ny fanehoana FROM mifidiana latabatra maromaro, ary fitenenana miaraka amin'ny WHERE Mety ho sarotra be (anisan'izany ny asa JOIN eo anelanelan'ny latabatra). Na izany aza, ny NoSQL dia matetika mametraka fetra mafy amin'ny FROM, ary miasa miaraka amin'ny latabatra voafaritra iray ihany, ary in WHERE, ny fanalahidy fototra dia tsy maintsy voafaritra foana. Izany dia mifamatotra amin'ny fanosehana fampisehoana NoSQL noresahinay teo aloha. Izany faniriana izany dia mitarika amin'ny fampihenana rehetra azo atao amin'ny fifampikasohana mifanandrify amin'ny tabilao sy ny fanalahidy. Afaka mampiditra fahatarana lehibe amin'ny fifandraisana eo amin'ny node izy io rehefa mamaly ny fangatahana ary noho izany dia azo alaina amin'ny ankapobeny. Ohatra, i Cassandra dia mitaky ny fangatahana ho voafetra amin'ny mpandraharaha sasany (ihany =, IN, <, >, =>, <=) amin'ny fanalahidin'ny fizarazarana, afa-tsy rehefa mangataka fanondro faharoa (ny = operator ihany no avela eto).

PostgreSQL

Ireto ambany ireto ny ohatra telo amin'ny fanontaniana izay mora tanterahana amin'ny angon-drakitra SQL.

  • Asehoy ny hira rehetra avy amin'ny mpanakanto iray;
  • Asehoy ny hiran'ny mpanakanto rehetra izay mifanaraka amin'ny ampahany voalohany amin'ny lohateny;
  • Asehoy ny hiran'ny mpanakanto manana teny iray amin'ny lohateny ary manana vidiny latsaky ny 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

Amin'ireo fanontaniana PostgreSQL voatanisa etsy ambony, ny voalohany ihany no hiasa tsy hiova ao Cassandra, satria ny operator LIKE tsy azo ampiharina amin'ny clustering tsanganana toy ny SongTitle. Amin'ity tranga ity, ny mpandraharaha ihany no mahazo alalana = ΠΈ 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

Araka ny asehon'ireo ohatra teo aloha, ny fomba lehibe indrindra amin'ny famoronana fanontaniana ao amin'ny MongoDB dia db.collection.find(). Ity fomba ity dia mirakitra mazava ny anaran'ny fanangonana (music amin'ny ohatra etsy ambany), noho izany dia voarara ny manontany fanangonana maro.

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

Mamaky ny andalana rehetra amin'ny latabatra

Ny famakiana ny andalana rehetra dia tranga manokana fotsiny amin'ny lamina fangatahana nojerentsika teo aloha.

PostgreSQL

SELECT * 
FROM Music;

Cassandra

Mitovy amin'ny ohatra PostgreSQL etsy ambony.

MongoDB

db.music.find( {} );

Fanitsiana angona ao anaty latabatra

PostgreSQL

PostgreSQL dia manome torolΓ lana UPDATE hanova data. Tsy manana fahafahana izy UPSERT, ka tsy hahomby ity fanambarana ity raha tsy ao anaty angon-drakitra intsony ilay laharana.

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

Cassandra

Cassandra manana UPDATE mitovy amin'ny PostgreSQL. UPDATE manana semantika mitovy UPSERT, mitovitovy INSERT.

Mitovy amin'ny ohatra PostgreSQL etsy ambony.

MongoDB
hetsika fanavaozana () ao amin'ny MongoDB dia afaka manavao tanteraka ny antontan-taratasy efa misy na manavao ny saha sasany ihany. Amin'ny alΓ lan'ny default, dia manavao antontan-taratasy iray ihany miaraka amin'ny semantika kilemaina UPSERT. Fanavaozana antontan-taratasy maro sy fihetsika mitovy UPSERT azo ampiharina amin'ny fametrahana saina fanampiny ho an'ny asa. Ohatra, amin'ny ohatra etsy ambany, ny karazana mpanakanto iray manokana dia nohavaozina araka ny hirany.

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

Esory ny angona amin'ny latabatra

PostgreSQL

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

Cassandra

Mitovy amin'ny ohatra PostgreSQL etsy ambony.

MongoDB

MongoDB dia manana karazana asa roa hamafa ny antontan-taratasy βˆ’ deleteOne() /deleteMany() ΠΈ esory (). Samy mamafa antontan-taratasy ireo karazany roa ireo fa mamerina valiny hafa.

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

Famafana latabatra

PostgreSQL

DROP TABLE Music;

Cassandra

Mitovy amin'ny ohatra PostgreSQL etsy ambony.

MongoDB

db.music.drop();

famaranana

Ny adihevitra momba ny fisafidianana eo amin'ny SQL sy ny NoSQL dia nirongatra nandritra ny 10 taona mahery. Misy lafin-javatra roa lehibe amin'ity adihevitra ity: ny maritrano maotera database (monolithic, transactional SQL vs distributed, non-transactional NoSQL) ary ny fomba fandrafetana database (modely ny angonao amin'ny SQL vs modeling ny fanontanianao ao amin'ny NoSQL).

Miaraka amin'ny angon-drakitra ara-barotra zaraina toa ny YugaByte DB, ny adihevitra momba ny maritrano angon-drakitra dia azo alaina mora foana. Satria lasa lehibe kokoa noho izay azo soratana amin'ny node tokana ny habetsaky ny angona, dia ilaina ny maritrano iray miparitaka tanteraka izay manohana ny fampitomboana ny fanoratana tsipika miaraka amin'ny sharding/rebalancing mandeha ho azy.

Ankoatra izany, araka ny voalaza ao amin'ny iray amin'ireo lahatsoratra Google Cloud, Transactional, maritrano tsy miovaova dia efa , ampiasaina mba hanomezana fahaiza-manao fampandrosoana tsara kokoa noho ny tsy-transactional, , maritrano tsy miovaova amin'ny farany.

Miverina amin'ny fifanakalozan-kevitra momba ny famolavolana angon-drakitra, marina ny milaza fa ny fomba fiasa roa (SQL sy NoSQL) dia ilaina amin'ny fampiharana tena misy eran-tany. Ny fomba fiasa "modely data" SQL dia ahafahan'ny mpamorona mahafeno mora kokoa ny fepetra takian'ny orinasa, raha ny fomba fiasa "modely fanontaniana" NoSQL dia ahafahan'ny mpamorona miasa amin'ny angon-drakitra be dia be miaraka amin'ny latency ambany sy haingam-pandeha ambony. Izany no mahatonga ny YugaByte DB manome SQL sy NoSQL API amin'ny fototra iraisana, fa tsy mampiroborobo ny iray amin'ireo fomba fiasa. Fanampin'izany, amin'ny alΓ lan'ny fanomezana fampifanarahana amin'ireo fiteny malaza amin'ny angon-drakitra ao anatin'izany ny PostgreSQL sy Cassandra, ny YugaByte DB dia manome antoka fa tsy mila mianatra fiteny hafa ny mpamorona mba hiara-miasa amin'ny motera angon-drakitra miparitaka sy tsy miovaova.

Ato amin'ity lahatsoratra ity, nojerentsika ny maha-samihafa ny fototry ny famolavolana database eo amin'ny PostgreSQL, Cassandra, ary MongoDB. Ao amin'ny lahatsoratra ho avy, dia hiditra ao anatin'ny foto-kevitra famolavolana mandroso isika toy ny fanondroana, ny fifampiraharahana, ny JOINs, ny torolΓ lana TTL ary ny antontan-taratasy JSON.

Mirary faran'ny herinandro mahafinaritra ho anao izahay ary manasa anao webinar maimaim-poana, izay hatao ny 14 mey.

Source: www.habr.com

Add a comment