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 S3 | Signature Version 4, buket hostda |
| Cloudflare R2 | Hasabyňyzyň ahyrky nokadyna Signature Version 4 |
| Google Cloud Storage | HMAC açary bilen onuň S3 utgaşykly API-si arkaly |
| MinIO, Wasabi, Backblaze B2 we beýlekiler | Ahyrky nokadyňyza Signature Version 4 |
| Azure Blob Storage | konteý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:
autowe 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.