Supabase eða Firebase: gagnalíkanið ræður áður en verðið gerir það

|Höfundur: Ritstjórn QUASA|5 mín. lestur
Supabase eða Firebase: gagnalíkanið ræður áður en verðið gerir það

Veldu Supabase ef forritið þarf að tengja margar gagnategundir og spyrja gagnagrunninn ólíkra spurninga með SQL. Firebase með Cloud Firestore getur hentað betur þegar hver aðgerð sækir afmörkuð skjöl; gagnalíkan Firestore skipuleggur þau í söfn og undirsöfn. Samanburðurinn hér snýst um Cloud Firestore, ekki allar gagnagrunnsþjónustur Firebase.

Verðið kemur inn í ákvörðunina þegar ljóst er hvernig forritið les, skrifar og dreifir gögnunum. Sama færsluyfirlit getur orðið SQL-fyrirspurn yfir tengdar töflur eða lestur margra skjala; spjallskilaboð geta síðan margfaldast í afhendingu til hlustenda. Fyrir vef- og appteymi á Íslandi er gagnlegra að bera þessi vinnuálög saman en að leggja grunnverð þjónustanna eitt og sér til grundvallar.

Tengsl gagna ráða hönnuninni

Í Supabase fær hvert verkefni Postgres-gagnagrunn. Notendur, verkefni og færslur geta verið í aðskildum töflum sem tengjast með lyklum. Það er hentugt ef forritið þarf til dæmis bæði að sýna verkefni tiltekins notanda og finna færslur yfir mörg verkefni á ákveðnu tímabili. Ný fyrirspurn getur þá nýtt fyrirliggjandi tengsl, þótt hún kalli eftir eigin vísitölum eða meiri vinnslu.

Í Firestore er aðgangsleiðin sterkari hönnunarforsenda: hvaða safn er sótt og hvaða skjöl svara beiðninni? Skilaboð einnar spjallrásar geta legið í undirsafni rásarskjals, en leit þvert á rásir þarf að móta sérstaklega. Firestore styður fyrirspurnir yfir samnefnd undirsöfn, svo stigskiptingin útilokar ekki slíka leit. Hún breytir þó því hvaða vísitölur, fyrirspurnir og öryggisreglur teymið þarf að skipuleggja. Kostnaður við að endurhanna þessi tengsl síðar getur vegið þyngra en munur á upphafsgjaldi.

Notendaskráning: auðkenning og gagnaskrif eru ólíkir mælar

Pro-gjaldskrá Supabase byrjar á 25 Bandaríkjadölum á mánuði og innifelur 100.000 mánaðarlega virka notendur, 8 GB gagnagrunnsrými, 5 milljónir Realtime-skilaboða á mánuði og 500 samtímis Realtime-tengingar. Þetta eru ólíkir kvótar: innifalinn fjöldi notenda segir ekki hversu mikið gagnagrunnurinn vinnur eða sendir frá sér.

Gjaldreglur Cloud Firestore telja skjalalestra, skrif, eyðingar, suma vísitölulestra, geymslu og gagnaflutning; einn gagnagrunnur á verkefni fær meðal annars 50.000 ókeypis skjalalestra og 20.000 skrif á dag, og daglegi kvótinn endurnýjast um miðnætti á Kyrrahafstíma. Gjöld umfram kvótann ráðast meðal annars af staðsetningu gagnagrunnsins. Auðkenning í Firebase Authentication er aðskilin þjónusta og verður ekki skjalaskrif í Firestore nema forritið stofni þar líka gögn.

Í skilyrtu dæmi skrá sig 10.000 nýir notendur á einum mánuði og forritið stofnar eitt prófílskjal fyrir hvern þeirra. Það eru 10.000 Firestore-skrif, óháð því hvernig auðkenningin fer fram. Verði öll skrifin sama dag eru þau innan skrifkvótans í dæminu, svo framarlega sem önnur skrif nýta hann ekki. Ef þessir sömu 10.000 einstaklingar skrá sig inn með Supabase Auth í viðkomandi reikningstímabili falla þeir innan innifalins fjölda virkra notenda á Pro; prófílar þeirra nota samt gagnagrunnsrými og vinnslu. Fjöldi nýrra reikninga er því ekki einn saman heildarreikningur hjá hvorri þjónustu.

Skjalalestrar: færsla á skjá er ekki endilega einn lestur

Opnun færsluyfirlits sækir mörg Cloud Firestore-skjöl og endurteknar opnanir fjölga skjalalestrum.

Í öðru, sjálfstæðu skilyrtu dæmi opna 1.000 notendur færsluyfirlit fjórum sinnum á dag og hver opnun skilar 20 Firestore-skjölum. Margföldunin gefur 80.000 skjalalestra á dag og 2,4 milljónir á 30 dögum, ef notkunin er jöfn. Að öðrum lestrum slepptum eru 30.000 lestrar á dag umfram fyrrnefndan ókeypis kvóta. Talning skjáopnana ein og sér myndi fela þann mun.

