Aasaaska Naqshadaynta Xogta - Isbarbardhigga PostgreSQL, Cassandra iyo MongoDB

Salaamu caleykum sxb. Ka hor inta aan loo bixin qaybta labaad ee ciidaha May, waxaanu idinla wadaagaynaa qoraalkii aanu turjunnay ee aanu filayno daahfurka qulqulka cusub ee koorsada "Xiriirka DBMS".

Aasaaska Naqshadaynta Xogta - Isbarbardhigga PostgreSQL, Cassandra iyo MongoDB

Soosaarayaasha arjiyada ayaa waqti badan ku bixiya isbarbardhigga xog ururin badan oo shaqeynaya si ay u doortaan midka ugu habboon culeyska shaqada ee loogu talagalay. Baahiyaha waxaa ku jiri kara qaabeynta xogta la fududeeyay, dammaanad qaadka wax kala iibsiga, wax-akhrinta/qorista, cabirka toosan, iyo dulqaadka khaladka. Dhaqan ahaan, doorashadu waxay ka bilaabataa qaybta kaydka xogta, SQL ama NoSQL, maadaama qayb kastaa ay soo bandhigto jaangooyo cad oo ganacsi ah. Waxqabadka sare marka loo eego daahitaanka hooseeya iyo wax soo saarka sare ayaa guud ahaan loo arkaa shuruudo aan ganacsi ahayn sidaas darteedna waa lama huraan u ah xog kasta oo muunad ah.

Ujeedada maqaalkani waa in laga caawiyo horumarinta codsiyada samaynta doorashada saxda ah ee u dhaxaysa SQL iyo NoSQL marka la eego macnaha xogta codsiga. Waxaan eegi doonaa hal database SQL, oo ​​ah PostgreSQL, iyo laba NoSQL database, Cassandra iyo MongoDB, si ay u daboosho aasaasiga ah ee design database, sida samaynta miisaska, population iyaga, akhrinta xogta miiska, iyo tirtirto. Maqaalka soo socda, waxaan hubin doonaa inaan eegno tusmooyinka, wax kala iibsiga, JOINs, dardaaranka TTL, iyo naqshadeynta xogta ku salaysan JSON.

Waa maxay farqiga u dhexeeya SQL iyo NoSQL?

Xogta SQL waxay kordhisaa dabacsanaanta arjiga iyada oo loo marayo dammaanad qaadyada macaamil ganacsi ee ACID, iyo sidoo kale awoodda ay u leeyihiin inay xogta ku waydiiyaan iyagoo isticmaalaya JOINs siyaabo lama filaan ah oo ka sarreeya moodooyinka xogta xogta ee caadiga ah ee jira.

Marka la eego qaabdhismeedkooda monolithic/hal-node-ka ah iyo adeegsiga qaabka ku-noqoshada sayid-addoon ee dib-u-celinta, xog-ururinta SQL ee dhaqameedku waxay ka maqan yihiin laba astaamood oo muhiim ah - miisaan qoritaan toosan (sida qaybinta tooska ah ee qanjidhada badan) iyo luminta xogta otomaatiga ah/ eber. Tani waxay ka dhigan tahay in cadadka xogta la helay aysan dhaafi karin inta ugu badan ee wax qoris ah ee hal nood. Intaa waxaa dheer, qaar ka mid ah luminta xogta ku meel gaadhka ah waa in lagu tixgaliyaa dulqaadka khaladka ah (dhismaha aan waxba wadaagin). Halkan waxaad u baahan tahay inaad maskaxda ku hayso in ballanqaadyadii ugu dambeeyay aysan weli ka muuqan nuqulka addoonta. Cusboonaysiinta wakhti-yarida sidoo kale way adagtahay in lagu gaadho xog-ururinta SQL.

