Obýekt saklaýjysyna eksport

Ýerine ýetirilen her maksat üçin öz buketiňizde bir JSON obýekti. Bu BigQuery-den başga her maglumat ammaryna eltýän ýoldur.

1. Munuň doldurýan boşlugy

Şu wagta çenli MousePlayer-den maglumat ammaryna takyk bir ýol bardy we ol Google-a eltýärdi. Snowflake, Redshift ýa-da ClickHouse ulanýan bolsaňyz, ýol ýokdy - üçüsi hem obýekt saklaýjysyndan kynçylyksyz okasa-da.

Şonuň üçin köpri her ammara aýratyn däl-de, obýekt saklaýjysyna ýazýar. Snowflake S3-den, Redshift S3-den, ClickHouse S3-den, BigQuery bolsa Google Cloud Storage-den alýar. Bir eksport hemmesine ýetýär.

NiräSalgylanma usuly
Amazon S3Signature Version 4, buket hostda
Cloudflare R2Hasabyňyzyň ahyrky nokadyna Signature Version 4
Google Cloud StorageHMAC açary bilen onuň S3 utgaşykly API-si arkaly
MinIO, Wasabi, Backblaze B2 we beýlekilerAhyrky nokadyňyza Signature Version 4
Azure Blob Storagekonteýneriň SAS baglanyşygy - biziň tarapymyzda asla gol çekmek ýok

2. Näme üçin Azure başgaça we näme üçin bu has gowy

Azure Blob Signature Version 4 ulanmaýar; SharedKey bilen gol çekýär. Ikinji gol shemasyny gurup bilerdik. Munuň ýerine köpri konteýneriň SAS baglanyşygyny alýar - öz saklama hasabyňyzda döredýän, gol eýýäm içinde bolan URL-i.

Bu biziň tarapymyzda az kod we siziň tarapyňyzda az ynam talap edýär. Hasap açaryny asla görmeýäris: berýän zadyňyz özüňiziň çäklendiren, bir konteýner üçin saýlan möhletli we başga zada degmezden islendik wagt ýatyrylýan rugsadyňyzdyr.

Şol çäklendirmäni S3 tarapynda hem ulanmak ýerliklidir: giriş açaryna diňe şu bir prefikse ýazmaga rugsat beriň, başga hiç zada däl. Diňe şu ýere goşup bilýän açar: mouseplayer/goals/ syzsa-da beýleki buketleriňizi okap bilmez.

3. Her maksat üçin bir obýekt, açary bolsa sene

Obýekt saklaýjysynda goşup ýazmak ýok. Gündelik faýly her gezek tutuşlygyna täzeden ýazmaly bolardy we bir wagtda gelen iki maksat biri-birini basyp ýazardy. Şonuň üçin her ýerine ýetirilen maksat öz obýektine öwrülýär.

Munuň bahasy köp kiçi obýektdir; açaryň düzülişi muny işe ýaramly edýär:

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

Maglumat ammary bir güni bir bölek hökmünde okaýar, geçmişi doldurmak bolsa sorag däl-de, prefiks gözlegidir. Sene boýunça däl-de, taslama boýunça bölmek isleseňiz, kanal ID-sini prefikse goşuň.

Her obýekt bir setir JSON-dyr

Bilkastlaýyn girintisiz, şeýdip tutuş prefiks obýektleri birin-birin açmazdan NDJSON ýaly okalýar. Wagt belligi, taslama, sessiýa, müşderi ID-si, maksat, baha, pul birligi we ýazgyny görkezýän baglanyşyk.

Boş baha nol däl, null-dyr

Pul bahasy bolmadyk maksat şu bahany ýazýar: null. Ammarda nol hiç bolmadyk jeme goşulardy - “mukdar ylalaşylmady” bilen “mukdar nol” tapawudy eksportda saklanýar.

4. 403 jogaby gelse, ilki muny okaň

Ret edilen S3 haýyşy hiç zat diýen ýaly aýtmaýar we gündeligimizdäki ýalňyşlyk habarynyň S3-den köp aýdýandygynyň sebäbi bar: sebit goluň içine girýär. Nädogry sebit bilen nädogry açar şol bir 403 döredýär, şonuň üçin düşnükli şübhe - açar - diňe ýagdaýlaryň ýarysynda dogry.

Şu tertipde üç zady barlaň:

  • Sebit, buketiň görkezýän görnüşinde takyk. R2 we Google Cloud Storage şu bahany alýar: auto we barlamaýar; beýlekiler barlaýar.
  • Prefiks rugsady. Şu ýol bilen çäklendirilen açar: mouseplayer/ şu ýere ýazyp bilmeýär: mouseplayer-goals/ - çeşme ARN-inde soňky kese çyzyk möhümdir.
  • Ahyrky nokat, R2 we S3 utgaşykly saklaýjylar üçin. Hosty şu prefiksiz goýuň: https://; biz ony barybir aýyrýarys, emma oňa goşulan ýol başga buketdir.

Giriş açarynyň ID-si bilkastlaýyn açyk görnüşde saklanýar. Ol gurluşy boýunça her gol çekilen haýyşda iberilýär, şonuň üçin ony şifrlemek goragsyz tagalla bolardy. Gizlin açar şifrlenýär, gaýtadan görkezilmeýär we işi göterýän içerki nobata hiç girmeýär.

Bu ýerde agzalan ähli söwda bellikleri degişli eýelerine degişlidir. MousePlayer-iň bu üpjün edijiler bilen işewürlik gatnaşygy ýok.