Fa'avae Fuafuaga Fa'amaumauga - Fa'atusatusaina o PostgreSQL, Cassandra, ma MongoDB

Talofa, uo. Aʻo leʻi alu mo le vaega lona lua o aso malolo o Me, matou te faʻasoa atu ia te oe mea na matou faaliliuina i le faʻamoemoe o le faʻalauiloaina o se vaitafe fou i luga o le vasega. "DBMS fa'atasi".

Fa'avae Fuafuaga Fa'amaumauga - Fa'atusatusaina o PostgreSQL, Cassandra, ma MongoDB

E tele taimi e fa'aalu e le au atina'e talosaga e fa'atusatusa le tele o fa'amaumauga fa'agaioiga e filifili ai le mea e sili ona fetaui ma le mamafa o galuega. O mana'oga e mafai ona aofia ai fa'ata'ita'iga fa'amatalaga fa'afaigofie, fa'amaoniga tau fefa'ataua'iga, fa'atinoga faitau/tusi, fa'alava fa'ata'atia, ma le fa'apalepale o sese. I le masani ai, o le filifiliga e amata i le vaega o faʻamaumauga, SQL poʻo le NoSQL, talu ai o vaega taʻitasi e maua ai se seti manino o fefaʻatauaiga. O le maualuga o le faatinoga e tusa ai ma le maualalo o le latency ma le maualuga o le gaosiga e masani lava ona vaʻaia o se manaʻoga e le o fefaʻatauaʻiga ma e taua tele mo soʻo se faʻamaumauga faʻamaumauga.

O le faʻamoemoe o lenei tusiga o le fesoasoani lea i tagata faʻapipiʻi talosaga e faia le filifiliga saʻo i le va o SQL ma NoSQL i le faʻataʻitaʻiga o faʻataʻitaʻiga o faʻamatalaga. O le a tatou vaʻavaʻai i se database SQL se tasi, e taʻua o PostgreSQL, ma lua NoSQL database, Cassandra ma MongoDB, e faʻapipiʻi ai faʻavae o faʻamaumauga faʻamaumauga, e pei o le fatuina o laulau, faʻatumuina, faitau faʻamatalaga mai se laulau, ma tapeina. I le isi tala, matou te mautinoa e vaʻavaʻai i faʻamatalaga, fefaʻatauaiga, JOINs, TTL faʻatonuga, ma le JSON-based database design.

O le a le eseesega i le va o SQL ma NoSQL?

O fa'amaumauga a le SQL e fa'ateleina ai le fetu'una'i o talosaga e ala i fa'amaoniga tau fefa'ataua'iga a le ACID, fa'apea fo'i ma lo latou agava'a e su'esu'e fa'amaumauga e fa'aaoga ai SOI i auala e le'i fa'amoemoeina i luga o fa'ata'ita'iga fa'amaumauga o feso'ota'iga masani.

Ona o latou fausaga monolithic / tasi-node ma le faʻaaogaina o se faʻataʻitaʻiga faʻataʻitaʻiga a le matai-pologa mo le toe faʻaaogaina, o faʻamaumauga masani a SQL e leai ni vaega taua se lua - faʻasologa o le tusitusi laina (e pei o le vaeluaga otometi i luga o le tele o pona) ma otometi/zero faʻamaumauga leiloa. O lona uiga o le aofa'i o fa'amatalaga e maua e le mafai ona sili atu i le maualuga o le tusitusi tusitusi o se tasi node. E le gata i lea, o nisi o faʻamaumauga le tumau e tatau ona amanaia i le faʻapalepale faʻaletonu (i totonu o se fausaga faʻasoa-leai se mea). O iinei e tatau ona e manatua o tautinoga lata mai e leʻi faʻaalia i le kopi pologa. E faigata fo'i ona maua fa'afouga e le o fa'aletonu i fa'amaumauga SQL.

