Bunúsanna Dearaidh Bunachar Sonraí - Comparáid a dhéanamh idir PostgreSQL, Cassandra agus MongoDB

Dia duit a chairde. Sula bhfágann muid don dara cuid de laethanta saoire na Bealtaine, roinnimid leat an t-ábhar a d’aistrigh muid agus muid ag súil le sruth nua a sheoladh ar an gcúrsa "DBMS coibhneasta".

Bunúsanna Dearaidh Bunachar Sonraí - Comparáid a dhéanamh idir PostgreSQL, Cassandra agus MongoDB

Caitheann forbróirí feidhmchlár go leor ama ag déanamh comparáide idir bunachair shonraí oibríochtúla éagsúla chun an ceann is fearr a oireann don ualach oibre atá beartaithe a roghnú. D’fhéadfadh go n-áireofaí ar na riachtanais samhaltú sonraí simplithe, ráthaíochtaí idirbheartaíochta, feidhmíocht léamh/scríobh, scálú cothrománach, agus lamháltas lochtanna. Go traidisiúnta, tosaíonn an rogha le catagóir an bhunachair shonraí, SQL nó NoSQL, ós rud é go dtugann gach catagóir sraith shoiléir de chomhbhabhtáil. Breathnaítear go ginearálta ar ardfheidhmíocht i dtéarmaí foighne íseal agus tréchur ard mar cheanglas neamh-mhalairte agus mar sin tá sé riachtanach d’aon bhunachar sonraí samplach.

Is é cuspóir an ailt seo cabhrú le forbróirí feidhmchlár an rogha ceart a dhéanamh idir SQL agus NoSQL i gcomhthéacs samhaltú sonraí feidhmchláir. Breathnóimid ar bhunachar sonraí SQL amháin, eadhon PostgreSQL, agus dhá bhunachar sonraí NoSQL, Cassandra agus MongoDB, chun bunghnéithe dearadh bunachar sonraí a chlúdach, mar shampla táblaí a chruthú, iad a líonadh, sonraí a léamh ó thábla, agus é a scriosadh. Sa chéad alt eile, beidh muid cinnte breathnú ar innéacsanna, idirbhearta, JOINs, treoracha TTL, agus dearadh bunachar sonraí bunaithe ar JSON.

Cad é an difríocht idir SQL agus NoSQL?

Méadaíonn bunachair shonraí SQL solúbthacht feidhmchlár trí ráthaíochtaí idirbheartaíochta ACID, chomh maith lena gcumas chun sonraí a fhiosrú ag baint úsáide as JOINs ar bhealaí gan choinne anuas ar mhúnlaí gnáthbhunachar sonraí coibhneasta atá ann cheana féin.

Mar gheall ar a n-ailtireacht mhonailiteach/nóid singil agus an úsáid a bhaintear as múnla macasamhlú máistir-sclábhaí le haghaidh iomarcaíochta, tá dhá ghné thábhachtacha in easnamh ar bhunachair shonraí traidisiúnta SQL - inscálaitheacht líneach na scríobh (i.e. deighilt uathoibríoch thar nóid iolracha) agus caillteanas sonraí uathoibríoch/nialasach. Ciallaíonn sé seo nach féidir leis an méid sonraí a fhaightear a bheith níos mó ná an t-uasthréchur scríofa de nód amháin. Ina theannta sin, ní mór roinnt caillteanas sonraí sealadach a chur san áireamh i lamháltas lochtanna (i ailtireacht roinnte-rud ar bith). Anseo ní mór duit a choinneáil i gcuimhne nach bhfuil gealltanais le déanaí léirithe go fóill sa chóip sclábhaithe. Tá sé deacair nuashonruithe neamh-aga aga a bhaint amach i mbunachair shonraí SQL freisin.

