Objektuen biltegiratzerako esportazioa

JSON objektu bat betetako helburu bakoitzeko, zure bucket batean. Hau da BigQuery ez den edozein datu-biltegirako bidea.

1. Honek betetzen duen hutsunea

Orain arte bide bakarra zegoen MousePlayer-etik datu-biltegira, eta Google-ra zihoan. Snowflake, Redshift edo ClickHouse erabiltzen baduzu, ez zegoen biderik, nahiz eta hirurek objektuen biltegietatik arazorik gabe irakurri.

Horregatik, zubiak objektuen biltegian idazten du, biltegi bakoitzean banan-banan idatzi beharrean. Snowflake-k S3tik hartzen du, Redshift-ek S3tik, ClickHouse-k S3tik eta BigQueryk Google Cloud Storage-tik. Esportazio bakarra guztietara iristen da.

NonNola helbideratzen den
Amazon S3Signature Version 4, bucketa ostalarian
Cloudflare R2Signature Version 4 zure kontuaren muturraren aurka
Google Cloud Storageharen S3rekin bateragarria den APIaren bidez, HMAC gakoarekin
MinIO, Wasabi, Backblaze B2 eta beste batzukSignature Version 4 zure muturraren aurka
Azure Blob Storageedukiontziaren SAS esteka, gure aldean sinatu gabe

2. Zergatik den Azure desberdina eta zergatik den hobea

Azure Blob-ek ez du Signature Version 4 erabiltzen; SharedKey bidez sinatzen du. Bigarren sinadura-eskema bat eraiki genezakeen. Horren ordez, zubiak honako hau hartzen du: edukiontziaren SAS esteka — zure biltegiratze-kontuan sortzen duzun URLa, sinadura dagoeneko barruan duena.

Gure aldean kode gutxiago eta zure aldean konfiantza gutxiago eskatzen du horrek. Ez dugu inoiz kontu-gakorik ikusten: ematen diguzuna zuk zeuk mugatutako baimena da, edukiontzi bakarrerako, zuk aukeratutako iraungitze-datarekin, edozein unetan baliogabetu daitekeena beste ezer ukitu gabe.

Zuhurtzia bera komeni da S3 aldean: eman sarbide-gakoari honako honetan idazteko baimena: aurrizki bakar honetan eta besterik ez. Honako honetan soilik gehitu dezakeen gakoak: mouseplayer/goals/ ezin ditu zure beste bucketak irakurri, baita filtratzen bada ere.

3. Objektu bat helburu bakoitzeko, eta gakoa data da

Objektuen biltegiratzeak ez du gehitzeko eragiketarik. Eguneko fitxategia osorik berridatzi beharko litzateke aldi bakoitzean, eta batera iritsitako bi helburuk elkar gainidatziko lukete. Beraz, betetako helburu bakoitza bere objektu bihurtzen da.

Kostua objektu txiki asko izatea da; gakoen egiturak egiten du hori erabilgarri:

prefix/YYYY/MM/DD/channel/session-goal.json

Datu-biltegiak egun bat partizio bakar gisa irakurtzen du, eta aurreko datuak osatzea aurrizkiaren azterketa da, ez kontsulta. Dataren ordez proiektuaren arabera partizionatu nahi baduzu, jarri kanal-IDa aurrizkian.

Objektu bakoitza JSON lerro bat da

Nahita koskarik gabe, aurrizki osoa NDJSON gisa irakur dadin objektuak banan-banan ireki gabe. Denbora-marka, proiektua, saioa, bezero-IDa, helburua, balioa, moneta eta grabazioa erreproduzitzeko esteka.

Balio hutsa null da, ez zero

Diru-baliorik gabeko helburuak hau idazten du: null. Datu-biltegian zeroa inoiz existitu ez den guztizko batean batuko litzateke; «ez da zenbatekorik adostu» eta «zero zenbatekoa» bereizketak esportazioan irauten du.

4. 403 erantzuten badu, irakurri hau lehenik

Baztertutako S3 eskaerak ia ez du ezer esaten, eta badago arrazoi bat gure erregistroko errore-mezuak S3k baino gehiago esateko: eskualdea sinaduran sartzen da. Eskualde okerrak eta gako okerrak 403 bera sortzen dute; beraz, susmo bistakoa, gakoa, kasuen erdietan soilik da zuzena.

Egiaztatu beharreko hiru gauza, ordena honetan:

  • Eskualdea, bucketak adierazten duen bezalaxe. R2 eta Google Cloud Storage-k honako hau erabiltzen dute: auto eta ez dute egiaztatzen; beste guztiek bai.
  • Aurrizkiaren baimena. Honako honetara mugatutako gakoak: mouseplayer/ ezin du honako honetan idatzi: mouseplayer-goals/ — amaierako barrak garrantzia du baliabidearen ARN batean.
  • Muturra, R2 eta S3rekin bateragarriak diren biltegietarako. Itsatsi ostalaria honako hau gabe: https://; hala ere kentzen dugu, baina erantsitako bide batek beste bucket bat esan nahi du.

Sarbide-gakoaren IDa nahita gordetzen da zifratu gabe. Sinatutako eskaera guztietan bidaiatzen du diseinuz; beraz, zifratzea babesik gabeko ahalegina litzateke. Sekretua zifratuta dago, ez da berriro erakusten eta ez da inoiz sartzen zeregina daraman barne-ilaran.

Hemen aipatutako marka guztiak beren jabeenak dira. MousePlayer-ek ez du hornitzaile hauekin negozio-harremanik.