Tha an stòr-dàta seo na theine...

Tha an stòr-dàta seo na theine...

Leig leam sgeulachd theicnigeach innse.

O chionn mòran bhliadhnaichean, bha mi a’ leasachadh tagradh le feartan co-obrachaidh air an togail a-steach dha. B’ e stac deuchainneach furasta a chleachdadh a bh’ ann a ghabh brath air làn chomas React agus CouchDB tràth. Rinn e sioncronadh air dàta ann an àm fìor tro JSON OT. Chaidh a chleachdadh taobh a-staigh na companaidh, ach bha iomchaidheachd agus comas farsaing ann an raointean eile soilleir.

Fhad ‘s a bha sinn a’ feuchainn ris an teicneòlas seo a reic ri teachdaichean a dh’fhaodadh a bhith ann, thachair sinn ri cnap-starra ris nach robh dùil. Anns a ’bhidio demo, bha an teicneòlas againn a’ coimhead agus ag obair gu math, gun duilgheadas sam bith an sin. Sheall a’ bhidio gu dìreach mar a tha e ag obair agus cha do rinn e atharrais air dad. Thàinig sinn suas agus chòdaich sinn suidheachadh reusanta airson a’ phrògram a chleachdadh.

Tha an stòr-dàta seo na theine...
Gu dearbh, thàinig seo gu bhith na dhuilgheadas. Dh’ obraich an demo againn dìreach mar a bha a h-uile duine eile ag atharrais air na tagraidhean aca. Gu sònraichte, chaidh fiosrachadh a ghluasad sa bhad bho A gu B, eadhon ged a b’ e faidhlichean meadhanan mòra a bh’ ann. Às deidh dhaibh logadh a-steach, chunnaic gach neach-cleachdaidh inntrigidhean ùra. Le bhith a’ cleachdadh an tagraidh, dh’ fhaodadh luchd-cleachdaidh eadar-dhealaichte obrachadh còmhla gu soilleir air na h-aon phròiseactan, eadhon ged a chuireadh stad air a’ cheangal eadar-lìn am badeigin sa bhaile. Tha seo ri thuigsinn gu soilleir ann am bhidio toraidh sam bith a chaidh a ghearradh ann an After Effects.

Eadhon ged a bha fios aig a h-uile duine carson a bha am putan Ùrachaidh airson, cha robh duine dha-rìribh a’ tuigsinn gu robh na h-aplacaidean lìn a dh’ iarr iad oirnn a thogail mar as trice fo smachd nan crìochan aca fhèin. Agus mura h-eil feum orra tuilleadh, bidh eòlas an neach-cleachdaidh gu tur eadar-dhealaichte. Mhothaich iad sa mhòr-chuid gum b’ urrainn dhaibh “cabadaich” le bhith a’ fàgail notaichean dha na daoine ris an robh iad a’ bruidhinn, agus mar sin bha iad a’ faighneachd ciamar a bha seo eadar-dhealaichte bho, mar eisimpleir, Slack. Phew!

Dealbhadh sioncranachaidh làitheil

Ma tha eòlas agad air leasachadh bathar-bog, feumaidh e a bhith na adhbhar dragh dhut cuimhneachadh nach urrainn don mhòr-chuid dìreach coimhead air dealbh de eadar-aghaidh agus tuigsinn dè a nì e nuair a bhios iad ag eadar-obrachadh leis. Gun a bhith a 'toirt iomradh air na thachras taobh a-staigh a' phrògram fhèin. Eòlas air sin urrainn Tha seo gu ìre mhòr mar thoradh air fios dè nach urrainn tachairt agus dè nach bu chòir tachairt. Feumaidh seo modail inntinn chan e a-mhàin na bhios am bathar-bog a’ dèanamh, ach cuideachd mar a tha na pàirtean fa leth aige air an co-òrdanachadh agus a’ conaltradh ri chèile.