Xogta NoSQL waxaa badanaa loo qaybiyaa dabeecadda, i.e. iyaga, xogta waxaa loo qaybiyaa qaybo waxaana loo qaybiyaa dhowr nood. Waxay u baahan yihiin caadifad. Tani waxay ka dhigan tahay in xogta la galiyay ay tahay in sidoo kale la koobiyeeyo dhowr jeer si looga jawaabo codsiyada gaarka ah ee aad dirto. Hadafka guud waa in la helo waxqabad sare iyadoo la dhimayo tirada shards ee la heli karo inta lagu jiro akhrinta. Tani waxay tusinaysaa in NoSQL ay kaaga baahan tahay inaad qaabayso su'aalahaaga, halka SQL uu kaaga baahan yahay inaad qaabayso xogtaada.

NoSQL waxay diiradda saartaa sidii loo heli lahaa waxqabad sare koox la qaybiyey tanina waa sababta gundhigga u ah ganacsiyo naqshadeynta keydka badan oo ay ku jiraan luminta macaamilka ACID, JOINs, iyo tilmaameyaal caalami ah oo joogto ah.

Waxaa jira dood ah in halka xogaha NoSQL ay bixiyaan miisaan qoraal toos ah iyo dulqaad sare leh, luminta dammaanadaha wax kala iibsiga ayaa ka dhigaya kuwo aan ku habboonayn xogta muhiimka ah ee howlgalka.

Jadwalka soo socdaa wuxuu muujinayaa sida xogta qaabaynta ee NoSQL uga duwan tahay SQL.

Aasaaska Naqshadaynta Xogta - Isbarbardhigga PostgreSQL, Cassandra iyo MongoDB

SQL iyo NoSQL: Maxaa labadaba loogu baahan yahay?

Codsiyada dhabta ah ee leh isticmaaleyaal badan, sida Amazon.com, Netflix, Uber, iyo Airbnb, ayaa loo xilsaaray inay qabtaan hawlo adag oo dhinacyo badan leh. Tusaale ahaan, codsiga e-ganacsiga sida Amazon.com wuxuu u baahan yahay inuu kaydiyo xogta khafiifka ah, xogta muhiimka ah sida macluumaadka isticmaalaha, alaabada, dalabaadka, qaansheegyada, oo ay weheliso xog culus oo xasaasi ah sida dib u eegista alaabta, fariimaha taageerada, dhaqdhaqaaqa isticmaalaha, dib u eegista isticmaalaha iyo talooyinka. Dabcan, codsiyadani waxay ku tiirsan yihiin ugu yaraan hal xog SQL oo ay la socoto ugu yaraan hal xog NoSQL ah. Nidaamyada gobollada iyo kuwa caalamiga ah, xogta NoSQL waxay u shaqeysaa sidii kayd juquraafi-qeybsan oo loogu talagalay xogta lagu kaydiyay isha la aamini karo ee SQL ee ka socota gobol gaar ah.

Sidee buu YugaByte DB isugu daraa SQL iyo NoSQL?

Waxaa lagu dhisay matoorka kaydinta isku-dhafan ee log-oriented, auto-sharding, shaandhayn qaybsan ku-noqoshada is-afgaradka iyo ACID qaybinta macaamil ganacsi (ay dhiirigelisay Google Spanner), YugaByte DB waa xogta isha furan ee ugu horreysa adduunka oo isku mar la jaan qaada NoSQL (Cassandra & Redis) iyo SQL (PostgreSQL). Sida shaxda hoose ku cad, YCQL, YugaByte DB API ee la jaan qaadaya Cassandra, waxay ku daraysaa fikradaha hal iyo hal-ganacsi ee ACID-ga muhiimka ah iyo tusmooyinka sare ee caalamiga ah ee NoSQL API, taas oo keenaysa xilligii macaamilka xogta NoSQL. Intaa waxaa dheer, YCQL, YugaByte DB API oo la jaan qaadaya PostgreSQL, waxay ku daraysaa fikradaha xisaabinta qoraalka tooska ah iyo u dulqaadashada qaladka tooska ah ee SQL API, taasoo keenaysa kaydka xogta SQL ee adduunka. Sababtoo ah YugaByte DB waa macaamil ganacsi dabiici ah, NoSQL API hadda waxaa loo isticmaali karaa macnaha xogta muhiimka ah.

