Gbigbe jáde sí ibi ìpamọ́ ohun

Ohun JSON kan fún àfojúsùn tí a múṣẹ kọ̀ọ̀kan, nínú bucket tí ẹ ní. Ọ̀nà sí gbogbo warehouse tí kì í ṣe BigQuery nìyí.

1. Àlàfo tí èyí ń kún

Títí di báyìí, ọ̀nà kan gẹ́lẹ́ ló wà láti MousePlayer sí data warehouse, ó sì lọ sí Google. Bí ẹ bá ń lo Snowflake, Redshift tàbí ClickHouse, kò sí ọ̀kan — bí ó tilẹ̀ jẹ́ pé gbogbo mẹ́ta ń ka láti ibi ìpamọ́ ohun láìsí ẹ̀dùn.

Nítorí náà afárá ń kọ sí ibi ìpamọ́ ohun dípò warehouse kọ̀ọ̀kan lẹ́ẹ̀kọ̀ọ̀kan. Snowflake ń gba láti S3, Redshift ń gba láti S3, ClickHouse ń gba láti S3, BigQuery sì ń gba láti Google Cloud Storage. Gbigbe jáde kan ń dé ọ̀dọ̀ gbogbo wọn.

IboBí a ṣe ń tọ́ka sí i
Amazon S3Signature Version 4, bucket nínú host
Cloudflare R2Signature Version 4 sí endpoint àkáǹtì yín
Google Cloud Storagenípasẹ̀ API rẹ̀ tó bá S3 mu, pẹ̀lú HMAC key
MinIO, Wasabi, Backblaze B2 àti mìírànSignature Version 4 sí endpoint yín
Azure Blob Storageìjápọ̀ SAS container — kò sí ìbuwọlu ní ọ̀dọ̀ wa rárá

2. Ìdí tí Azure fi yàtọ̀ àti ìdí tí ìyẹn fi dára sí i

Azure Blob kò lo Signature Version 4; ó ń buwọ́ lu pẹ̀lú SharedKey. A ìbá kọ ètò ìbuwọlu kejì. Dípò rẹ̀ afárá ń gba ìjápọ̀ SAS container — URL tí ẹ ṣẹ̀dá nínú àkáǹtì ìpamọ́ tiyín, pẹ̀lú ìbuwọlu tí ó ti wà nínú rẹ̀.

Kóòdù díẹ̀ sí i ní ọ̀dọ̀ wa àti ìgbẹ́kẹ̀lé díẹ̀ tí ẹ nílò. A kò rí account key rárá: ohun tí ẹ fi lé wa lọ́wọ́ ni àṣẹ tí ẹ fi ààlà sí fúnra yín, sí container kan, pẹ̀lú ọjọ́ ìparí tí ẹ yàn, tó ṣeé fagilé nígbàkigbà láìfọwọ́ kan ohunkóhun mìíràn.

Ó yẹ kí a lo ìṣọ́ra kan náà ní ọ̀dọ̀ S3: ẹ fún access key ní àṣẹ láti kọ sínú prefix kan yìí nìkan. Key tó lè fi kún mouseplayer/goals/ nìkan kò lè ka bucket mìíràn yín, kódà bí ó bá tú síta.

3. Ohun kan fún àfojúsùn kan, key sì jẹ́ ọjọ́

Ibi ìpamọ́ ohun kò ní fífikún. Fáìlì ojoojúmọ́ ìbá ní láti jẹ́ ohun tí a tún kọ ní gbogbo ìgbà, àfojúsùn méjì tó dé lẹ́ẹ̀kan náà ìbá sì kọ lórí ara wọn. Nítorí náà àfojúsùn tí a múṣẹ kọ̀ọ̀kan di ohun tirẹ̀.

Iye rẹ̀ ni ohun kékeré púpọ̀; ìṣètò key ló ń mú kí èyí ṣeé ṣiṣẹ́:

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

Warehouse ń ka ọjọ́ kan gẹ́gẹ́ bí partition kan, fífi dátà sí ẹ̀yìn sì jẹ́ prefix scan dípò query. Bí ẹ bá fẹ́ pín nípa iṣẹ́ akanṣe dípò ọjọ́, ẹ fi channel ID sínú prefix.

Ohun kọ̀ọ̀kan jẹ́ ìlà JSON kan

A mọ̀ọ́mọ̀ kò ṣe ààyè ìbẹ̀rẹ̀, kí gbogbo prefix lè ṣeé kà gẹ́gẹ́ bí NDJSON láìṣí ohun kọ̀ọ̀kan lọ́tọ̀. Àkókò, iṣẹ́ akanṣe, ìgbà ìlò, ID oníbàárà, àfojúsùn, iye, irú owó àti ìjápọ̀ tó ń tún ìgbàsílẹ̀ ṣeré.

Iye òfo jẹ́ null, kì í ṣe òdo

Àfojúsùn láìsí iye owó ń kọ null. Nínú warehouse, òdo yóò wọ àpapọ̀ tí kò wà rí — ìyàtọ̀ láàárín “a kò fohùn ṣọ̀kan lórí iye owó” àti “iye owó òdo” dúró nínú gbigbe jáde.

4. Bí ó bá dá 403 padà, ẹ kọ́kọ́ ka èyí

Ìbéèrè S3 tí a kọ̀ fẹ́rẹ̀ má sọ ohunkóhun, ìdí sì wà tí ìfiránṣẹ́ àṣìṣe nínú àkọsílẹ̀ wa fi sọ ju S3 lọ: agbègbè ń wọ inú ìbuwọlu. Agbègbè tí kò tọ́ àti key tí kò tọ́ ń dá 403 kan náà sílẹ̀, nítorí náà ohun tí a kọ́kọ́ fura sí — key — tọ́ ní ìdajì ìgbà nìkan.

Ohun mẹ́ta láti ṣàyẹ̀wò, ní ìtòlẹ́sẹẹsẹ yìí:

  • Agbègbè, gẹ́lẹ́ bí bucket ṣe ròyìn rẹ̀. R2 àti Google Cloud Storage ń gba auto wọn kò sì ṣàyẹ̀wò rẹ̀; gbogbo ènìyàn yòókù ń ṣe bẹ́ẹ̀.
  • Àṣẹ prefix. Key tí a fi ààlà sí mouseplayer/ kò lè kọ sí mouseplayer-goals/ — slash ìkẹyìn ṣe pàtàkì nínú resource ARN.
  • Endpoint, fún R2 àti ibi ìpamọ́ tó bá S3 mu. Ẹ lẹ host láìsí https://; a ń yọ ọ́ ní ọ̀nà méjèèjì, ṣùgbọ́n ọ̀nà tí a fi kún un jẹ́ bucket tó yàtọ̀.

A mọ̀ọ́mọ̀ fi access key ID pamọ́ ní gbangba. Ó ń rìn nínú gbogbo ìbéèrè tí a buwọ́ lu láti inú àpẹrẹ, nítorí náà fífi ìpàrokò sí i yóò jẹ́ ìsapá láìsí ààbò. A fi ìpàrokò sí secret, a kò tún fi hàn, kò sì wọ ìlà inú tó gbé iṣẹ́ láéláé.

Àwọn àmì ìṣòwò tí a dárúkọ níbí jẹ́ ti àwọn olówó wọn. MousePlayer kò ní ìbáṣepọ̀ òwò pẹ̀lú àwọn olùpèsè yìí.