ወደ ኦብጀክት ማከማቻ መላክ
ለእያንዳንዱ የተሟላ ግብ አንድ የ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 ሆን ተብሎ በግልጽ ይቀመጣል። በንድፉ መሠረት በእያንዳንዱ የተፈረመ ጥያቄ ይላካል፣ ስለዚህ ማመስጠር ጥበቃ የሌለው ጥረት ይሆናል። secret ተመስጥሮ ይቀመጣል፣ እንደገና አይታይም፣ ሥራውን ወደሚያጓጉዘው ውስጣዊ ወረፋም ፈጽሞ አይገባም።
እዚህ የተጠቀሱት ሁሉም የንግድ ምልክቶች የየባለቤቶቻቸው ናቸው። MousePlayer ከእነዚህ አቅራቢዎች ጋር የንግድ ግንኙነት የለውም።