Is e eisimpleir clasaigeach de seo neach-cleachdaidh a 'coimhead air a spinner.gif, a’ faighneachd cuin a bhios an obair deiseil mu dheireadh. Bhiodh an leasaiche air tuigsinn gur dòcha gu robh am pròiseas steigte agus nach falbhadh an gif bhon sgrion gu bràth. Tha am beothachadh seo coltach ri coileanadh obair, ach chan eil e co-cheangailte ri a staid. Ann an leithid de shuidheachaidhean, is toil le cuid de theicneòlaichean an sùilean a roiligeadh, a ’cur iongnadh air an ìre de troimh-chèile luchd-cleachdaidh. Ach, mothaich cia mheud dhiubh a tha a’ comharrachadh a’ ghleoc rothlach agus ag ràdh gur e pàipearachd a th’ ann dha-rìribh?

Tha an stòr-dàta seo na theine...
Is e seo brìgh luach fìor-ùine. An-diugh, chan eil ach glè bheag de chleachdadh air stòran-dàta fìor-ùine agus bidh mòran dhaoine gam faicinn le amharas. Tha a’ mhòr-chuid de na stòran-dàta sin a’ leantainn gu mòr ri stoidhle NoSQL, agus is e sin as coireach gu bheil iad mar as trice a’ cleachdadh fuasglaidhean stèidhichte air Mongo, as fheàrr a dhìochuimhnichear. Ach, dhòmhsa tha seo a’ ciallachadh a bhith comhfhurtail ag obair le CouchDB, a bharrachd air a bhith ag ionnsachadh structaran a dhealbhadh a dh’ fhaodas barrachd air dìreach cuid de bhiùrocratan a lìonadh le dàta. Tha mi a’ smaoineachadh gu bheil mi a’ cleachdadh m’ ùine nas fheàrr.

Ach is e fìor chuspair na dreuchd seo na tha mi a’ cleachdadh an-diugh. Chan ann le roghainn, ach air sgàth poileasaidhean corporra a tha air an cur an sàs gu mì-mhodhail agus gu dall. Mar sin bheir mi seachad coimeas gu tur cothromach agus neo-chlaonach de dhà thoradh stòr-dàta fìor-ùine Google a tha dlùth-cheangailte.

Tha an stòr-dàta seo na theine...
Tha am facal Teine aig an dithis nan ainmean. Aon rud a tha cuimhne agam le meas. Is e an dàrna rud dhòmhsa seòrsa eile de theine. Chan eil mi ann an cabhag sam bith na h-ainmean aca a ràdh, oir aon uair ‘s gun dèan mi sin, ruithidh sinn a-steach don chiad dhuilgheadas mòr: ainmean.

Canar a’ chiad fhear Stòr-dàta fìor-ùine Firebase, agus san dàrna àite - Stòr-teine ​​​​Cloud Firebase. Tha an dithis aca nam bathar bho Sreath Firebase Google. Canar na APIan aca fa leth firebase.database(…) и firebase.firestore(…).

Thachair seo air sgàth Stòr-dàta fìor-ùine - chan eil ann ach an rud tùsail Firebase mus deach a cheannach le Google ann an 2014. An uairsin cho-dhùin Google a chruthachadh mar thoradh co-shìnte leth-bhreac Firebase stèidhichte air companaidh dàta mòr, agus thug e Firestore le sgòth air. Tha mi an dòchas nach eil thu troimh-chèile fhathast. Ma tha thu fhathast troimh-chèile, na gabh dragh, rinn mi fhìn ath-sgrìobhadh air a’ phàirt seo den artaigil deich tursan.

Air sgàth 's gu feum thu a chomharrachadh Firebase ann an ceist Firebase, agus Stòr-teine ann an ceist mu Firebase, co-dhiù airson toirt ort tuigsinn o chionn beagan bhliadhnaichean air Stack Overflow.