Aasaaska Naqshadaynta Xogta - Isbarbardhigga PostgreSQL, Cassandra iyo MongoDB

Sida hore loogu sheegay maqaalka "Soo bandhigida YSQL: A PostgreSQL ku habboon SQL API ee YugaByte DB", doorashada u dhaxaysa SQL ama NoSQL ee YugaByte DB waxay si buuxda ugu xidhan tahay sifooyinka culayska shaqada ee hoose:

  • Haddii culayska shaqadaada aasaasiga ahi ay tahay hawlgallada JOIN ee furaha badan leh, markaa marka aad dooranayso YSQL, faham in furayaashaadu loo qaybin karo qanjidhada badan, taasoo keenaysa daahitaanka iyo/ama soo-saarka ka hooseeya kan NoSQL.
  • Haddii kale, dooro mid ka mid ah labada NoSQL APIs, adigoo maskaxda ku haya inaad heli doonto waxqabad ka wanaagsan natiijada su'aalaha laga keenay hal nood markiiba. YugaByte DB waxa ay u adeegi kartaa xog hal kayd oo hawlgelineed oo loogu talagalay adduunka-dhabta ah, codsiyada adag ee u baahan in la maareeyo culaysyo badan oo shaqo isku mar ah.

Shaybaarka qaabaynta xogta ee qaybta soo socota waxa uu ku salaysan yahay PostgreSQL iyo Cassandra API oo ku habboon xogta YugaByte DB, oo ka soo horjeeda xog ururinta asalka ah. Habkani waxa uu xooga saarayaa fududaynta la falgalka laba API oo kala duwan (laba dekedood oo kala duwan) oo isku koox ah xogta xogta, taas oo ka soo horjeeda isticmaalka rucubyada gebi ahaanba madax banaan ee laba xog oo kala duwan.
Qaybaha soo socda, waxaanu ku eegi doonaa shaybaadhka qaabaynta xogta si aanu u muujino kala duwanaanshaha iyo qaar ka mid ah waxyaabaha ay wadaagaan xogaha la daboolay.

Shaybaarka Qaabaynta Xogta

Rakibaadda database

Marka la eego xoogga la saaray naqshadaynta qaabka xogta (halkii ay ka ahaan lahayd qaab-dhismeedyada diritaanka adag), waxaanu ku rakibi doonaa kaydadka weelasha Docker ee mishiinka maxaliga ah ka dibna la falgeli iyaga anagoo adeegsanayna qolofahooda taliska.

PostgreSQL & Cassandra ku habboon xogta 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

Helitaanka khadka taliska

Aynu ku xidhno xog-ururinta anagoo adeegsanayna qolofka taliska ee API-yada u dhigma.

PostgreSQL

psql waa qolof khadka taliska ah ee la falgalka PostgreSQL. Si loo fududeeyo isticmaalka, YugaByte DB waxa ay la socotaa psql isla saxan galka qashinka.

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

Cassandra

cqlsh waa qolof talis ah oo lagula macaamilayo Cassandra iyo xog-ururinteeda ku habboon iyada oo loo sii marayo CQL (Luqadda Cassandra Query). Si loo fududeeyo isticmaalka, YugaByte DB ayaa la socota cqlsh buugga ku yaal bin.
Ogsoonow in CQL uu dhiirigeliyay SQL oo uu leeyahay fikrado la mid ah miisaska, safafka, tiirarka iyo tusmooyinka. Si kastaba ha ahaatee, luqadda NoSQL ahaan, waxay ku daraysaa xaddidaadyo gaar ah, kuwaas oo intooda badan aan sidoo kale ku dabooli doono maqaallo kale.

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

MongoDB

mongo waa qolof taliska ee la falgalka MongoDB. Waxaa laga heli karaa buugga hagaha ee rakibaadda MongoDB.

docker exec -it my-mongo bash 
cd bin
mongo

Samaynta miis