NoSQL databases e masani ona tufatufaina e le natura, i.e. i totonu ia i latou, o faʻamaumauga e vaevaeina i ni vaega ma tufatufa atu i le tele o nodes. Latou te manaʻomia le denormalization. O lona uiga o fa'amaumauga na tu'uina atu e tatau fo'i ona kopi fa'atele e tali atu ai i talosaga fa'apitoa e te lafo. O le fa'amoemoe atoa o le maua lea o le fa'atinoga maualuga e ala i le fa'aitiitia o le aofa'i o shards o lo'o maua i taimi o faitau. O lona uiga o le NoSQL e manaʻomia oe e faʻataʻitaʻi au fesili, ae manaʻomia e SQL oe e faʻataʻitaʻi au faʻamatalaga.

O loʻo taulaʻi le NoSQL i le ausiaina o le maualuga o le faʻatinoga i totonu o se faʻasalalauga tufatufa ma o le mafuaaga autu lea mo le tele o fefaʻatauaʻiga o faʻamaumauga o faʻamaumauga e aofia ai le leiloa o fefaʻatauaiga a le ACID, JOINs, ma faʻasalalauga tulaga lua o le lalolagi.

O loʻo i ai se finauga e faapea e ui o NoSQL faʻamaumauga e maua ai le faʻaogaina o le tusitusi ma le maualuga o le faʻapalepale, o le leiloa o faʻamaoniga tau fefaʻatauaʻiga e le talafeagai ai mo faʻamatalaga taua.

O le laulau o loʻo i lalo o loʻo faʻaalia ai pe faʻafefea ona ese le faʻataʻitaʻiga o faʻamaumauga i le NoSQL mai le SQL.

Fa'avae Fuafuaga Fa'amaumauga - Fa'atusatusaina o PostgreSQL, Cassandra, ma MongoDB

SQL ma NoSQL: Aisea e manaʻomia uma ai?

Talosaga moni-lalolagi ma le tele o tagata faʻaoga, e pei o Amazon.com, Netflix, Uber, ma Airbnb, o loʻo faʻatonuina i le faʻatinoina o galuega lavelave, tele-faceted. Mo se faʻataʻitaʻiga, o se talosaga e-pisinisi e pei o Amazon.com e manaʻomia le teuina o faʻamatalaga mama, maualuga faʻamatalaga e pei o faʻamatalaga tagata faʻaoga, oloa, faʻatonuga, pili, faʻatasi ai ma faʻamatalaga mamafa, faʻaitiitia le maʻaleʻale e pei o iloiloga o oloa, feʻau lagolago , gaoioiga faʻaoga, tagata fa'aoga iloiloga ma fautuaga. E masani lava, o nei talosaga e faʻalagolago i le itiiti ifo ma le tasi le SQL database faʻatasi ai ma le itiiti ifo ma le tasi le database NoSQL. I totonu o fa'alapotopotoga fa'aitumalo ma faiga fa'ava-o-malo, o le NoSQL database o lo'o fa'agaoioia e pei o se fa'asoa fa'a-geo mo fa'amaumauga o lo'o teuina i totonu o se fa'amaumauga fa'atuatuaina SQL o lo'o fa'agaoioia i totonu o se itulagi.

E faʻafefea ona tuʻufaʻatasia e le YugaByte DB le SQL ma le NoSQL?

Fausia i luga o se afi faʻafefiloi faʻafefiloi faʻapipiʻi, auto-sharding, faʻasalalau faʻasalalau faʻatasi ma fefaʻatauaʻiga faʻasalalau ACID (musuia e Google Spanner), o le YugaByte DB o le faʻamaumauga muamua o punaoa tatala a le lalolagi lea e tutusa ma le NoSQL (Cassandra & Redis) ma SQL (PostgreSQL). E pei ona faʻaalia i le laulau o loʻo i lalo, YCQL, le YugaByte DB API e fetaui ma Cassandra, faʻaopoopo manatu o fefaʻatauaʻiga ACID tasi ma tele-ki ma faʻailoga lona lua i le lalolagi atoa i le NoSQL API, ma faʻauluina ai le vaitau o faʻamaumauga NoSQL fefaʻatauaʻiga. E le gata i lea, o le YCQL, le YugaByte DB API e fetaui ma le PostgreSQL, faʻaopoopoina manatu o le laina laina laina ma le faʻapalepale faʻaletonu i le SQL API, aumaia faʻamaumauga SQL tufatufaina i le lalolagi. Talu ai ona o le YugaByte DB o se fefaʻatauaʻiga i le natura, o le NoSQL API e mafai nei ona faʻaogaina i le tulaga o faʻamatalaga taua-misiona.

