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.
| Non | Nola helbideratzen den |
|---|---|
| Amazon S3 | Signature Version 4, bucketa ostalarian |
| Cloudflare R2 | Signature Version 4 zure kontuaren muturraren aurka |
| Google Cloud Storage | haren S3rekin bateragarria den APIaren bidez, HMAC gakoarekin |
| MinIO, Wasabi, Backblaze B2 eta beste batzuk | Signature Version 4 zure muturraren aurka |
| Azure Blob Storage | edukiontziaren 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:
autoeta 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.