Hadda waxaan la falgali karnaa xogta xogta si aan u fulino hawlgallo kala duwan iyadoo la adeegsanayo khadka taliska. Aan ku bilowno sameynta miis lagu keydiyo macluumaadka heesaha ay qoreen fanaaniin kala duwan. Heesahani waxa laga yaabaa inay qayb ka yihiin albamka. Sifooyinka ikhtiyaariga ah ee heesta waa sanadka la sii daayay, qiimaha, nooca iyo qiimeynta. Waxaan u baahanahay inaan ku xisaabtano sifooyin dheeri ah oo mustaqbalka looga baahan karo goobta "tags". Waxay kaydin kartaa xogta qaab-hoosaadka hoose ah oo ah qaabka lammaane-qiimaha muhiimka ah.

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

Samaynta miis Cassandra waxay aad ugu egtahay PostgreSQL. Mid ka mid ah kala duwanaanshaha ugu weyn ayaa ah la'aanta caqabadaha daacadnimada (tusaale NO NOOL), laakiin tani waa mas'uuliyadda codsiga, ma aha xogta NoSQL.. Furaha aasaasiga ahi waxa uu ka kooban yahay furaha qaybinta (Tiirka Farshaxanka ee tusaalaha hoose) iyo tiirar ururin ah (Tiirarka Heesta Tusaalaha hoose). Furaha qaybinta ayaa go'aamisa qaybta/sharcida safka la gelinayo, iyo tiirar ururintu waxay tilmaamayaan sida xogta loogu habayn karo jeexan hadda jira.

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 waxay u habaysaa xogta kaydka xogta (Database) (oo la mid ah Keyspace ee Cassandra), halkaas oo ay ka jiraan Ururinta (la mid ah miisaska) oo ka kooban Dukumentiyo (la mid ah safafka miiska). MongoDB, asal ahaan looma baahna in la qeexo schema bilowga ah. Kooxda "isticmaal database", hoos lagu muujiyey, waxay dedejisaa kaydka macluumaadka ee wicitaanka ugu horreeya oo beddela macnaha xogta xogta cusub ee la abuuray. Xataa ururinta uma baahna in si cad loo abuuro; si toos ah ayaa loo abuuray, si fudud marka aad ku darto dukumeentiga ugu horreeya ururin cusub. Ogsoonow in MongoDB ay u isticmaasho xogta tijaabada ah si caadi ah, sidaa darteed hawlgal kasta oo heer ururin ah iyada oo aan la cayimin xog gaar ah ayaa si toos ah ugu shaqayn doonta.

use myNewDatabase;

Helitaanka macluumaadka ku saabsan miiska
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;

Gelida xogta miiska
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

Hadalka guud INSERT Cassandra waxay aad ugu egtahay midda PostgreSQL. Si kastaba ha ahaatee, waxaa jira hal farqi weyn oo xagga semantics ah. Cassandra INSERT dhab ahaantii waa qalliin UPSERT, halkaas oo qiyamka ugu dambeeya lagu daro safka haddii safku hore u jiray.

Gelida xogta waxay la mid tahay PostgreSQL INSERT sare

.

MongoDB

In kasta oo MongoDB ay tahay kaydka NoSQL sida Cassandra, hawl galkeedu wax la mid ah ma laha hab-dhaqanka semantic ee Cassandra. Gudaha MongoDB geli () ma haysto fursad UPSERT, taasoo ka dhigaysa mid la mid ah PostgreSQL. Ku darida xogta caadiga ah iyada oo aan _idspecified waxay sababi doontaa in dukumeenti cusub lagu daro ururinta.

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

Weydiinta miiska