Is gnách bunachair shonraí NoSQL a dháileadh de réir nádúr, i.e. iontu, roinntear na sonraí i gcodanna agus déantar iad a dháileadh thar roinnt nóid. Éilíonn siad denormalization. Ciallaíonn sé seo nach mór na sonraí a cuireadh isteach a chóipeáil arís agus arís eile chun freagairt do na hiarratais shonracha a sheolann tú. Is é an sprioc foriomlán ná ardfheidhmíocht a bhaint amach trí líon na mballaí atá ar fáil le linn léamha a laghdú. Tugann sé seo le tuiscint go n-éilíonn NoSQL ort do cheisteanna a shamhaltú, agus éilíonn SQL ort do shonraí a shamhaltú.

Díríonn NoSQL ar ardfheidhmíocht a bhaint amach i mbraisle dáilte agus is é seo an réasúnaíocht bhunúsach do go leor malairtí dearaidh bunachar sonraí lena n-áirítear caillteanas idirbheart ACID, JOINs, agus innéacsanna tánaisteacha comhsheasmhacha domhanda.

Tá argóint ann, cé go soláthraíonn bunachair shonraí NoSQL scalability scríofa líneach agus lamháltas ard locht, go bhfágann caillteanas ráthaíochtaí idirbheartaíochta iad mí-oiriúnach do shonraí misean-criticiúla.

Léiríonn an tábla seo a leanas an difríocht idir samhaltú sonraí i NoSQL agus SQL.

Bunúsanna Dearaidh Bunachar Sonraí - Comparáid a dhéanamh idir PostgreSQL, Cassandra agus MongoDB

SQL agus NoSQL: Cén fáth a bhfuil gá leis an dá cheann?

Tá sé de chúram ar fheidhmchláir fhíorshaolacha a bhfuil líon mór úsáideoirí acu, mar Amazon.com, Netflix, Uber, agus Airbnb tascanna casta, ilghnéitheacha a dhéanamh. Mar shampla, ní mór d’fheidhmchlár ríomhthráchtála cosúil le Amazon.com sonraí éadroma, ardchriticiúil a stóráil amhail faisnéis úsáideora, táirgí, orduithe, sonraisc, mar aon le sonraí troma nach bhfuil chomh híogair sin mar léirmheasanna ar tháirgí, teachtaireachtaí tacaíochta, gníomhaíocht úsáideora, athbhreithnithe agus moltaí úsáideoirí. Ar ndóigh, braitheann na feidhmchláir seo ar bhunachar sonraí SQL amháin ar a laghad mar aon le bunachar sonraí NoSQL amháin ar a laghad. I gcórais thras-réigiúnacha agus dhomhanda, feidhmíonn bunachar sonraí NoSQL mar thaisce geo-dháilte le haghaidh sonraí atá stóráilte i mbunachar sonraí SQL foinse iontaofa a ritheann i réigiún amháin.

Conas a chomhcheanglaíonn YugaByte DB SQL agus NoSQL?

Tógtha ar inneall stórála measctha log-dhírithe, auto-sharding, macasamhlú comhdhearcadh scaipthe bearrtha agus idirbhearta dáilte ACID (spreagtha ag Google Spanner), is é YugaByte DB an chéad bhunachar sonraí foinse oscailte ar domhan atá ag luí go comhuaineach le NoSQL (Cassandra & Redis ) agus SQL (PostgreSQL). Mar a léirítear sa tábla thíos, cuireann YCQL, an YugaByte DB API atá comhoiriúnach le Cassandra, coincheapa na n-idirbheart ACID aonair agus il-eochair agus innéacsanna tánaisteacha domhanda leis an NoSQL API, rud a thugann isteach ré na mbunachair sonraí idirbheartaíochta NoSQL. Ina theannta sin, cuireann YCQL, an YugaByte DB API atá comhoiriúnach le PostgreSQL, na coincheapa maidir le scálú scríobh líneach agus lamháltas locht uathoibríoch leis an SQL API, ag tabhairt bunachair shonraí SQL dáilte don domhan. Toisc go bhfuil YugaByte DB idirbheartaíochta i nádúr, is féidir an NoSQL API a úsáid anois i gcomhthéacs na sonraí misean-criticiúla.

