د څیزونو زېرمې ته صادرول
د هرې پوره شوې موخې لپاره یو JSON څیز، ستاسو په خپل د زېرمه کولو لوښي کې. دا هر هغه معلوماتي ګودام ته لاره ده چې BigQuery نه وي.
1. هغه تشه چې دا یې ډکوي
تر اوسه له MousePlayer څخه معلوماتي ګودام ته عین یوه لاره وه، او Google ته تلله. که Snowflake، Redshift یا ClickHouse چلوئ، هېڅ لاره نه وه، که څه هم درې واړه د څیزونو له زېرمې بې ستونزې لولي.
نو پُل د دې پر ځای چې هر ګودام ته جلا ولیکي، د څیزونو زېرمې ته لیکي. Snowflake له S3 څخه اخلي، Redshift له S3 څخه اخلي، ClickHouse له S3 څخه اخلي او BigQuery له Google Cloud Storage څخه اخلي. یوه صادرونه ټولو ته رسېږي.
| چېرته | څنګه ورته پته ورکول کېږي |
|---|---|
| Amazon S3 | Signature Version 4، لوښی په کوربه کې |
| Cloudflare R2 | Signature Version 4، ستاسو د حساب پر پای ټکي |
| Google Cloud Storage | د S3 سره برابر API له لارې، د HMAC کیلي په وسیله |
| MinIO، Wasabi، Backblaze B2 او نور | Signature Version 4، ستاسو پر پای ټکي |
| Azure Blob Storage | د کانټینر SAS لینک؛ زموږ په اړخ کې هېڅ لاسلیک نشته |
2. ولې Azure بېل دی، او ولې دا غوره ده
Azure Blob د Signature Version 4 ژبه نه وايي؛ په SharedKey لاسلیک کوي. موږ دویم د لاسلیک جوړښت جوړولی شو. پر ځای یې پُل دا اخلي: د کانټینر SAS لینک ؛ هغه URL چې تاسو یې په خپل زېرمیز حساب کې جوړوئ، لاسلیک یې لا دننه دی.
زموږ په اړخ کې لږ کوډ او ستاسو په اړخ کې لږ باور غواړي. موږ هېڅکله د حساب کیلي نه وینو: هغه څه چې ورکوئ، ستاسو خپله محدوده اجازه ده، یوه کانټینر ته، ستاسو په ټاکلې پای نېټه، هر وخت د لغوه کولو وړ، پرته له دې چې نور څه لمس کړئ.
هماغه احتیاط د S3 په اړخ کې هم ګټور دی: د لاسرسي کیلي ته یوازې په دې کې د لیکلو اجازه ورکړئ: همدا یو مخکښ او نور څه نه. هغه کیلي چې یوازې دې ته ورزیاتولی شي: mouseplayer/goals/ ستاسو نور لوښي نه شي لوستلی، حتی که افشا شي.
3. د هرې موخې لپاره یو څیز، او کیلي نېټه ده
د څیزونو زېرمه ورزیاتول نه لري. ورځنۍ دوتنه به هر ځل بشپړه بیا لیکل کېدله، او په یو وخت راتلونکې دوه موخې به یو بل لیکل له منځه وړل. نو هره پوره شوې موخه خپل څیز کېږي.
بیه یې ډېر کوچني څیزونه دي؛ د کیلي جوړښت دا د کار وړ کوي:
prefix/YYYY/MM/DD/channel/session-goal.json
معلوماتي ګودام یوه ورځ د یوې برخې په توګه لولي، او د پخوانیو معلوماتو پوره کول د پوښتنې پر ځای د مخکښ کتنه ده. که د نېټې پر ځای د پروژې له مخې وېش غواړئ، د چینل ID په مخکښ کې کېږدئ.
هر څیز د JSON یوه کرښه ده
په قصد بې ژورتیا لیکل شوی، څو بشپړ مخکښ د څیزونو له یو یو پرانیستلو پرته د NDJSON په توګه ولوستل شي. وختنښه، پروژه، ناسته، د پېرودونکي ID، موخه، ارزښت، اسعار او هغه لینک چې ثبت بیا غږوي.
تش ارزښت null دی، صفر نه دی
له پولي ارزښت پرته موخه دا لیکي: null. په معلوماتي ګودام کې صفر په داسې مجموعه کې جمع کېدای شي چې هېڅکله نه وه؛ د «هېڅ اندازه نه ده منل شوې» او «صفر اندازه» توپیر تر صادرولو وروسته هم پاتې کېږي.
4. که 403 ځواب ورکړي، لومړی دا ولولئ
رد شوې S3 غوښتنه نږدې هېڅ نه وايي، او دلیل شته چې زموږ په ثبت کې د تېروتنې پیغام تر S3 زیات وايي: سیمه په لاسلیک کې شاملېږي. ناسمه سیمه او ناسمه کیلي هماغه 403 جوړوي، نو څرګند شک، یعنې کیلي، یوازې نیم وخت سم وي.
درې شیان په دې ترتیب وګورئ:
- سیمه، عین لکه لوښی چې یې راپوروي. R2 او Google Cloud Storage دا اخلي:
autoاو نه یې ګوري؛ نور ټول یې ګوري. - د مخکښ اجازه. هغه کیلي چې دې ته محدوده وي:
mouseplayer/دې ته نه شي لیکلی:mouseplayer-goals/؛ په سرچینې ARN کې وروستی سلېش مهم دی. - پای ټکی، د R2 او له S3 سره برابرو زېرمو لپاره. کوربه له دې پرته ونښلوئ:
https://؛ موږ یې په هر حال لرې کوو، خو ورزیاته شوې لار بېل لوښی دی.
د لاسرسي کیلي ID په قصد په روښانه بڼه ساتل کېږي. د ډیزاین له مخې په هرې لاسلیک شوې غوښتنه کې ځي، نو کوډول به یې له ساتنې پرته هڅه وي. پټ ارزښت کوډېږي، بیا نه ښودل کېږي او هېڅکله د کار دننني کتار ته نه ننوځي.
دلته یادې شوې ټولې سوداګریزې نښې د خپلو مالکانو دي. MousePlayer له دې برابرونکو سره سوداګریزه اړیکه نه لري.