Waxaa laga yaabaa in farqiga ugu weyn ee u dhexeeya SQL iyo NoSQL xagga dhismaha weydiinta ay tahay luqadda la isticmaalo FROM ΠΈ WHERE. SQL waxay ogolaataa muujinta ka dib FROM dooro miisas badan, oo ku muujin WHERE waxay noqon kartaa wax kasta oo kakan (oo ay ku jiraan hawlgallada JOIN miisaska dhexdooda). Si kastaba ha noqotee, NoSQL waxay u egtahay inay ku soo rogto xaddidaad daran FROM, oo ku shaqeeya kaliya hal miis oo cayiman, iyo gudaha WHERE, furaha aasaasiga ah waa in had iyo jeer la cayimaa. Tani waxay la xiriirtaa riixitaanka waxqabadka NoSQL ee aan horay uga hadalnay. Rabitaankani wuxuu keenayaa hoos u dhac kasta oo suurtagal ah oo ku yimaada is-dhexgal kasta oo isku-tallaabta ah iyo is-dhexgalka furaha. Waxay keeni kartaa dib u dhac weyn oo ku yimaadda isgaadhsiinta inter-node marka laga jawaabayo codsiga oo sidaas awgeed sida ugu wanaagsan ayaa looga fogaado guud ahaan. Tusaale ahaan, Cassandra waxa ay u baahantahay in la waydiiyo in lagu xadido hawl wadeenada qaarkood (kaliya =, IN, <, >, =>, <=) furayaasha qaybta, marka laga reebo marka la codsanayo tusaha sare (kaliya = hawlwadeenka ayaa halkan loo ogolyahay).

PostgreSQL

Hoos waxaa ku yaal saddex tusaale oo su'aalo ah oo si fudud loo fulin karo xogta SQL.

  • Soo bandhig dhammaan heesaha fanaaniinta;
  • Soo bandhig dhammaan heesaha fannaanka ee ku habboon qaybta koowaad ee cinwaanka;
  • Soo bandhig dhammaan heesaha uu sameeyay fanaanka erey gaar ah ku leh cinwaanka oo qiimahoodu ka yar yahay 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

Su'aalaha PostgreSQL ee kor ku taxan, kaliya kan ugu horreeya ayaa si aan isbeddel lahayn uga shaqayn doona Cassandra, tan iyo markii hawlwadeenku LIKE laguma dabaqi karo tiirar ururineed sida SongTitle. Xaaladdan, kaliya hawlwadeennada ayaa la oggol yahay = ΠΈ 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

Sida ku cad tusaalooyinkii hore, habka ugu muhiimsan ee su'aalaha loogu abuurayo MongoDB waa db.ururinta.heli(). Habkani wuxuu si toos ah uga kooban yahay magaca ururinta (music Tusaalaha hoose), markaa waydiinta ururin badan waa mamnuuc.

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

Akhrinta dhammaan safafka miiska

Akhrinta dhammaan safafka ayaa si fudud u ah xaalad gaar ah oo ku saabsan qaabka weydiinta ee aan horay u eegnay.

PostgreSQL

SELECT * 
FROM Music;

Cassandra

Si la mid ah tusaalaha PostgreSQL ee sare.

MongoDB

db.music.find( {} );

Tafatirka xogta shaxda

PostgreSQL

PostgreSQL waxay bixisaa tilmaamo UPDATE in la beddelo xogta. Fursad ma haysato UPSERT, markaa bayaankan wuu fashilmi doonaa haddii safku aanu ku jirin kaydka xogta.

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

Cassandra

Cassandra ayaa leh UPDATE oo la mid ah PostgreSQL. UPDATE wuxuu leeyahay semantics isku mid ah UPSERT, la mid ah INSERT.

Si la mid ah tusaalaha PostgreSQL ee sare.

MongoDB
Hawlgalka cusbooneysiin () gudaha MongoDB waxay si buuxda u cusboonaysiin kartaa dukumeenti jira ama waxay cusboonaysiin kartaa oo keliya meelaha qaarkood. Sida caadiga ah, kaliya waxay cusboonaysiisaa hal dukumeenti leh semantics naafo ah UPSERT. Cusbooneysiinta dukumeentiyo badan iyo habdhaqan la mid ah UPSERT waxaa lagu dabaqi karaa iyadoo la dejinayo calamo dheeri ah oo hawlgalka ah. Tusaale ahaan, tusaalaha hoose, nooca fannaanka gaarka ah ayaa la cusbooneysiiyay iyadoo lagu saleynayo heestiisa.

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