Bunúsanna Dearaidh Bunachar Sonraí - Comparáid a dhéanamh idir PostgreSQL, Cassandra agus MongoDB

Mar a dúradh cheana san alt "Ag tabhairt isteach YSQL: API SQL Dáilte Comhoiriúnach PostgreSQL do YugaByte DB", braitheann an rogha idir SQL nó NoSQL in YugaByte DB go hiomlán ar shaintréithe an ualaigh oibre bhunúsach:

  • Más oibríochtaí JOIN il-eochair do phríomh-ualach oibre, ansin agus YSQL á roghnú agat, tuig go bhféadfaí d'eochracha a dháileadh thar nóid iolracha, rud a fhágann go mbeidh latency níos airde agus/nó tréchur níos ísle ná NoSQL.
  • Seachas sin, roghnaigh ceachtar den dá API NoSQL, ag cuimhneamh go bhfaighidh tú feidhmíocht níos fearr mar thoradh ar fhiosrúcháin a sheirbheáiltear ó nód amháin ag an am. Is féidir le YugaByte DB feidhmiú mar bhunachar sonraí oibríochta aonair le haghaidh feidhmchláir chasta sa saol fíor a bhfuil gá leo il-ualaí oibre a bhainistiú go comhuaineach.

Tá an tsaotharlann samhaltaithe Sonraí sa chéad chuid eile bunaithe ar bhunachair shonraí YugaByte DB atá comhoiriúnach le API PostgreSQL agus Cassandra, seachas bunachair shonraí dúchais. Cuireann an cur chuige seo béim ar a éascaíocht a bhaineann le hidirghníomhú le dhá API éagsúla (ar dhá chalafort dhifriúla) den bhraisle bunachar sonraí céanna, seachas úsáid a bhaint as braislí go hiomlán neamhspleách de dhá bhunachar sonraí éagsúla.
Sna hailt seo a leanas, féachfaimid ar an saotharlann samhaltaithe sonraí chun na difríochtaí agus roinnt de na comóntachtaí a bhaineann leis na bunachair shonraí atá clúdaithe a léiriú.

Saotharlann Samhaltú Sonraí

Suiteáil bunachar sonraí

I bhfianaise na béime ar dhearadh múnla sonraí (seachas ailtireachtaí imlonnaithe casta), cuirfimid bunachair shonraí i gcoimeádáin Docker ar an meaisín áitiúil agus ansin idirghníomhóimid leo ag baint úsáide as a sliogáin orduithe faoi seach.

Bunachar sonraí DB YugaByte atá comhoiriúnach le PostgreSQL & Cassandra

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

Rochtain líne ordaithe

Déanaimis nascadh leis na bunachair shonraí ag baint úsáide as an bhlaosc ordaithe do na APIanna comhfhreagracha.

PostgreSQL

psql Is sliogán ordú é chun idirghníomhú le PostgreSQL. Ar mhaithe le héascaíocht, tagann YugaByte DB le psql ceart san fhillteán araid.

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

Cassandra

cqlsh Is sliogán ordú é chun idirghníomhú le Cassandra agus a bhunachair shonraí comhoiriúnacha trí CQL (Teanga Iarratas Cassandra). Ar mhaithe le héascaíocht, tagann YugaByte DB leis cqlsh sa chatalóg bin.
Tabhair faoi deara gur spreag SQL CQL agus go bhfuil coincheapa comhchosúla de tháblaí, sraitheanna, colúin agus innéacsanna aige. Mar theanga NoSQL, áfach, cuireann sé sraith áirithe teorainneacha leis, agus clúdóimid an chuid is mó díobh in ailt eile freisin.

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

MongoDB

Mongo Is sliogán ordú é chun idirghníomhú le MongoDB. Is féidir é a fháil san eolaire boscaí bruscair de shuiteáil MongoDB.