Fa'avae Fuafuaga Fa'amaumauga - Fa'atusatusaina o PostgreSQL, Cassandra, ma MongoDB

E pei ona taʻua muamua i le tusiga "Faailoaina YSQL: O le PostgreSQL Compatible Distributed SQL API mo YugaByte DB", o le filifiliga i le va o le SQL poʻo le NoSQL i le YugaByte DB e faʻalagolago atoa i uiga o le mamafa o galuega:

  • Afai o lau galuega fa'amuamua o le tele-key JOIN operations, pe a filifilia le YSQL, ia malamalama e mafai ona tufatufa au ki i le tele o nodes, e mafua ai le maualuga o le latency ma/pe maualalo le gaosiga nai lo le NoSQL.
  • A leai, filifili se tasi o le lua NoSQL APIs, ia manatua o le a sili atu lau faʻatinoga o se taunuuga o fesili e tuʻuina atu mai le tasi node i le taimi. YugaByte DB e mafai ona avea o se faʻamaumauga faʻamaumauga e tasi mo le lalolagi moni, faʻalavelave faʻapitoa e manaʻomia le faʻatautaia o le tele o galuega i le taimi e tasi.

Ole su'esu'ega fa'ata'ita'iga o Fa'amaumauga i le isi vaega e fa'avae ile PostgreSQL ma Cassandra API fa'amaumauga YugaByte DB, fa'afeagai ma fa'amaumauga tu'ufa'atasi. O lenei faiga e faamamafaina ai le faigofie o le fegalegaleai ma API eseese e lua (i luga o ports eseese e lua) o le faaputuga database tutusa, e ese mai i le faʻaaogaina o fuifui tutoʻatasi o faʻamaumauga eseese e lua.
I vaega o loʻo mulimuli mai, o le a tatou vaʻavaʻai i le faʻataʻitaʻiga o faʻamaumauga e faʻaalia ai eseesega ma nisi o mea masani o faʻamaumauga o loʻo ufiufi.

Fa'amatalaga Fa'ata'ita'iga Laboratory

Fa'apipi'i fa'amaumauga

Tuuina atu le faʻamamafa i luga o faʻataʻitaʻiga faʻataʻitaʻiga (nai lo le faʻapipiʻiina o fausaga faʻapipiʻi), matou te faʻapipiʻi faʻamaumauga i koneteina Docker i luga o le masini faʻapitonuʻu ona fegalegaleai ai lea ma i latou e faʻaaoga a latou atigi laina laina.

PostgreSQL & Cassandra fetaui 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

Fa'atonu laina avanoa

Tatou fa'afeso'ota'i i fa'amaumauga e fa'aaoga ai le atigi laina fa'atonu mo API fa'atatau.

PostgreSQL

psql o se atigi laina laina mo fegalegaleai ma PostgreSQL. Mo le faigofie o le faʻaoga, YugaByte DB e sau ma le psql saʻo i le pusa pusa.

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

Cassandra

cqlsh o se atigi laina fa'atonuga mo le fegalegaleai ma Cassandra ma ana fa'amaumauga talafeagai e ala i le CQL (Cassandra Query Language). Mo le faigofie o le faʻaoga, YugaByte DB e sau ma cqlsh i le lisi bin.
Manatua o le CQL na musuia e SQL ma e tutusa manatu o laulau, laina, koluma ma faʻasino igoa. Ae ui i lea, i le avea ai o se gagana NoSQL, e faʻaopoopoina ai se seti o tapulaʻa, o le tele o ia mea o le a tatou aofia ai foi i isi tala.

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

MongoDB

mongo o se atigi laina laina mo le fegalegaleai ma MongoDB. E mafai ona maua i le lisi o talone o le faʻapipiʻiina o MongoDB.