Ka saarida xogta miiska

PostgreSQL

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

Cassandra

Si la mid ah tusaalaha PostgreSQL ee sare.

MongoDB

MongoDB waxay leedahay laba nooc oo hawlgal ah oo lagu tirtirayo dukumeentiyada - DeleteOne() / Tirtir Qaar badan () ΠΈ ka saar (). Labada noocba waxay tirtiraan dukumeenti laakiin waxay soo celiyaan natiijooyin kala duwan.

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

Tirtirka miiska

PostgreSQL

DROP TABLE Music;

Cassandra

Si la mid ah tusaalaha PostgreSQL ee sare.

MongoDB

db.music.drop();

gunaanad

Doodda ku saabsan kala doorashada SQL iyo NoSQL waxay socotay in ka badan 10 sano. Waxaa jira laba arrimood oo muhiim u ah doodan: database engine architecture (monolithic, transactional SQL vs distributed, non-transactional NoSQL) iyo habka naqshadaynta xogta xogta (qaabaynta xogtaada SQL vs qaabaynta su'aalahaaga NoSQL).

Iyada oo la adeegsanayo kaydka xogta macaamil ganacsi ee la qaybiyay sida YugaByte DB, doodda ku saabsan qaab dhismeedka keydka macluumaadka si fudud ayaa loo dejin karaa. Marka mugga xogtu ay ka sii weynaato waxa lagu qori karo hal noode, qaab-dhismeed si buuxda loo qaybiyay oo taageeraya miisaan qorida toosan oo leh jeexid/dib-u-dheellitir toos ah ayaa noqonaysa lama huraan.

Ka sokow, sida lagu sheegay mid ka mid ah maqaallada Google Cloud,Macaamiisha, qaab-dhismeedyada adag ee joogtada ah ayaa hadda aad u badan ,loo isticmaalo in lagu bixiyo kobcinta kobcinta ka fiican marka loo eego kuwa aan macaamil ahayn, , ugu dambeyntii naqshadaha joogtada ah.

U soo noqoshada doodaha naqshadeynta xogta, waa cadaalad in la yiraahdo labada qaab naqshadeynta (SQL iyo NoSQL) waxay lagama maarmaan u yihiin codsi kasta oo kakan ee adduunka dhabta ah. Habka "qaabaynta xogta" ee SQL waxay u ogolaataa horumariyeyaasha inay si sahlan u buuxiyaan shuruudaha ganacsiga ee isbeddelaya, halka habka NoSQL "qaabaynta su'aasha" ay u oggolaanayso horumariyeyaal isku mid ah inay ku shaqeeyaan xog badan oo leh daahitaan hoose iyo soo-saar sare. Waa sababtaas tan YugaByte DB ay bixiso SQL iyo NoSQL API-yada xudunta guud, halkii ay ka horumarin lahaayeen mid ka mid ah hababka. Intaa waxaa dheer, iyadoo la siinayo waafaqsanaanta luqadaha database-ka caanka ah oo ay ku jiraan PostgreSQL iyo Cassandra, YugaByte DB waxay hubisaa in horumariyayaashu aysan ahayn inay bartaan luqad kale si ay ula shaqeeyaan matoorka xogta oo aad u joogto ah oo baahsan.

Maqaalkan, waxaan ku eegnay sida aasaaska naqshadeynta xogta ay uga duwan yihiin PostgreSQL, Cassandra, iyo MongoDB. Maqaallada mustaqbalka, waxaan u dhex geli doonaa fikradaha naqshadeynta horumarsan sida tusmooyinka, wax kala iibsiga, JOINs, dardaaranka TTL, iyo dukumentiyada JSON.

Waxaan kuu rajaynaynaa nasasho wacan oo sabtida ah waxaanan kugu martiqaadaynaa webinar bilaash ah, taasoo dhici doonta 14-ka May.

Source: www.habr.com

Add a comment