docker exec -it my-mongo bash 
cd bin
mongo

Cruthaigh tábla

Anois is féidir linn idirghníomhú leis an mbunachar sonraí chun oibríochtaí éagsúla a dhéanamh ag baint úsáide as an líne ordaithe. Tosaímid le tábla a chruthú a stórálann faisnéis faoi amhráin a scríobh ealaíontóirí éagsúla. Féadfaidh na hamhráin seo a bheith mar chuid de albam. Chomh maith leis sin is iad na tréithe roghnacha d’amhrán ná bliain eisithe, praghas, seánra agus rátáil. Ní mór dúinn cuntas a thabhairt ar tréithe breise a d'fhéadfadh a bheith ag teastáil sa todhchaí tríd an réimse "clibeanna". Is féidir leis sonraí leath-struchtúrtha a stóráil i bhfoirm péirí eochairluacha.

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

Tá cruthú tábla i Cassandra an-chosúil le PostgreSQL. Ceann de na príomhdhifríochtaí is ea an easpa srianta sláine (m.sh. NOT NULL), ach is é seo atá freagrach as an bhfeidhmchlár, ní bunachar sonraí NoSQL. Is éard atá sa phríomheochair ná eochair deighilte (an colún Ealaíontóir sa sampla thíos) agus sraith de cholúin bhraisliúcháin (colún SongTitle sa sampla thíos). Cinneann an eochair dheighilt cén deighilt/shard ar cheart an tsraith a chur isteach ann, agus léiríonn na colúin chnuasaithe conas ba cheart na sonraí a eagrú laistigh den shard reatha.

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

Eagraíonn MongoDB sonraí i mbunachair shonraí (Bunachar Sonraí) (cosúil le Keyspace in Cassandra), áit a bhfuil Bailiúcháin (cosúil le táblaí) ina bhfuil Doiciméid (cosúil le sraitheanna i dtábla). I MongoDB, níl aon ghá go bunúsach le scéimre tosaigh a shainiú. Foireann "bunachair sonraí úsáide", a thaispeántar thíos, cuireann sé an bunachar sonraí ar an gcéad ghlao ar an toirt agus athraíonn sé comhthéacs an bhunachar sonraí nuachruthaithe. Ní gá fiú bailiúcháin a chruthú go sainráite; cruthaítear iad go huathoibríoch, go simplí nuair a chuireann tú an chéad doiciméad le bailiúchán nua. Tabhair faoi deara go n-úsáideann MongoDB an bunachar sonraí tástála de réir réamhshocraithe, mar sin rithfidh aon oibríocht ar leibhéal an bhailiúcháin gan bunachar sonraí ar leith a shonrú air de réir réamhshocraithe.

use myNewDatabase;

Eolas a fháil faoi tábla
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;

Sonraí a chur isteach i dtábla
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

Léiriú foriomlán INSERT i Cassandra tá cuma an-chosúil leis sin in PostgreSQL. Mar sin féin, tá difríocht mhór amháin i semantics. I gCassandra INSERT i ndáiríre oibríocht UPSERT, áit a gcuirtear na luachanna deiridh leis an tsraith má tá an tsraith ann cheana féin.

Tá iontráil sonraí cosúil le PostgreSQL INSERT thuas

.

MongoDB

Cé gur bunachar sonraí NoSQL é MongoDB cosúil le Cassandra, níl aon rud i gcoiteann ag a oibríocht ionsáite agus iompar séimeantach Cassandra. I MongoDB cuir isteach () nach bhfuil aon deiseanna UPSERT, rud a fhágann go bhfuil sé cosúil le PostgreSQL. Ag cur sonraí réamhshocraithe gan _idspecified cuirfidh sé faoi deara doiciméad nua a chur leis an mbailiúchán.

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

Iarratas Tábla