docker exec -it my-mongo bash 
cd bin
mongo

Fausia se laulau

Ole taimi nei e mafai ona tatou fegalegaleai ma le database e faʻatino ai gaioiga eseese e faʻaaoga ai le laina faʻatonu. Tatou amata i le fatuina o se laulau e teu ai faʻamatalaga e uiga i pese na tusia e tufuga eseese. O nei pese atonu o se vaega o se album. O uiga fa'apitoa mo se pese o le tausaga o le tatalaina, tau, ituaiga ma le fa'atatau. Matou te manaʻomia le faʻamatalaga mo uiga faʻaopoopo e ono manaʻomia i le lumanaʻi e ala i le "tags" field. E mafai ona teuina faʻamaumauga semi-structured i le tulaga o paʻaga autu-taua.

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

Fausia se laulau i Cassandra e tutusa lelei ma PostgreSQL. O se tasi o eseesega autu o le leai o se faʻagata faʻamaoni (eg NOT NULL), ae o le matafaioi lea a le talosaga, ae le o le NoSQL database.. O le ki autu e aofia ai se ki vaeluaga (o le koluma Tusiata i le faʻataʻitaʻiga o loʻo i lalo) ma se seti o koluma faʻapipiʻi (le koluma SongTitle i le faʻataʻitaʻiga o loʻo i lalo). O le ki vaeluaga e iloa ai po'o fea vaeluaga/sard e tatau ona tu'u i ai le laina, ma o koluma fa'apipi'i o lo'o fa'ailoa mai ai pe fa'apefea ona fa'atulaga fa'amaumauga i totonu o le shard o lo'o iai nei.

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 faʻatulagaina faʻamaumauga i totonu o faʻamaumauga (Database) (e tutusa ma Keyspace i Cassandra), lea o loʻo i ai Aʻoaʻoga (tutusa ma laulau) o loʻo i ai Pepa (e tutusa ma laina i se laulau). I MongoDB, e leai se mea e manaʻomia e faʻamatalaina ai se fuafuaga muamua. Au "fa'aoga fa'amaumauga", o loʻo faʻaalia i lalo, faʻapipiʻi vave le faʻamaumauga i luga o le valaau muamua ma suia le faʻamatalaga mo le faʻamaumauga fou fou. E o'o lava i fa'aputuga e le mana'omia ona fa'ailoa manino; e otometi lava ona faia, pe a fa'aopoopo le pepa muamua i se fa'aputuga fou. Manatua o le MongoDB e faʻaogaina le suʻega faʻamaumauga e ala i le le mafai, o lea o soʻo se faʻaogaina-tulaga faʻaogaina e aunoa ma le faʻamaoniaina o se faʻamaumauga patino o le a faʻaogaina i luga e ala i le faaletonu.

use myNewDatabase;

Mauaina o faamatalaga e uiga i se laulau
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;

Tuuina o faʻamatalaga i totonu o se laulau
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

Fa'aaliga lautele INSERT i Cassandra e foliga tutusa ma lena i PostgreSQL. Ae ui i lea, e tasi le eseesega tele i semantics. I Cassandra INSERT e moni lava o se taotoga UPSERT, lea e faʻaopoopoina ai le tau mulimuli i le laina pe afai o loʻo i ai le laina.

Fa'amatalaga fa'amatalaga e tutusa ma PostgreSQL INSERT maualuga

.

MongoDB

E ui lava o le MongoDB o le NoSQL database e pei o Cassandra, o lona faʻaofiina faʻagaioiga e leai se mea e tutusa ai ma le amio masani a Cassandra. I MongoDB faaofi () e leai ni avanoa UPSERT, lea e tutusa ai ma PostgreSQL. Fa'aopoopoina fa'amaumauga fa'aletonu e aunoa ma _idspecified o le a mafua ai ona faaopoopo se pepa fou i le aoina.

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

Laupapa Fesili