Nam biodh duais ann airson an eòlas ainmeachadh bathar-bog as miosa, bhiodh seo gu cinnteach mar aon de na farpaisich. Tha astar Hamming eadar na h-ainmean sin cho beag is gu bheil e a’ cur troimh-chèile eadhon innleadairean eòlach aig a bheil corragan a’ sgrìobhadh aon ainm fhad ‘s a tha an cinn a’ smaoineachadh air fear eile. Is iad sin planaichean le deagh rùn a tha a’ fàiligeadh gu truagh; choilean iad an fhàisneachd gum biodh an stòr-dàta na theine. Agus chan eil mi a’ magadh idir. Dh'adhbhraich an neach a thàinig a-steach leis an sgeama ainmeachaidh seo fuil, fallas agus deòir.

Tha an stòr-dàta seo na theine...

Buaidh Pyrrhic

Shaoileadh neach gur e Firestore a th’ ann ath-shuidheachadh Firebase, an ath ghinealach de shliochd, ach bhiodh sin meallta. Chan eilear cinnteach gum bi Firestore na àite iomchaidh airson Firebase. Tha e coltach gun do gheàrr cuideigin a h-uile dad inntinneach bhuaithe, agus chuir e troimh-chèile a’ mhòr-chuid den chòrr ann an diofar dhòighean.

Ach, faodaidh sealladh sgiobalta air an dà thoraidhean do chur troimh-chèile: tha e coltach gu bheil iad a’ dèanamh an aon rud, gu bunaiteach tro na h-aon APIan agus eadhon san aon seisean stòr-dàta. Tha na h-eadar-dhealachaidhean beaga agus chan eil iad air am foillseachadh ach le sgrùdadh coimeasach faiceallach air sgrìobhainnean farsaing. No nuair a tha thu a’ feuchainn ri còd port a tha ag obair gu foirfe air Firebase gus an obraich e le Firestore. Fiù ‘s an uairsin gheibh thu a-mach gu bheil eadar-aghaidh an stòr-dàta a’ lasadh suas cho luath ‘s a dh’ fheuchas tu ri slaodadh is leigeil leis an luchag ann an àm fìor. Bidh mi ag ath-aithris, chan eil mi a’ magadh.

Tha an neach-dèiligidh Firebase modhail anns an fhaireachdainn gu bheil e a 'bufferadh atharrachaidhean agus gu fèin-obrachail a' feuchainn air ùrachaidhean a bheir prìomhachas don obair sgrìobhaidh mu dheireadh. Ach, tha crìoch de ghnìomhachd sgrìobhaidh 1 aig Firestore gach sgrìobhainn gach neach-cleachdaidh gach diog, agus tha an ìre seo air a chuir an gnìomh leis an fhrithealaiche. Nuair a bhios tu ag obair leis, tha e an urra riut dòigh a lorg timcheall air agus inneal-crìochnachaidh reata ùrachaidh a chuir an gnìomh, eadhon nuair a tha thu dìreach a’ feuchainn ris an tagradh agad a thogail. Is e sin, is e stòr-dàta fìor-ùine a th’ ann an Firestore às aonais teachdaiche fìor-ùine, a bhios a ’dèanamh masquerades mar aon a’ cleachdadh API.

An seo tòisichidh sinn a’ faicinn a’ chiad shoidhnichean de raison d’être aig Firestore. Is dòcha gu bheil mi ceàrr, ach tha amharas agam gun do choimhead cuideigin àrd ann an riaghladh Google air Firebase às deidh an ceannach agus thuirt e gu sìmplidh, “Chan e, o mo Dhia, chan eil. Tha seo mì-fhreagarrach. Dìreach chan ann fo mo stiùireadh."

Tha an stòr-dàta seo na theine...
Nochd e as a sheòmraichean, agus thuirt e:

“Aon sgrìobhainn mòr JSON? Chan eil. Roinnidh tu an dàta ann an sgrìobhainnean fa leth, agus cha bhi gach fear dhiubh nas motha na 1 megabyte ann am meud."