B’fhéidir gurb é an difríocht is suntasaí idir SQL agus NoSQL ó thaobh tógáil fiosrúcháin ná an teanga a úsáidtear FROM и WHERE. Ceadaíonn SQL tar éis léiriú FROM roghnaigh táblaí iolracha, agus slonn le WHERE is féidir leis a bheith ar aon chastacht (lena n-áirítear oibríochtaí JOIN idir táblaí). Mar sin féin, tá claonadh ag NoSQL srian mór a chur ar FROM, agus oibriú le tábla sonraithe amháin, agus isteach WHERE, ní mór an eochair bunscoile a shonrú i gcónaí. Ceanglaíonn sé seo le brú feidhmíochta NoSQL ar labhair muid faoi níos luaithe. Is é an toradh a bhíonn ar an dúil seo ná gach laghdú féideartha ar aon idirghníomhaíocht tras-táblaí agus tras-eochair. Féadfaidh sé moill mhór a chur ar chumarsáid idirnóid agus freagra á tabhairt ar iarratas agus mar sin is fearr é a sheachaint go ginearálta. Mar shampla, éilíonn Cassandra go mbeadh fiosruithe teoranta d’oibreoirí áirithe (amháin =, IN, <, >, =>, <=) ar eochracha deighilte, ach amháin nuair a iarrtar innéacs tánaisteach (ní cheadaítear ach an t-oibreoir = anseo).

PostgreSQL

Seo thíos trí shampla de cheisteanna ar féidir le bunachar sonraí SQL a chur i gcrích go héasca.

  • Taispeáin gach amhrán ag ealaíontóir;
  • Taispeáin gach amhrán ón ealaíontóir a mheaitseálann an chéad chuid den teideal;
  • Taispeáin gach amhrán ó ealaíontóir a bhfuil focal áirithe sa teideal agus a bhfuil praghas níos lú ná 1.00 orthu.
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

As na fiosrúcháin PostgreSQL atá liostaithe thuas, ní oibreoidh ach an chéad cheann gan athrú i Cassandra, ós rud é go bhfuil an t-oibreoir LIKE ní féidir é a chur i bhfeidhm ar cholúin bhraisliú mar SongTitle. Sa chás seo, ní cheadaítear ach oibreoirí = и 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

Mar a léiríodh sna samplaí roimhe seo, is é an príomh-mhodh chun fiosrúcháin a chruthú i MongoDB db.collection.find(). Cuimsíonn an modh seo go sainráite ainm an bhailiúcháin (music sa sampla thíos), mar sin tá cosc ​​ar il-bhailiúcháin a cheistiú.

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

Léamh gach sraith tábla

Is cás speisialta den phatrún fiosrúcháin a d’fhéachamar air níos luaithe é gach sraith a léamh.

PostgreSQL

SELECT * 
FROM Music;

Cassandra

Cosúil leis an sampla PostgreSQL thuas.

MongoDB

db.music.find( {} );

Sonraí a chur in eagar i dtábla

PostgreSQL

Soláthraíonn PostgreSQL treoracha UPDATE chun sonraí a athrú. Níl aon deiseanna aici UPSERT, mar sin teipfidh an ráiteas seo mura bhfuil an tsraith sa bhunachar sonraí a thuilleadh.

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

Cassandra

Tá ag Cassandra UPDATE cosúil le PostgreSQL. UPDATE tá an shéimeantaic chéanna aige UPSERT, cosúil INSERT.

Cosúil leis an sampla PostgreSQL thuas.

MongoDB
Oibríocht nuashonrú () i MongoDB is féidir le doiciméad atá ann cheana féin a nuashonrú go hiomlán nó gan ach réimsí áirithe a nuashonrú. De réir réamhshocraithe, ní nuashonraíonn sé ach doiciméad amháin a bhfuil séimeantaic díchumasaithe air UPSERT. Nuashonrú doiciméad iolrach agus iompar den chineál céanna UPSERT Is féidir é a chur i bhfeidhm trí bhratacha breise a leagan síos don oibríocht. Mar shampla, sa sampla thíos, déantar seánra ealaíontóra ar leith a nuashonrú bunaithe ar a amhrán.

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