Masalo o le eseesega sili ona taua i le va o le SQL ma le NoSQL i tulaga o le fausiaina o fesili o le gagana faʻaaogaina FROM и WHERE. SQL faʻatagaina pe a uma faʻamatalaga FROM filifili ni laulau se tele, ma fa'amatalaga ma WHERE e mafai ona i ai so'o se lavelave (e aofia ai gaioiga JOIN va o laulau). Ae ui i lea, o le NoSQL e taumafai e tuʻuina atu se tapulaʻa ogaoga i FROM, ma galue naʻo le tasi laulau faʻapitoa, ma totonu WHERE, o le ki autu e tatau ona faʻamaonia i taimi uma. O lenei mea e fesoʻotaʻi i le NoSQL faʻatinoga faʻamalosi na matou talanoa i ai muamua. O lenei manaʻoga e taʻitaʻia ai faʻaitiitiga uma e mafai i soʻo se fesoʻotaʻiga faʻasalalau ma fesoʻotaʻiga ki. E mafai ona faʻaalia ai se faʻatuai tele i fesoʻotaʻiga i totonu o le node pe a tali atu i se talosaga ma o lea e sili ona aloese mai le lautele. Mo se faʻataʻitaʻiga, e manaʻomia e Cassandra fesili e faʻatapulaʻa i nisi o faʻalapotopotoga (naʻo =, IN, <, >, =>, <=) i luga o ki vaeluaga, vagana ai pe a talosagaina se faʻailoga lona lua (naʻo le = operator e faʻatagaina iinei).

PostgreSQL

O loʻo i lalo ni faʻataʻitaʻiga se tolu o fesili e faigofie ona faʻatinoina e se SQL database.

  • Faaali uma pese a se tusiata;
  • Faaali uma pese a le tusiata e fetaui ma le vaega muamua o le ulutala;
  • Faaali uma pese a se tusiata e iai se upu patino i le ulutala ma e i lalo ifo o le 1.00 le tau.
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

Mai fesili a PostgreSQL o loʻo lisiina i luga, naʻo le muamua o le a galue e le suia i Cassandra, talu ai o le tagata faʻatautaia. LIKE e le mafai ona fa'aoga i koluma fa'apipi'i pei o SongTitle. I lenei tulaga, e na'o tagata fa'afoe e fa'atagaina = и 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

E pei ona faʻaalia i faʻataʻitaʻiga muamua, o le auala autu mo le fatuina o fesili i MongoDB o db.collection.find(). O lenei metotia o loʻo i ai manino le igoa o le aoina (music i le faʻataʻitaʻiga o loʻo i lalo), o lea e faʻasaina ai le fesiligia o le tele o aoina.

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

Faitau laina uma o se laulau

O le faitauina o laina uma ua na'o se tulaga fa'apitoa o le fa'ata'ita'iga o fesili na matou va'ai muamua i ai.

PostgreSQL

SELECT * 
FROM Music;

Cassandra

E tutusa ma le PostgreSQL faʻataʻitaʻiga i luga.

MongoDB

db.music.find( {} );

Fa'asa'o fa'amaumauga i se laulau

PostgreSQL

PostgreSQL e tuʻuina atu faʻatonuga UPDATE e sui fa'amaumauga. E leai ni ona avanoa UPSERT, o lea o le a le manuia lenei faʻamatalaga pe a le o toe i ai le laina i totonu o faʻamaumauga.

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

Cassandra

Ua iai Cassandra UPDATE tutusa ma PostgreSQL. UPDATE e tutusa lona uiga UPSERT, tutusa INSERT.

E tutusa ma le PostgreSQL faʻataʻitaʻiga i luga.

MongoDB
Gaoioiga faafou () i MongoDB e mafai ona faʻafou atoatoa se pepa o loʻo iai pe faʻafouina naʻo nisi fanua. E le mafai, e na'o le tasi le pepa e fa'afou ai semantics ua le atoatoa UPSERT. Fa'afouina pepa e tele ma amio fa'apena UPSERT e mafai ona faʻaaogaina e ala i le setiina o fuʻa faaopoopo mo le gaioiga. Mo se faʻataʻitaʻiga, i le faʻataʻitaʻiga o loʻo i lalo, o le ituaiga o se tusiata faapitoa e faʻafouina e faʻatatau i lana pese.

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