Tha e coltach nach mair a leithid de chuingealachadh air a’ chiad choinneamh le bunait luchd-cleachdaidh le brosnachadh gu leòr. Tha fios agad gu bheil. Aig an obair, mar eisimpleir, tha còrr air mìle gu leth taisbeanadh againn, agus tha seo gu tur àbhaisteach.

Leis a’ chuingealachadh seo, feumaidh tu gabhail ris nach bi aon “sgrìobhainn” san stòr-dàta coltach ri nì sam bith ris an can neach-cleachdaidh sgrìobhainn.

“Sgeulaichean de dh’ arrays a dh’ fhaodas eileamaidean eile a bhith ann gu cunbhalach? Chan eil. Cha bhi ann an arrays ach nithean no àireamhan fad stèidhichte, mar a bha Dia an dùil."

Mar sin ma bha thu an dòchas GeoJSON a chuir a-steach don Stòr-teine ​​​​agad, gheibh thu a-mach nach eil seo comasach. Chan eil dad neo-aon-thaobhach iomchaidh. Tha mi an dòchas gun còrd Base64 agus / no JSON riut taobh a-staigh JSON.

“In-mhalairt agus às-mhalairt JSON tro HTTP, innealan loidhne-àithne no pannal rianachd? Chan eil. Chan urrainn dhut ach dàta às-mhalairt agus a thoirt a-steach gu Google Cloud Storage. Sin an t-ainm a th’ air a-nis, tha mi a’ smaoineachadh. Agus nuair a chanas mi “thu,” chan eil mi a’ bruidhinn ach ris an fheadhainn aig a bheil teisteanasan Sealbhadair Pròiseict. Faodaidh a h-uile duine eile a dhol agus tiogaidean a chruthachadh."

Mar a chì thu, tha modal dàta FireBase furasta a mhìneachadh. Tha aon sgrìobhainn JSON mòr ann a bhios a’ ceangal iuchraichean JSON ri slighean URL. Ma sgrìobhas tu le HTTP PUT в / Tha FireBase mar a leanas:

{
  "hello": "world"
}

An GET /hello tillidh "world". Gu bunaiteach bidh e ag obair dìreach mar a bhiodh dùil agad. Cruinneachadh de nithean FireBase /my-collection/:id co-ionann ri faclair JSON {"my-collection": {...}} anns a 'bhun-stèidh, agus tha na tha ann ri fhaighinn ann an /my-collection:

{
  "id1": {...object},
  "id2": {...object},
  "id3": {...object},
  // ...
}

Bidh seo ag obair gu math ma tha ID gun bhualadh aig gach cuir a-steach, airson a bheil fuasgladh àbhaisteach aig an t-siostam.

Ann am faclan eile, tha an stòr-dàta 100% JSON (*) co-chòrdail agus ag obair gu math le HTTP, leithid CouchDB. Ach gu bunaiteach bidh thu ga chleachdadh tro API fìor-ùine a bheir geàrr-chunntas air websockets, ùghdarrachadh, agus ballrachdan. Tha an dà chomas aig a ’phannal rianachd, a’ ceadachadh an dà chuid deasachadh fìor-ùine agus in-mhalairt / às-mhalairt JSON. Ma nì thu an aon rud sa chòd agad, bidh iongnadh ort leis an ìre de chòd sònraichte a thèid a chaitheamh nuair a thuigeas tu gu bheil bad agus diff JSON a’ fuasgladh 90% de na gnìomhan àbhaisteach ann a bhith a’ làimhseachadh staid leantainneach.

Tha modail dàta Firestore coltach ri JSON, ach tha e eadar-dhealaichte ann an cuid de dhòighean èiginneach. Thug mi iomradh mu thràth air dìth arrays taobh a-staigh arrays. Tha am modail airson fo-chruinneachaidhean airson gum bi iad nam bun-bheachdan den chiad ìre, air leth bhon sgrìobhainn JSON anns a bheil iad. Leis nach eil sreathachadh deiseil ann airson seo, tha feum air slighe còd sònraichte gus dàta fhaighinn air ais agus a sgrìobhadh. Gus na cruinneachaidhean agad fhèin a phròiseasadh, feumaidh tu na sgriobtaichean agus na h-innealan agad fhèin a sgrìobhadh. Chan eil am pannal rianachd a’ leigeil leat ach atharrachaidhean beaga a dhèanamh aon raon aig an aon àm, agus chan eil comasan in-mhalairt/às-mhalairt aige.

