Bingehên Design Database - Berhevdana PostgreSQL, Cassandra û MongoDB

Silav hevalno. Berî ku em biçin beşa duyemîn a betlaneyên Gulanê, em bi we re materyalê ku me wergerandine li hêviya destpêkirina qursek nû ya qursê parve dikin. "DBMS Têkilî".

Bingehên Design Database - Berhevdana PostgreSQL, Cassandra û MongoDB

Pêşdebirên serîlêdanê gelek dem derbas dikin da ku gelek databasên xebitandinê bidin ber hev da ku ya ku çêtirîn li gorî bargiraniya xebata armanckirî hilbijêrin hilbijêrin. Dibe ku hewcedarî modela daneya hêsan, garantiyên danûstendinê, performansa xwendin / nivîsandinê, pîvana horizontî, û tolerasyona xeletiyê pêk bînin. Bi kevneşopî, vebijark bi kategoriya databasê, SQL an NoSQL dest pê dike, ji ber ku her kategorî komek eşkere ya bazirganiyê pêşkêşî dike. Performansa bilind di warê derengiya kêm û berbi bilind de bi gelemperî wekî hewcedariyek ne-bazirganî tê dîtin û ji ber vê yekê ji bo databasa nimûneyek pêdivî ye.

Armanca vê gotarê ew e ku ji pêşdebirên serîlêdanê re bibe alîkar ku di çarçoveya modela daneya serîlêdanê de di navbera SQL û NoSQL de bijartina rast bikin. Em ê li yek databasa SQL, ango PostgreSQL, û du databasên NoSQL, Cassandra û MongoDB, binihêrin da ku bingehên sêwirana databasê, wekî çêkirina tabloyan, berhevkirina wan, xwendina daneyan ji tabloyek, û jêbirina wê veşêrin. Di gotara din de, em ê bê guman li index, danûstendin, JOIN, rêwerzên TTL, û sêwirana databasa-based JSON binêrin.

Cûdahiya di navbera SQL û NoSQL de çi ye?

Databasên SQL bi navgîniya garantiyên danûstendinê yên ACID, û hem jî kapasîteya wan a lêpirsîna daneyan bi karanîna JOIN-an bi awayên neçaverêkirî li ser modelên databasa têkiliya normalîzekirî ya heyî zêde dike.

Ji ber mîmariya wan a yekparêz/yek-girêk û karanîna modelek dubarekirina master-xulamê ji bo zêdebûnê, databasên SQL-ya kevneşopî du taybetmendiyên girîng tune - pîvandina nivîsandina xêzik (ango dabeşkirina otomatîkî li ser gelek girêkan) û windabûna daneya otomatîk/sifir. Ev tê wê wateyê ku mîqdara daneya ku hatî wergirtin nikare ji karûbarê nivîsandina herî zêde ya yek girêk derbas bibe. Digel vê yekê, hin windabûna daneya demkî divê di tolerasyona xeletiyê de (di mîmariya hevpar-tiştek) de were hesibandin. Li vir hûn hewce ne ku ji bîr mekin ku kiryarên vê dawiyê hîn di kopiya xulamê de nehatine xuyang kirin. Di databasên SQL de gihandina nûvekirinên ne-dorvekirî jî dijwar e.

Daneyên NoSQL bi gelemperî ji hêla xwezayê ve têne belav kirin, ango. di wan de, dane li ser beşan têne dabeş kirin û li çend girêkan têne belav kirin. Ew hewceyê denormalîzasyonê ne. Ev tê vê wateyê ku daneyên ku hatine navnîş kirin jî divê çend caran bêne kopî kirin da ku bersivê bidin daxwazên taybetî yên ku hûn dişînin. Armanca giştî ew e ku bi kêmkirina hejmara şûşeyên ku di dema xwendinê de peyda dibin performansa bilind bidest bixin. Ev tê vê wateyê ku NoSQL ji we re hewce dike ku hûn pirsên xwe model bikin, dema ku SQL hewce dike ku hûn daneyên xwe model bikin.

NoSQL balê dikişîne ser bidestxistina performansa bilind a di komikek belavkirî de, û ev mentiqa bingehîn e ji bo gelek danûstendinên sêwirana databasê ku windabûna danûstendinê ya ACID, JOIN, û navnîşên navîn ên gerdûnî yên domdar vedihewîne.