Sonraí a bhaint as tábla

PostgreSQL

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

Cassandra

Cosúil leis an sampla PostgreSQL thuas.

MongoDB

Tá dhá chineál oibríochta ag MongoDB chun doiciméid a scriosadh − scrios a hAon() /scrios go leor() и bain (). Scriosann an dá chineál doiciméid ach tugann siad torthaí éagsúla ar ais.

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

Tábla á scriosadh

PostgreSQL

DROP TABLE Music;

Cassandra

Cosúil leis an sampla PostgreSQL thuas.

MongoDB

db.music.drop();

Conclúid

Tá an díospóireacht faoi roghnú idir SQL agus NoSQL ar siúl le breis agus 10 mbliana anuas. Tá dhá phríomhghné ag baint leis an díospóireacht seo: ailtireacht inneall bunachar sonraí (moniliteach, SQL idirbheartaíochta vs dáilte, NoSQL neamh-idirbheart) agus cur chuige dearadh bunachar sonraí (do shonraí a shamhaltú in SQL vs do cheisteanna a shamhaltú in NoSQL).

Le bunachar sonraí dáilte idirbheartaíochta cosúil le YugaByte DB, is féidir an díospóireacht faoi ailtireacht bunachar sonraí a chur ar ceal go héasca. De réir mar a éiríonn méideanna sonraí níos mó ná an méid is féidir a scríobh chuig aon nód amháin, beidh gá le hailtireacht iomlán dáilte a thacaíonn le hinscálaitheacht na scríbhneoireachta líneach agus le bearrtha/athchothromú uathoibríoch.

Thairis sin, mar a dúradh i gceann de na hailt Google Cloud,Baintear úsáid níos mó anois as ailtireachtaí idirghníomhacha, atá comhsheasmhach go láidir, chun aclaíocht forbartha níos fearr a sholáthar ná ailtireachtaí neamh-idirbhearta, atá comhsheasmhach sa deireadh.

Ag filleadh ar an bplé ar dhearadh an bhunachair shonraí, is cóir a rá go bhfuil an dá chur chuige dearaidh (SQL agus NoSQL) riachtanach le haghaidh aon fheidhmchláir chasta sa domhan. Ligeann cur chuige "samhaltú sonraí" SQL d'fhorbróirí freastal níos éasca ar riachtanais ghnó athraitheacha, agus ceadaíonn an cur chuige "samhaltú fiosrúcháin" NoSQL do na forbróirí céanna oibriú ar líon mór sonraí gan mhoill íseal agus tréchur ard. Is ar an gcúis seo a sholáthraíonn YugaByte DB API SQL agus NoSQL i gcroílár coiteann, seachas ceann de na cineálacha cur chuige a chur chun cinn. Ina theannta sin, trí chomhoiriúnacht a sholáthar do theangacha bunachar sonraí móréilimh lena n-áirítear PostgreSQL agus Cassandra, cinntíonn YugaByte DB nach gcaithfidh forbróirí teanga eile a fhoghlaim chun oibriú le hinneall bunachar sonraí dáilte, an-chomhsheasmhach.

San Airteagal seo, d'fhéachamar ar an gcaoi a bhfuil difríocht idir bunúsacha dearaidh bunachar sonraí idir PostgreSQL, Cassandra, agus MongoDB. In ailt amach anseo, tumfaimid isteach i gcoincheapa arddearaidh amhail innéacsanna, idirbhearta, JOINs, treoracha TTL, agus doiciméid JSON.

Guímid scíth iontach den deireadh seachtaine duit agus tugaimid cuireadh duit teacht webinar saor in aisce, a bheidh ar siúl ar an 14 Bealtaine.

Foinse: will.com

Add a comment