Ghabh iad stòr-dàta NoSQL fìor-ùine agus thionndaidh iad gu slaodach neo-SQL le fèin-cheangal agus colbh neo-JSON air leth. Rudeigin mar GraftQL.

Tha an stòr-dàta seo na theine...

Java teth

Nam biodh còir aig Firestore a bhith nas earbsaiche agus nas so-ruigsinneach, is e an ìoranas gum bi an leasaiche cuibheasach aig a ’cheann thall le fuasgladh nach eil cho earbsach na bhith a’ taghadh FireBase a-mach às a ’bhogsa. Tha an seòrsa bathar-bog a dh’ fheumas Rianadair Stòr-dàta Grumpy a’ feumachdainn ìre de dh’ oidhirp agus inbhe de thàlant a tha dìreach neo-phractaigeach airson an niche a tha còir aig an toradh a bhith math air. Tha seo coltach ri mar nach eil HTML5 Canvas na àite Flash idir mura h-eil innealan leasachaidh agus cluicheadair ann. A bharrachd air an sin, tha Firestore air a mhealladh ann am miann airson purrachd dàta agus dearbhadh sterile nach eil dìreach a rèir mar a tha an neach-cleachdaidh àbhaisteach gnìomhachais dèidheil air a bhith ag obair: dhàsan tha a h-uile dad roghainneil, oir gus an deireadh tha a h-uile dad na dhreach.

Is e prìomh ana-cothrom FireBase gun deach an neach-dèiligidh a chruthachadh grunn bhliadhnaichean air thoiseach air an àm, mus robh fios aig a’ mhòr-chuid de luchd-leasachaidh lìn mu neo-sheasmhachd. Air sgàth seo, tha FireBase a’ gabhail ris gun atharraich thu an dàta agus mar sin chan eil e a’ gabhail brath air neo-sheasmhachd a bheir neach-cleachdaidh seachad. Cha bhith e cuideachd ag ath-chleachdadh an dàta anns na Snapshots a chuireas e chun neach-cleachdaidh, a’ dèanamh diff tòrr nas duilghe. Airson sgrìobhainnean mòra, tha an uidheamachd malairt stèidhichte air diff mutable dìreach mì-fhreagarrach. Guys, tha againn mu thràth WeakMap ann an JavaScript. Tha e cofhurtail.

Ma bheir thu an cruth a tha thu ag iarraidh don dàta agus nach dèan thu na craobhan ro shlaodach, faodar an duilgheadas seo a sheachnadh. Ach tha mi ceasnachail am biodh FireBase tòrr nas inntinniche nan leigeadh an luchd-leasachaidh API teachdaiche fìor mhath a-mach a chleachd neo-sheasmhachd còmhla ri fìor chomhairle phractaigeach air dealbhadh stòr-dàta. An àite sin, bha e coltach gu robh iad a’ feuchainn ris an rud nach robh briste a chàradh, agus rinn sin na bu mhiosa.

Chan eil fios agam air a h-uile loidsig air cùl cruthachadh Firestore. Tha prothaideachadh mu na h-adhbharan a tha ag èirigh am broinn a’ bhogsa dhubh cuideachd mar phàirt den spòrs. Tha an suidheachadh seo de dhà stòr-dàta a tha glè choltach ach gun choimeas gu math tearc. Tha e mar a bha cuideigin a’ smaoineachadh: "Is e dìreach gnìomh a th’ ann an Firebase as urrainn dhuinn aithris ann an Google Cloud", ach chan eil e air faighinn a-mach fhathast a’ bhun-bheachd mu bhith a’ comharrachadh riatanasan san t-saoghal fhìor no a’ cruthachadh fhuasglaidhean feumail a choinnicheas ris na riatanasan sin uile. “Leig leis an luchd-leasachaidh smaoineachadh mu dheidhinn. Dìreach dèan an UI brèagha ... An urrainn dhut barrachd teine ​​​​a chuir ris?"