Argumanek heye ku dema ku databasên NoSQL pîvana nivîsandina xêzik û tolerasyona xeletiya bilind peyda dikin, windabûna garantiyên danûstendinê wan ji bo daneyên mîsyonê-krîtîk neguncaw dike.

Tabloya jêrîn nîşan dide ka çawa modela daneyê di NoSQL de ji SQL cûda dibe.

Bingehên Design Database - Berhevdana PostgreSQL, Cassandra û MongoDB

SQL û NoSQL: Çima herdu jî hewce ne?

Serlêdanên cîhana rastîn ên bi hejmareke mezin bikarhêneran, wekî Amazon.com, Netflix, Uber, û Airbnb, bi pêkanîna karên tevlihev, pir-alî têne peywirdar kirin. Mînakî, serîlêdanek e-bazirganî ya mîna Amazon.com pêdivî ye ku daneyên sivik, krîtîk ên wekî agahdariya bikarhêner, hilber, ferman, fatûre, digel daneyên giran, kêmtir hesas ên wekî nirxandinên hilberê, peyamên piştgirî, çalakiya bikarhêner, hilîne, nirxandin û pêşniyarên bikarhêner. Bi xwezayî, van serîlêdan bi kêmî ve yek databasa SQL û bi kêmî ve yek databasa NoSQL ve girêdayî ye. Di pergalên cross-herêmî û gerdûnî de, databasek NoSQL ji bo daneyên ku li databasa SQL-ya çavkaniyek pêbawer ku li herêmek taybetî tê xebitandin wekî kaşeyek jeo-belavkirî dixebite.

YugaByte DB SQL û NoSQL çawa li hev dike?

YugaByte DB ku li ser motorek hilanîna tevlihev a têketin-rêveberî, xwerû-parvekirin, dubarekirina lihevhatina belavkirî ya perçekirî û danûstendinên belavkirî yên ACID (ji hêla Google Spanner ve hatî îlhamkirin) hatî çêkirin, YugaByte DB yekem databasa çavkaniya vekirî ya cîhanê ye ku di heman demê de bi NoSQL (Cassandra & Redis) re hevaheng e û SQL (PostgreSQL). Wekî ku di tabloya jêrîn de tê xuyang kirin, YCQL, YugaByte DB API-ya ku bi Cassandra-yê re hevaheng e, têgehên danûstendinên ACID-ê yên yek û pir-kilît û navnîşên navîn ên gerdûnî li NoSQL API-yê zêde dike, bi vî rengî serdema databasên NoSQL-ya danûstendinê vedike. Wekî din, YCQL, YugaByte DB API-ya ku bi PostgreSQL-ê re hevaheng e, têgehên pîvana nivîsandina xêz û tolerasyona xeletiya otomatîkî li API-ya SQL zêde dike, databasên SQL-ê yên belavbûyî tîne cîhanê. Ji ber ku YugaByte DB di xwezaya danûstendinê de ye, NoSQL API naha dikare di çarçoveya daneyên mîsyonê-krîtîk de were bikar anîn.

Bingehên Design Database - Berhevdana PostgreSQL, Cassandra û MongoDB

Wekî ku berê di gotarê de hate gotin "Naskirina YSQL: Ji bo YugaByte DB API-ya Belavkirî ya PostgreSQL ya Hevahengdar e", Hilbijartina di navbera SQL an NoSQL de di YugaByte DB de bi tevahî bi taybetmendiyên barkêşiya xebatê ya bingehîn ve girêdayî ye:

  • Ger xebata weya bingehîn operasyonên JOIN-ê yên pir-kilît e, wê hingê dema ku YSQL hilbijêrin, fêm bikin ku dibe ku bişkojkên we li gelek girêkan werin belav kirin, ku di encamê de derengbûnek bilindtir û / an jî rêgezek ji NoSQL kêmtir dibe.
  • Wekî din, yek ji du NoSQL API-ê hilbijêrin, ji bîr mekin ku hûn ê di encama pirsnameyên ku di yek carî de ji yek girêk têne pêşkêş kirin performansa çêtir bistînin. YugaByte DB dikare ji bo cîhana rastîn, serîlêdanên tevlihev ên ku hewce ne ku bi hevdemî gelek barkêşan birêve bibin wekî databasek xebitandinê ya yekane xizmet bike.