Í Supabase gæti samsvarandi yfirlit verið ein SQL-fyrirspurn sem skilar 20 röðum. Þar er enginn sérstakur gjaldliður fyrir hverja röð sem fyrirspurnin les, en vinnslan, gagnagrunnsstærðin og gagnaflutningurinn skipta máli. Fyrirspurn sem þarf að fara yfir mikið gagnamagn getur kallað á meiri afkastagetu þótt fáar raðir birtist. Firestore-dæmið er sömuleiðis grunnmat: sumar fyrirspurnir valda gjaldfærðum vísitölulestrum og öryggisregla sem sækir annað skjal getur bætt lestri við beiðnina.

Rauntímaskilaboð: viðtakendur margfalda notkunina

Eitt nýtt spjallskilaboð berst mörgum þátttakendum og fjölgar Realtime-afhendingum eða skjalalestrum.

Þriðja skilyrta dæmið er spjall með 20 rásum og 20 tengdum þátttakendum í hverri. Hver rás fær 250 ný skilaboð á dag. Þá verða til 5.000 ný skilaboðaskjöl á dag í Firestore. Ef allir þátttakendur hlusta á ný skjöl í sinni rás og fá hvert þeirra afhent, verða 100.000 gjaldfærðir skjalalestrar á dag vegna uppfærslnanna, eða 3 milljónir á 30 dögum. Fyrsta hleðsla, endurtengingar og aðrar fyrirspurnir geta bætt við lestur.

Með Postgres Changes í Supabase verða sömu 5.000 breytingar að 100.000 Realtime-skilaboðum á dag ef hver breyting berst 20 hlustendum. Talningarregla Supabase fyrir Realtime metur hverja gagnagrunnsbreytingu sem ein skilaboð á hvern hlustanda; í Broadcast telst sendingin sjálf einnig með. Á 30 dögum gefur fyrri leiðin 3 milljónir skilaboða, innan Pro-kvótans í dæminu, og 400 samtímis tengingar eru innan tengingakvótans. Gagnagrunnsskrif, vinnsla og gagnaflutningur eru enn aðrir þættir reikningsins. Dæmin sýna mælieiningar, ekki eigin hraðapróf eða fullnaðarverð fyrir spjallþjónustu.

Öryggisreglur fylgja því sem er lesið

Í Supabase er hægt að stýra aðgangi að röðum með Postgres-reglum og heimildum hlutverka. Í Firestore stýra öryggisreglur aðgangi vef- og farsímabiðlara eftir skjalaslóð og skilyrðum beiðninnar. Þessi munur skiptir máli í spjallinu: heimild til að lesa rás, skilaboð hennar og aðild notanda þarf að falla að þeirri gagnaskipan sem valin er. Reglurnar flytjast ekki sjálfkrafa milli töflu og skjalasafns.

Reikningurinn getur líka breyst vegna heimildarathugunar. Ef Firestore-regla þarf að lesa annað skjal til að staðfesta aðild getur það bætt gjaldfærðum lestri við beiðnina. Í Postgres þarf að hanna raðreglur og taflnaheimildir þannig að biðlari sjái aðeins þær færslur sem honum eru ætlaðar. Séu eignar- og hlutverkatengsl flókin er vinnan við að setja fram og viðhalda þessum reglum hluti af vali gagnalíkansins.

Flutningsleiðin sýnir raunverulegan skiptikostnað

Postgres-grunnur í Supabase notar töflur, SQL og venjulegar gagnagrunnstengingar. Það auðveldar flutning gagnanna til annars Postgres-umhverfis miðað við að umbreyta skjalasafni í tengdar töflur. Þjónustur utan gagnagrunnsins, svo sem auðkenning, skráageymsla og rauntímadreifing, þurfa þó eigin flutningsvinnu.

Leið frá Firestore til Postgres er til. Flutningsleið Supabase fyrir Firestore afritar safn í töflu og fletur skjölin út; flóknari gögn geta þurft umbreytingu í margar tengdar töflur. Þá þarf einnig að laga fyrirspurnir og aðgangsreglur að nýju skipulagi. Ef forritið sækir nær alltaf afmörkuð skjöl getur Firestore verið einfaldara val frá upphafi. Ef sömu gögn eiga að svara mörgum samtengdum fyrirspurnum er þessi mögulega umbreyting ástæða til að meta Postgres áður en grunnverðið ræður úrslitum.

Lestu einnig:

Deila:

Gerstu áskrifandi að fréttabréfinu okkar

Fáðu nýjustu fréttir af Web3, gervigreind og rafmyntum beint í pósthólfið.

0