Aloha mai e nā hoa. Ma mua o ka haʻalele ʻana no ka ʻāpana ʻelua o nā lā hoʻomaha o Mei, ke hōʻike aku nei mākou iā ʻoe i nā mea a mākou i unuhi ai no ka hoʻomaka ʻana o kahi kahawai hou ma ka papa.
Hoʻohana nui nā mea hoʻomohala noi i ka manawa e hoʻohālikelike ai i nā ʻikepili hana he nui e koho i ka mea i kūpono loa i ka hana i manaʻo ʻia. Hiki i nā pono ke komo i ka hoʻohālike ʻikepili maʻalahi, nā hōʻoiaʻiʻo kālepa, ka hana heluhelu/kākau, ka hoʻonui ʻana i ka pae, a me ka hoʻomanawanui hewa. ʻO ka mea maʻamau, hoʻomaka ka koho me ka ʻāpana waihona, SQL a i ʻole NoSQL, no ka mea e hōʻike ana kēlā me kēia ʻāpana i kahi hoʻonohonoho o nā kālepa. ʻIke ʻia ka hana kiʻekiʻe ma ke ʻano o ka latency haʻahaʻa a me ka throughput kiʻekiʻe ma ke ʻano he koi kūʻai ʻole a no laila pono ia no kēlā me kēia waihona waihona.
ʻO ke kumu o kēia ʻatikala e kōkua i nā mea hoʻomohala noi e hana i ka koho kūpono ma waena o SQL a me NoSQL i ka pōʻaiapili o ka hoʻohālikelike ʻikepili noi. E nānā mākou i hoʻokahi waihona SQL, ʻo ia hoʻi ʻo PostgreSQL, a me ʻelua mau waihona NoSQL, ʻo Cassandra a me MongoDB, e uhi i nā kumu kumu o ka hoʻolālā ʻikepili, e like me ka hana ʻana i nā papa, hoʻonui iā lākou, heluhelu i ka ʻikepili mai kahi papaʻaina, a me ka holoi ʻana. Ma ka ʻatikala aʻe, e ʻike mākou e nānā i nā indexes, transactions, JOINs, TTL directives, a me JSON-based database design.
He aha ka ʻokoʻa ma waena o SQL a me NoSQL?
Hoʻonui ka ʻikepili SQL i ka maʻalahi o ka noi ma o ka ACID transactional guarantees, a me ko lākou hiki ke nīnau i ka ʻikepili me ka hoʻohana ʻana i nā JOIN ma nā ala i manaʻo ʻole ʻia ma luna o nā hiʻohiʻona ʻikepili relational maʻamau.
Hāʻawi ʻia i kā lākou hoʻolālā monolithic/node hoʻokahi a me ka hoʻohana ʻana i kahi kumu hoʻohālike haku-kauā no ka redundancy, nele nā ʻikepili SQL kuʻuna ʻelua mau hiʻohiʻona nui - linear write scalability (ʻo ia hoʻi. ʻO ia ke ʻano o ka nui o ka ʻikepili i loaʻa ʻaʻole hiki ke ʻoi aku ma mua o ka helu helu helu kiʻekiʻe o hoʻokahi node. Eia kekahi, pono e noʻonoʻo ʻia kekahi nalowale o ka ʻikepili no ka hoʻomanawanui hewa (ma kahi hoʻolālā like ʻole). Pono ʻoe e hoʻomanaʻo ʻaʻole i ʻike ʻia nā hana hou i ke kope kauā. He mea paʻakikī hoʻi ka hoʻokō ʻana i nā hōʻano hou non-downtime ma nā ʻikepili SQL.
Hāʻawi pinepine ʻia nā ʻikepili NoSQL e ke ʻano, ʻo ia hoʻi. i loko o ia mau mea, ua māhele ʻia ka ʻikepili i nā ʻāpana a puʻunaue ʻia ma nā nodes. Pono lākou i ka denormalization. 'O ia ho'i, pono e kope 'ia ka 'ikepili i ho'okomo 'ia e pane i nā noi kiko'ī āu e ho'ouna ai. ʻO ka pahuhopu holoʻokoʻa ka loaʻa ʻana o ka hana kiʻekiʻe ma ka hōʻemi ʻana i ka nui o nā shards i loaʻa i ka wā heluhelu. Hōʻike kēia e koi ʻo NoSQL iā ʻoe e hoʻohālike i kāu mau nīnau, ʻoiai koi ʻo SQL iā ʻoe e hoʻohālike i kāu ʻikepili.
Hoʻokumu ʻo NoSQL i ka loaʻa ʻana o ka hana kiʻekiʻe i loko o kahi puʻupuʻu puʻupuʻu a ʻo ia ke kumu kumu kumu no ka nui o nā kālepa hoʻolālā waihona waihona e komo pū ana me ka nalowale o ke kālepa ACID, JOINs, a me nā ʻōlelo kuhikuhi lua honua.
Aia kekahi hoʻopaʻapaʻa ʻoiai ʻo ka ʻikepili NoSQL e hāʻawi i ka scalability kākau laina a me ka hoʻomanawanui hewa kiʻekiʻe, ʻo ka nalowale o nā hōʻoia transactional e kūpono ʻole iā lākou no ka ʻikepili koʻikoʻi.
Hōʻike ka papa ma lalo i ka ʻokoʻa o ka hoʻohālikelike ʻikepili ma NoSQL mai SQL.
SQL a me NoSQL: No ke aha e pono ai ʻelua?
ʻO nā noi honua maoli me nā heluna nui o nā mea hoʻohana, e like me Amazon.com, Netflix, Uber, a me Airbnb, ua hana ʻia me ka hana paʻakikī a me nā hana he nui. No ka laʻana, pono e mālama i kahi palapala e-commerce e like me Amazon.com e mālama i ka ʻikepili māmā a koʻikoʻi e like me ka ʻike mea hoʻohana, nā huahana, nā kauoha, nā invoices, me nā ʻikepili koʻikoʻi a liʻiliʻi e like me nā loiloi huahana, nā leka kākoʻo , ka hana mea hoʻohana, nā manaʻo hoʻohana a me nā manaʻo. Ma keʻano maʻamau, hilinaʻi kēia mau noi ma kahi liʻiliʻi hoʻokahi waihona SQL me ka liʻiliʻi hoʻokahi waihona NoSQL. Ma nā ʻōnaehana cross-regional a me ka honua holoʻokoʻa, hoʻohana ʻia kahi waihona NoSQL ma ke ʻano he geo-distributed cache no ka ʻikepili i mālama ʻia ma kahi kumu hilinaʻi SQL database e holo ana ma kahi ʻāpana.
Pehea e hui pū ai ʻo YugaByte DB iā SQL a me NoSQL?
Hoʻokumu ʻia ma luna o kahi ʻenekini hoʻopaʻa ʻana i ka log-oriented, auto-sharding, sharded distributed consensus replication a me ACID distributed transactions (hoʻoulu ʻia e Google Spanner), ʻo YugaByte DB ʻo ia ka ʻikepili kumu wehe mua o ka honua i hoʻohālikelike ʻia me NoSQL (Cassandra & Redis) a SQL (PostgreSQL). E like me ka mea i hōʻike ʻia ma ka papa ma lalo nei, YCQL, ka YugaByte DB API e pili ana me Cassandra, hoʻohui i nā manaʻo o nā hana ACID hoʻokahi a me nā kī nui a me nā helu helu lua honua i ka NoSQL API, a laila e hoʻomaka ai i ke au o nā ʻikepili NoSQL transactional. Hoʻohui hou, YCQL, ka YugaByte DB API kūpono me PostgreSQL, hoʻohui i nā manaʻo o ka linear write scaling a me ka hoʻomanawanui hewa ʻana i ka SQL API, e lawe mai ana i nā ʻikepili SQL i hāʻawi ʻia i ka honua. No ka mea he transactional ʻo YugaByte DB, hiki ke hoʻohana ʻia ka NoSQL API i ka pōʻaiapili o ka ʻikepili koʻikoʻi.
E like me ka mea i hōʻike mua ʻia ma ka ʻatikala
- Inā ʻo kāu haʻahaʻa hana mua he mau kī nui JOIN, a laila, i ke koho ʻana iā YSQL, e hoʻomaopopo ʻoe hiki ke puʻunaue ʻia kāu mau kī ma nā node he nui, e hopena i ka latency kiʻekiʻe a/a i ʻole ka haʻahaʻa haʻahaʻa ma mua o NoSQL.
- A i ʻole, e koho i kekahi o nā API NoSQL ʻelua, me ka hoʻomanaʻo e loaʻa iā ʻoe ka hana ʻoi aku ka maikaʻi ma muli o nā nīnau i lawelawe ʻia mai hoʻokahi node i ka manawa. Hiki i ka YugaByte DB ke lawelawe ma ke ʻano he ʻikepili hana hoʻokahi no ka honua maoli, nā noi paʻakikī e pono e hoʻokele i nā hana he nui i ka manawa like.
Hoʻokumu ʻia ke keʻena hoʻohālike ʻikepili ma ka ʻāpana aʻe ma luna o PostgreSQL a me Cassandra API kūpono ʻo YugaByte DB ʻikepili, e kū'ē ana i nā ʻikepili maoli. Hoʻoikaika kēia ala i ka maʻalahi o ka launa pū ʻana me ʻelua API like ʻole (ma nā awa ʻelua ʻokoʻa) o ka pūʻulu waihona waihona like, e kū'ē i ka hoʻohana ʻana i nā pūʻulu kūʻokoʻa o nā waihona ʻikepili ʻelua.
Ma nā ʻāpana aʻe, e nānā mākou i ke keʻena hoʻohālike ʻikepili e hōʻike i nā ʻokoʻa a me kekahi o nā mea maʻamau o nā ʻikepili i uhi ʻia.
Hale Hana Hoʻohālike Ikepili
Hoʻokomo ʻikepili
Hāʻawi ʻia i ka manaʻo nui i ka hoʻolālā hoʻohālike ʻikepili (ma mua o ka hoʻolālā hoʻonohonoho paʻakikī), e hoʻokomo mākou i nā ʻikepili i loko o nā pahu Docker ma ka mīkini kūloko a laila e launa pū me lākou me ka hoʻohana ʻana i kā lākou mau laina kauoha.
PostgreSQL & Cassandra pili i ka waihona 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
ʻO MongoDB
docker run --name my-mongo -d mongo:latest
Ke komo laina kauoha
E hoʻopili kākou i nā ʻikepili me ka hoʻohana ʻana i ka shell line command no nā API pili.
PostgreSQL
docker exec -it yb-postgres-n1 /home/yugabyte/postgres/bin/psql -p 5433 -U postgres
Cassandra
cqlsh
i ka papa kuhikuhi bin
.
E hoʻomaopopo ua hoʻoikaika ʻia ʻo CQL e SQL a loaʻa nā manaʻo like o nā papa, nā lālani, nā kolamu a me nā kuhikuhi. Eia naʻe, ma ke ʻano he ʻōlelo NoSQL, hoʻohui ia i kekahi mau palena, ʻo ka hapa nui a mākou e uhi ai i nā ʻatikala ʻē aʻe.
docker exec -it yb-tserver-n1 /home/yugabyte/bin/cqlsh
ʻO MongoDB
docker exec -it my-mongo bash
cd bin
mongo
Hana i papaʻaina
I kēia manawa hiki iā mākou ke launa pū me ka waihona e hana i nā hana like ʻole me ka hoʻohana ʻana i ka laina kauoha. E hoʻomaka kākou ma ka hana ʻana i papa e mālama ai i nā ʻike e pili ana i nā mele i kākau ʻia e nā mea pena like ʻole. He ʻāpana paha kēia mau mele o kahi album. ʻO nā hiʻohiʻona koho no kahi mele ka makahiki o ka hoʻokuʻu ʻana, ke kumu kūʻai, ke ʻano a me ka helu. Pono mākou e helu no nā ʻano ʻē aʻe e pono ai i ka wā e hiki mai ana ma o ke kahua "tags". Hiki iā ia ke mālama i nā ʻikepili semi-structured ma ke ʻano o nā hui waiwai kī.
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
ʻO ka hana ʻana i kahi papaʻaina ma Cassandra ua like loa me PostgreSQL. ʻO kekahi o nā ʻokoʻa nui ʻo ka nele o nā kaohi pono (e like me NOT NULL), akā ʻo kēia ke kuleana o ka noi, ʻaʻole ka waihona NoSQL.. ʻO ke kī mua he kī pākī (ke kolamu Artist ma ka laʻana ma lalo) a me kahi pūʻulu kolamu hui pū (ke kolamu SongTitle ma ka laʻana ma lalo). Hoʻoholo ke kī pākī i ka ʻāpana/shard e hoʻokomo ʻia ai ka lālani, a hōʻike nā kolamu clustering pehea e hoʻonohonoho ʻia ai ka ʻikepili i loko o ka shard o kēia manawa.
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)
);
ʻO MongoDB
Hoʻonohonoho ʻo MongoDB i nā ʻikepili i loko o nā waihona (Database) (e like me Keyspace ma Cassandra), kahi i loaʻa ai nā Kohi (e like me nā papa) i loaʻa nā Palapala (e like me nā lālani i ka papaʻaina). Ma MongoDB, ʻaʻohe pono e wehewehe i kahi schema mua. Hui "hoʻohana i ka waihona", i hōʻike ʻia ma lalo nei, hoʻopuka koke i ka waihona ma ke kelepona mua a hoʻololi i ka pōʻaiapili no ka ʻikepili i hana hou ʻia. ʻAʻole pono e hana maʻalahi nā hōʻiliʻili; hana ʻia lākou, ke hoʻohui wale ʻoe i ka palapala mua i kahi hōʻiliʻili hou. E hoʻomaopopo i ka hoʻohana ʻana o MongoDB i ka ʻikepili hoʻāʻo ma ke ʻano maʻamau, no laila, e holo ma luna o kēlā me kēia hana pae ʻohi me ka ʻole o ka wehewehe ʻana i kahi waihona kikoʻī.
use myNewDatabase;
Loaʻa ka ʻike e pili ana i kahi pākaukau
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'};
ʻO MongoDB
use myNewDatabase;
show collections;
Ke hoʻokomo nei i ka ʻikepili i loko o ka pākaukau
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
ʻŌlelo holoʻokoʻa INSERT
ma Cassandra ua like loa me ka PostgreSQL. Eia naʻe, aia kekahi ʻokoʻa nui i ka semantics. Ma Cassandra INSERT
he hana maoli UPSERT
, kahi i hoʻohui ʻia ai nā waiwai hope i ka lālani inā aia ka lālani.
Ua like ka helu ʻikepili me PostgreSQL
INSERT
kiekie
.
ʻO MongoDB
ʻOiai ʻo MongoDB kahi waihona NoSQL e like me Cassandra, ʻaʻohe mea maʻamau o kāna hana hoʻokomo me ke ʻano semantic o Cassandra. Ma MongoDB UPSERT
, e like me PostgreSQL. Hoʻohui i ka ʻikepili paʻamau me ka ʻole _idspecified
e hoʻokomo i kahi palapala hou i ka hōʻiliʻili.
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"
}
}
);
Nīnau pākaukau
Malia paha ʻo ka ʻokoʻa koʻikoʻi ma waena o SQL a me NoSQL e pili ana i ke kūkulu ʻana i ka nīnau, ʻo ia ka ʻōlelo i hoʻohana ʻia FROM
и WHERE
. Hāʻawi ʻo SQL ma hope o ka ʻōlelo FROM
koho i nā papa he nui, a me ka ʻōlelo me WHERE
hiki ke paʻakikī (me nā hana JOIN
ma waena o nā papa). Eia naʻe, makemake ʻo NoSQL e kau i kahi palena koʻikoʻi FROM
, a hana wale me hoʻokahi papaʻaina i kuhikuhi ʻia, a ma WHERE
, pono e ho'ākāka 'ia ke kī mua. Hoʻopili kēia i ka pana hana NoSQL a mākou i kamaʻilio mua ai. ʻO kēia makemake e alakaʻi i kēlā me kēia hōʻemi hiki i kēlā me kēia hui cross-tabular a me cross-key. Hiki iā ia ke hoʻolauna i kahi lohi nui i ke kamaʻilio inter-node i ka pane ʻana i kahi noi a no laila ʻoi aku ka maikaʻi o ka pale ʻana i ka laulā. No ka laʻana, koi ʻo Cassandra i nā nīnau e kaupalena ʻia i kekahi mau mea hana (wale =, IN, <, >, =>, <=
) ma nā kī ʻāpana, koe wale nō ke noi ʻana i kahi helu helu lua (ʻo ka = operator wale nō i ʻae ʻia ma aneʻi).
PostgreSQL
Ma lalo iho nei ʻekolu laʻana o nā nīnau i hiki ke hoʻokō maʻalahi ʻia e kahi waihona SQL.
- Hōʻike i nā mele a pau a kekahi mea pena;
- Hōʻike i nā mele a pau a ka mea pena i kūpono i ka hapa mua o ke poʻo inoa;
- Hōʻike i nā mele a pau a kekahi mea pena i loaʻa kekahi huaʻōlelo ma ke poʻo inoa a he kumu kūʻai ma lalo o 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
ʻO nā nīnau PostgreSQL i helu ʻia ma luna, ʻo ka mea mua wale nō e hana ʻole ʻia ma Cassandra, ʻoiai ka mea hoʻohana. LIKE
ʻAʻole hiki ke hoʻohana ʻia i nā kolamu clustering e like me SongTitle
. I kēia hihia, ʻae ʻia nā mea hana =
и 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;
ʻO MongoDB
E like me ka hōʻike ʻana i nā hiʻohiʻona mua, ʻo ke ala nui no ka hana ʻana i nā nīnau ma MongoDB ʻo ia music
ma ka laʻana ma lalo), no laila, pāpā ʻia ka nīnau ʻana i nā hōʻiliʻili he nui.
db.music.find( {
artist: "No One You Know"
}
);
db.music.find( {
artist: "No One You Know",
songTitle: /Call/
}
);
Heluhelu i nā lālani a pau o ka pākaukau
ʻO ka heluhelu ʻana i nā lālani a pau he hihia kūikawā wale nō o ke ʻano nīnau a mākou i nānā mua ai.
PostgreSQL
SELECT *
FROM Music;
Cassandra
E like me ka laʻana PostgreSQL ma luna.
ʻO MongoDB
db.music.find( {} );
Hoʻoponopono i ka ʻikepili ma kahi pākaukau
PostgreSQL
Hāʻawi ʻo PostgreSQL i nā ʻōlelo kuhikuhi UPDATE
e hoʻololi i ka ʻikepili. ʻAʻohe ona manawa UPSERT
, no laila e hāʻule kēia ʻōlelo inā ʻaʻole ka lālani i loko o ka waihona.
UPDATE Music
SET Genre = 'Disco'
WHERE Artist = 'The Acme Band' AND SongTitle = 'Still In Love';
Cassandra
Ua loaʻa iā Cassandra UPDATE
like me PostgreSQL. UPDATE
loaʻa nā ʻōlelo like UPSERT
, like INSERT
.
E like me ka laʻana PostgreSQL ma luna.
ʻO MongoDB
Ka lawelawe UPSERT
. Hoʻohou i nā palapala he nui a me nā ʻano like UPSERT
hiki ke hoʻohana ʻia ma ke kau ʻana i nā hae hou no ka hana. No ka laʻana, ma ka laʻana ma lalo nei, hoʻonui ʻia ke ʻano o kahi mea pena kiʻi ma muli o kāna mele.
db.music.update(
{"artist": "The Acme Band"},
{
$set: {
"genre": "Disco"
}
},
{"multi": true, "upsert": true}
);
Ke wehe nei i ka ʻikepili mai kahi pākaukau
PostgreSQL
DELETE FROM Music
WHERE Artist = 'The Acme Band' AND SongTitle = 'Look Out, World';
Cassandra
E like me ka laʻana PostgreSQL ma luna.
ʻO MongoDB
He ʻelua ʻano hana ʻo MongoDB e holoi i nā palapala −
db.music.deleteMany( {
artist: "The Acme Band"
}
);
Holoi i kahi papaʻaina
PostgreSQL
DROP TABLE Music;
Cassandra
E like me ka laʻana PostgreSQL ma luna.
ʻO MongoDB
db.music.drop();
hopena
ʻO ka hoʻopaʻapaʻa e pili ana i ke koho ʻana ma waena o SQL a me NoSQL ua ʻoi aku ma mua o 10 mau makahiki. ʻElua mau mea nui o kēia hoʻopaʻapaʻa: ʻenehana ʻenekini waihona (monolithic, transactional SQL vs distributed, non-transactional NoSQL) a me ka hoʻolālā hoʻolālā ʻikepili (ka hoʻohālike i kāu ʻikepili ma SQL me ka hoʻohālike ʻana i kāu mau nīnau ma NoSQL).
Me kahi waihona transactional i hoʻolaha ʻia e like me YugaByte DB, hiki ke hoʻomaha maʻalahi ka hoʻopaʻapaʻa e pili ana i ka hoʻolālā waihona. I ka lilo ʻana o nā waihona ʻikepili i ʻoi aku ka nui ma mua o ka mea hiki ke kākau ʻia i ka node hoʻokahi, pono ke ʻano hoʻolālā hoʻolaha piha e kākoʻo ana i ka scalability kākau laina me ka sharding / rebalancing maʻalahi.
Eia kekahi, e like me ka mea i ʻōlelo ʻia ma kekahi o nā ʻatikala
Ke hoʻi mai nei i ka kūkākūkā hoʻolālā waihona, kūpono ke ʻōlelo ʻana he pono nā ala hoʻolālā ʻelua (SQL a me NoSQL) no kēlā me kēia noi paʻakikī o ka honua. ʻO ka SQL "data modeling" e hiki ai i nā mea hoʻomohala ke hoʻokō maʻalahi i ka hoʻololi ʻana i nā koi ʻoihana, aʻo ka NoSQL "query modelling" ala e hiki ai i nā mea hoʻomohala like ke hana ma nā puke nui o ka ʻikepili me ka latency haʻahaʻa a me ka throughput kiʻekiʻe. ʻO ia ke kumu i hāʻawi ai ʻo YugaByte DB i nā SQL a me NoSQL API i kahi kumu maʻamau, ma mua o ka hoʻolaha ʻana i kekahi o nā ala. Eia kekahi, ma ka hāʻawi ʻana i ka launa pū me nā ʻōlelo ʻikepili kaulana e like me PostgreSQL a me Cassandra, ua hōʻoia ʻo YugaByte DB ʻaʻole pono nā mea hoʻomohala e aʻo i ka ʻōlelo ʻē aʻe e hana me kahi mīkini waihona waihona i hoʻolaha ʻia.
Ma kēia ʻatikala, ua nānā mākou i ka ʻokoʻa o nā waihona hoʻolālā waihona ma waena o PostgreSQL, Cassandra, a me MongoDB. I nā ʻatikala e hiki mai ana, e luʻu mākou i nā manaʻo hoʻolālā holomua e like me nā kuhikuhi, nā kālepa, nā JOIN, nā kuhikuhi TTL, a me nā palapala JSON.
Makemake mākou iā ʻoe i kahi hoʻomaha maikaʻi o ka hopena pule a kono iā ʻoe e
Source: www.habr.com