Laboratoriya modela daneyê ya di beşa paşîn de li ser bingehên databasên YugaByte DB-ê yên lihevhatî yên PostgreSQL û Cassandra API-yê ye, berevajî databasên xwemalî. Ev nêzîkatî balê dikişîne ser hêsaniya danûstendina bi du API-yên cihêreng (li ser du portên cihêreng) yên heman komê databasê, berevajî karanîna komên bi tevahî serbixwe yên du databasên cihêreng.
Di beşên jêrîn de, em ê li laboratûara modela daneyê binihêrin da ku cûdahî û hin hevpariyên databasên ku hatine vegirtin destnîşan bikin.

Laboratory Modeling Data

Sazkirina Database

Ji ber giraniya sêwirana modela daneyê (ji bilî mîmarên bicîhkirina tevlihev), em ê databasan di konteynerên Docker-ê de li ser makîneya herêmî saz bikin û dûv re bi wan re bi karanîna şêlên rêza fermanê yên têkildar re têkilî daynin.

Databasa DB ya YugaByte ya bi PostgreSQL & Cassandra re hevaheng e

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

Gihîştina rêza fermanê

Ka em ji bo API-yên têkildar bi karûbarê rêzika fermanê bi databasan ve girêbidin.

PostgreSQL

psql ji bo danûstandina bi PostgreSQL re şêlek rêza fermanê ye. Ji bo hêsan karanînê, YugaByte DB bi psql rast di peldanka bin de tê.

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

Cassandra

cqlsh Ji bo danûstandina bi Cassandra û databasên wê yên lihevhatî re bi navgîniya CQL (Cassandra Query Language). Ji bo karanîna hêsan, YugaByte DB tê cqlsh di katalogê de bin.
Bala xwe bidinê ku CQL ji SQL îlhama xwe girtiye û têgînên mîna tablo, rêz, stûn û indexan hene. Lêbelê, wekî zimanek NoSQL, ew komek hin sînoran zêde dike, ku piraniya wan em ê di gotarên din de jî veşêrin.

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

MongoDB

mongo ji bo danûstandina bi MongoDB re şêlek rêza fermanê ye. Ew dikare di pelrêça bin ya sazkirina MongoDB de were dîtin.

docker exec -it my-mongo bash 
cd bin
mongo

Çêkirina tabloyekê

Naha em dikarin bi databasê re têkilî daynin da ku bi karanîna rêzika fermanê karên cihêreng bikin. Werin em bi çêkirina tabloyek ku agahdariya li ser stranên ku ji hêla hunermendên cihêreng ve hatine nivîsandin de hilîne dest pê bikin. Dibe ku ev stran beşek albûmekê bin. Di heman demê de taybetmendiyên vebijarkî yên ji bo stranek sala berdanê, biha, celeb û nirx in. Pêdivî ye ku em taybetmendiyên din ên ku dibe ku di pêşerojê de hewce bibin bi riya qada "tags" hesab bikin. Ew dikare daneyên nîv-sazkirî di forma cotên key-nirxê de hilîne.

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

Afirandina tabloyek li Cassandra pir dişibihe PostgreSQL. Yek ji cûdahiyên sereke nebûna astengiyên yekitiyê ye (mînak NE NULL), lê ev berpirsiyariya serîlêdanê ye, ne databasa NoSQL. Mifteya bingehîn ji mifteyek dabeşkirinê (di mînaka jêrîn de stûna Hunermend) û komek stûnên komkirinê (di mînaka jêrîn de stûna SongTitle) pêk tê. Bişkojka dabeşkirinê diyar dike ku rêz divê di kîjan dabeşkirinê/parçeyê de were danîn, û stûnên komkirinê destnîşan dikin ka dane çawa divê di hundurê perçeya heyî de were organîze kirin.

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 daneyan di nav databasan de birêxistin dike (Database) (mîna Keyspace li Cassandra), ku li wir Koleksiyonên (wek tabloyan) hene ku Belgeyên (wek rêzên di tabloyê de) dihewîne. Di MongoDB-ê de, di bingeh de ne hewce ye ku nexşeyek destpêkê diyar bike. Kom "Database bikar bînin", li jêr tê xuyang kirin, di banga yekem de databasê destnîşan dike û ji bo databasa ku nû hatî afirandin diguhezîne. Tewra berhevok jî ne hewce ye ku bi eşkereyî werin afirandin; ew bixweber têne afirandin, tenê gava ku hûn belgeya yekem li berhevokek nû zêde bikin. Têbînî ku MongoDB databasa testê ji hêla xwerû ve bikar tîne, ji ber vê yekê her operasyonek di asta berhevokê de bêyî destnîşankirina databasek taybetî dê li ser wê ji hêla xwerû ve were xebitandin.