Ave'esea fa'amaumauga mai se laulau

PostgreSQL

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

Cassandra

E tutusa ma le PostgreSQL faʻataʻitaʻiga i luga.

MongoDB

MongoDB e lua ituaiga o gaioiga e tape ai pepa − deleteOne() /deleteMany() и aveese (). O ituaiga uma e lua e tape pepa ae toe fa'afo'i i'uga eseese.

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

Aveese se laulau

PostgreSQL

DROP TABLE Music;

Cassandra

E tutusa ma le PostgreSQL faʻataʻitaʻiga i luga.

MongoDB

db.music.drop();

iʻuga

O felafolafoaiga e uiga i le filifilia i le va o SQL ma NoSQL ua faʻatupuina mo le silia ma le 10 tausaga. E lua itu autu o lenei felafolafoaiga: faʻapipiʻi faʻamatalaga afi (monolithic, transactional SQL vs tufatufa, non-transactional NoSQL) ma le database design approach (faʻataʻitaʻiina o au faʻamatalaga i SQL vs faʻataʻitaʻiina au fesili ile NoSQL).

Faatasi ai ma se faʻasalalauga faʻasalalauga faʻasalalau e pei o le YugaByte DB, o le felafolafoaiga e uiga i faʻamaumauga faʻamaumauga e mafai ona faigofie ona tuʻuina. A'o fa'ateleina le tele o fa'amaumauga nai lo le mea e mafai ona tusia i se node e tasi, o se fausaga fa'asoa atoa e lagolago ai le fa'alauteleina o le tusitusi fa'atasi ma le fa'avasegaina otometi/rebalancing e mana'omia.

E lē gata i lea, e pei ona taʻua i se tasi o mataupu Google Cloud, Fefa'ataua'iga, malosi faifai pea architectures ua sili atu nei , fa'aaogaina e tu'uina atu ai le fa'aleleia atili o le atina'e nai lo le fa'atauva'a, , fa'asolo fa'asolo.

I le toe foʻi mai i le faʻatalanoaga o faʻamaumauga o faʻamaumauga, e talafeagai le faʻapea o auala uma e lua (SQL ma NoSQL) e manaʻomia mo soʻo se faʻaoga faigata i le lalolagi. O le SQL "faʻataʻitaʻiga faʻamatalaga" auala e mafai ai e le au atinaʻe ona sili atu ona faigofie ona faʻafeiloaʻi suiga manaʻomia o pisinisi, aʻo le NoSQL "faʻataʻitaʻiga faʻataʻitaʻiga" e mafai ai e le au atinaʻe tutusa ona faʻagaoioia i luga o voluma tele o faʻamaumauga e maualalo le laititi ma maualuga le gaosiga. O le mafuaʻaga lea e tuʻuina atu ai e le YugaByte DB SQL ma NoSQL APIs i se autu masani, nai lo le faʻalauiloaina o se tasi o auala. E le gata i lea, e ala i le tuʻuina atu o fesoʻotaʻiga ma gagana lauiloa faʻamaumauga e aofia ai PostgreSQL ma Cassandra, YugaByte DB faʻamautinoa e le tau aʻoaʻoina e le au atinaʻe se isi gagana e galulue ai ma se masini faʻamaumauga tuʻufaʻatasia, sili ona tumau.

I lenei tusiga, na matou vaʻavaʻai pe faʻafefea ona ese le faʻavae o faʻamaumauga autu i le va o PostgreSQL, Cassandra, ma MongoDB. I tala i le lumana'i, o le a tatou fa'asolo atu i fa'ata'ita'iga fa'ata'ita'iga e pei o fa'asinomaga, fefa'ataua'iga, JOINs, TTL fa'atonuga, ma pepa JSON.

Matou te moomoo ia te oe se malologa tele o le faaiuga o le vaiaso ma valaaulia oe webinar saoloto, lea o le a faia ia Me 14th.

puna: www.habr.com

Faaopoopo i ai se faamatalaga