Tha mi a’ tuigsinn rud no dhà mu structaran dàta. Tha mi gu cinnteach a’ faicinn a’ bhun-bheachd “a h-uile dad ann an aon chraobh mhòr JSON” mar oidhirp air mothachadh sam bith de structar mòr a thoirt a-mach às an stòr-dàta. Tha a bhith a’ dùileachadh bathar-bog dìreach a’ dèiligeadh ri structar dàta amharasach fractal dìreach gealtach. Chan fheum mi eadhon smaoineachadh dè cho dona ‘s a dh’ fhaodadh cùisean a bhith, tha mi air sgrùdaidhean còd teann a dhèanamh agus Chunnaic mi rudan nach do bhruadair daoine a-riamh. Ach tha fios agam cuideachd cò ris a tha structaran math coltach, mar a chleachdas tu iad и carson a bu chòir seo a dhèanamh. Is urrainn dhomh smaoineachadh air saoghal far am biodh Firestore a’ coimhead loidsigeach agus na daoine a chruthaich e a’ smaoineachadh gun do rinn iad obair mhath. Ach chan eil sinn beò san t-saoghal seo.

Tha taic ceist FireBase truagh a rèir ìre sam bith agus cha mhòr nach eil e ann. Tha e gu cinnteach feumach air leasachadh no co-dhiù ath-sgrùdadh. Ach chan eil Firestore mòran nas fheàrr oir tha e cuingealaichte ris na h-aon chlàran-amais aon-mheudach a lorgar ann an SQL sìmplidh. Ma tha feum agad air ceistean a bhios daoine a’ ruith air dàta chaotic, feumaidh tu sgrùdadh làn-theacsa, sìoltachain ioma-raon, agus òrdachadh gnàthaichte a tha air a mhìneachadh leis an neach-cleachdaidh. Às deidh sgrùdadh nas dlùithe, tha gnìomhan SQL sìmplidh ro chuingealaichte leotha fhèin. A bharrachd air an sin, is e na h-aon cheistean SQL a dh'fhaodas daoine a ruith ann an riochdachadh ceistean luath. Bidh feum agad air fuasgladh clàr-amais àbhaisteach le structaran dàta smaoineachail. Airson a h-uile càil eile, bu chòir co-dhiù lughdachadh mapa mean air mhean no rudeigin coltach ris.

Ma nì thu sgrùdadh air Google Docs airson fiosrachadh mu dheidhinn seo, bidh sinn an dòchas gum bi thu air do chomharrachadh gu stiùir rudeigin mar BigTable agus BigQuery. Ach, an cois na fuasglaidhean sin uile tha uimhir de jargon reic corporra dùmhail is gun tionndaidh thu air ais gu sgiobalta agus gun tòisich thu a’ coimhead airson rudeigin eile.

Is e an rud mu dheireadh a tha thu ag iarraidh le stòr-dàta fìor-ùine rudeigin a rinn agus airson daoine air ìrean pàighidh riaghlaidh.

(*) Is e fealla-dhà a tha seo, chan eil a leithid de rud ann 100% JSON co-chòrdail.

Air na Còraichean Sanasachd

A’ coimhead airson VDS airson pròiseactan debugging, frithealaiche airson leasachadh agus aoigheachd? Tha thu gu cinnteach mar an neach-dèiligidh againn 🙂 Tha prìsean làitheil airson frithealaichean de dhiofar rèiteachaidhean, ceadan anti-DDoS agus Windows air an toirt a-steach don phrìs mu thràth.

Tha an stòr-dàta seo na theine...

Source: www.habr.com

Cuir beachd ann