use myNewDatabase;

Agahdariya li ser tabloyê digirin
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;

Ketina daneyan di tabloyekê de
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

Tevahiya îfade INSERT li Cassandra pir dişibe ya PostgreSQL. Lêbelê, di semantîkê de cûdahiyek mezin heye. Li Cassandra INSERT bi rastî operasyonek e UPSERT, ku heke rêz jixwe hebe nirxên paşîn li rêzê têne zêdekirin.

Têketina daneyê mîna PostgreSQL ye INSERT mezintir

.

MongoDB

Her çend MongoDB databasek NoSQL wekî Cassandra ye, operasyona têketina wê bi tevgera semantîkî ya Cassandra re tiştek hevpar nîne. Li MongoDB lêzêdekirin() derfetên xwe tune UPSERT, ku ew bi PostgreSQL re wekhev dike. Zêdekirina daneyên xwerû bêyî _idspecified dê bibe sedem ku belgeyek nû li berhevokê were zêdekirin.

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

Table Query

Dibe ku cûdahiya herî girîng a di navbera SQL û NoSQL de di warê avakirina pirsê de zimanê ku tê bikar anîn e FROM и WHERE. SQL piştî îfadeyê destûrê dide FROM tabloyên piralî hilbijêre, û îfade bi WHERE dikare ji her tevliheviyek be (tevlî operasyonan JOIN di navbera maseyan de). Lêbelê, NoSQL meyla dike ku li ser sînorkirinek giran ferz bike FROM, û tenê bi tabloyek diyarkirî re bixebitin, û tê de WHERE, divê mifteya bingehîn her dem were diyar kirin. Ev bi pêla performansa NoSQL ve girêdide ku me berê qala wê kiribû. Ev xwestek rê li ber her kêmkirina gengaz di her danûstendina cross-tabular û cross-key de vedike. Ew dikare derengiyek mezin di danûstendina nav-nodê de gava ku bersivê dide daxwazekê destnîşan bike û ji ber vê yekê çêtirîn bi gelemperî tête dûr kirin. Mînakî, Cassandra hewce dike ku pirs ji hin operatoran re bêne sînorkirin (tenê =, IN, <, >, =>, <=) li ser bişkokên dabeşkirinê, ji xeynî dema daxwazkirina navnîşek duyemîn (li vir tenê operator = destûr e).

PostgreSQL

Li jêr sê mînakên pirsan hene ku dikarin bi hêsanî ji hêla databasek SQL ve bêne darve kirin.

  • Hemî stranên hunermendek nîşan bide;
  • Hemî stranên hunermendê ku beşa yekem a sernavê li hev dikin nîşan bidin;
  • Hemî stranên hunermendek ku di sernavê de peyvek diyar heye û bihayê wan ji 1.00 kêmtir e nîşan bidin.
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

Ji pirsên PostgreSQL yên ku li jor hatine navnîş kirin, tenê ya yekem dê li Cassandra neguhêrbar bixebite, ji ber ku operator LIKE nikare ji bo komkirina stûnên wekî SongTitle. Di vê rewşê de, tenê operator destûr in = и 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

Wekî ku di mînakên berê de tê xuyang kirin, rêbaza sereke ji bo afirandina pirsan di MongoDB de ye db.collection.find(). Ev rêbaz bi eşkere navê berhevokê digire (music di mînaka jêrîn de), ji ber vê yekê lêpirsîna gelek berhevokan qedexe ye.

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

Hemî rêzên tabloyê dixwînin

Xwendina hemî rêzan bi tenê rewşek taybetî ya şêwaza pirsê ye ku me berê lê nihêrî.

PostgreSQL

SELECT * 
FROM Music;

Cassandra

Wek mînaka PostgreSQL ya jorîn.

MongoDB

db.music.find( {} );

Guhertina daneyan di tabloyekê de

PostgreSQL

PostgreSQL rêwerzan peyda dike UPDATE ji bo guhertina daneyan. Derfetên wê tune UPSERT, ji ber vê yekê heke rêz êdî di databasê de nebe ev gotin dê têk biçe.

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

Cassandra

Cassandra heye UPDATE mîna PostgreSQL. UPDATE heman semantîk heye UPSERT, wekhev INSERT.

Wek mînaka PostgreSQL ya jorîn.

MongoDB
Operasyon nûvekirin () di MongoDB de dikare bi tevahî belgeyek heyî nûve bike an tenê hin qadan nûve bike. Bi xwerû, ew tenê yek belgeyek ku semantîk neçalakkirî nûve dike UPSERT. Nûvekirina gelek belgeyan û tevgerên wekhev UPSERT dikare bi danîna alên zêde ji bo operasyonê were sepandin. Mînakî, di mînaka jêrîn de, celebê hunermendek taybetî li ser bingeha strana wî tê nûve kirin.

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

Rakirina daneyan ji tabloyê

PostgreSQL

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

Cassandra

Wek mînaka PostgreSQL ya jorîn.

MongoDB

MongoDB du celeb operasyon hene ku belgeyan jêbirin - jêbirinOne() /deleteMeny() и dûrxistin(). Her du celeb belgeyan jêbirin lê encamên cûda vedigerînin.

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

Tabloyek jêbirin

PostgreSQL

DROP TABLE Music;

Cassandra

Wek mînaka PostgreSQL ya jorîn.

MongoDB

db.music.drop();

encamê

Nîqaşa di derbarê hilbijartina di navbera SQL û NoSQL de ji 10 salan zêdetir e ku diqewime. Du aliyên sereke yên vê nîqaşê hene: mîmariya motora databasê (yekdest, danûstendina SQL beramberî belavkirî, NoSQL ne-danûstandin) û nêzîkatiya sêwirana databasê (modelkirina daneya we di SQL beramberî modelkirina pirsên xwe di NoSQL de).

Digel databasek danûstendinê ya dabeşkirî ya mîna YugaByte DB, nîqaşa li ser mîmariya databasê bi hêsanî dikare were sekinandin. Ji ber ku cildên daneyê ji ya ku dikare li yek girêkek yekane were nivîsandin mezintir dibe, mîmariyek bi tevahî belavkirî ya ku bi parvekirina/hevsengkirina otomatîkî piştgirî dide pîvandina nivîsandina xêzkirî hewce dike.

Wekî din, wekî ku di yek ji gotaran de tê gotin Google Cloud, Mîmarên danûstendinê, bi hêz domdar naha bêtir têne bikar anîn ku ji mîmariyên ne-danûstendinê, di dawiyê de domdar, ji bo pêşkeftina pêşkeftina çêtir peyda bikin.

Em vegerin ser nîqaşa sêwirana databasê, rast e ku meriv bêje ku her du nêzîkatiyên sêwiranê (SQL û NoSQL) ji bo her serîlêdana cîhana rastîn a tevlihev hewce ne. Nêzîkatiya "modelkirina daneyê" ya SQL destûrê dide pêşdebiran ku bi hêsanî daxwazên karsaziyê yên guhezbar bicîh bînin, dema ku nêzîkatiya "modelkirina pirsê" ya NoSQL dihêle heman pêşdebiran li ser cildên mezin ên daneyê bi derengiya kêm û berbi zêde bixebitin. Ji ber vê sedemê ye ku YugaByte DB li şûna ku yek ji nêzîkatiyan pêşve bibe, API-yên SQL û NoSQL di bingehek hevpar de peyda dike. Wekî din, bi peydakirina lihevhatina bi zimanên databasên populer ên tevî PostgreSQL û Cassandra re, YugaByte DB piştrast dike ku pêşdebiran ne hewce ye ku zimanek din fêr bibin da ku bi motorek databasê ya belavbûyî, pir domdar re bixebitin.

Di vê gotarê de, me nihêrî ka bingehên sêwirana databasê di navbera PostgreSQL, Cassandra, û MongoDB de çawa cûda dibin. Di gotarên pêşerojê de, em ê li têgehên sêwirana pêşkeftî yên wekî index, danûstandin, JOIN, rêwerzên TTL, û belgeyên JSON bigerin.

Em dawiya hefteyê ji we re mayî dixwazin û we vedixwînin belaş webinar, ku dê di 14ê Gulanê de pêk were.

Source: www.habr.com

Add a comment