பொருள் சேமிப்பக ஏற்றுமதி

நிறைவேறிய இலக்கிற்கு ஒரு JSON பொருள், உங்கள் bucket-இல். BigQuery அல்லாத ஒவ்வொரு கிடங்கிற்கும் இந்த வழி.

1. நிரப்பும் இடைவெளி

முன்பு MousePlayer-இலிருந்து கிடங்கிற்கு ஒரு வழி மட்டுமே — Google. Snowflake, Redshift அல்லது ClickHouse-க்கு இல்லை; மூன்றும் பொருள் சேமிப்பகத்திலிருந்து படிக்கக்கூடியவை.

ஒவ்வொரு கிடங்கிற்கும் அல்ல, பொருள் சேமிப்பகத்திற்கு இணைப்பு எழுதும். Snowflake S3-இலிருந்து, Redshift S3-இலிருந்து, ClickHouse S3-இலிருந்து, BigQuery Google Cloud Storage-இலிருந்து பெறும். ஒரு ஏற்றுமதி எல்லாவற்றிற்கும்.

இடம்முகவரியிடுதல்
Amazon S3Signature Version 4, ஹோஸ்டில் bucket
Cloudflare R2உங்கள் கணக்கு முனைப்புள்ளியில் Signature Version 4
Google Cloud StorageHMAC விசையுடன் S3-இணக்க API வழியாக
MinIO, Wasabi, Backblaze B2 மற்றும் பிறவைஉங்கள் முனைப்புள்ளியில் Signature Version 4
Azure Blob Storageகன்டெய்னர் SAS இணைப்பு — எங்கள் பக்கம் கையொப்பமில்லை

2. Azure வேறுபடுவதும் அதன் நன்மையும்

Azure Blob Signature Version 4 அல்ல, SharedKey பயன்படுத்தும். இரண்டாவது கையொப்ப முறைக்குப் பதிலாக எடுத்துக்கொள்வது: கன்டெய்னர் SAS இணைப்பு — உங்கள் கணக்கில் கையொப்பத்துடன் உருவாக்கும் URL.

எங்கள் குறியீடும் உங்கள் நம்பிக்கைத் தேவையும் குறையும். கணக்கு விசை கிடைப்பதே இல்லை; ஒரு கன்டெய்னருக்கான உங்கள் வரம்பு, உங்கள் முடிவுத் தேதி, மற்றதைத் தொடாமல் திரும்பப்பெறக்கூடிய அனுமதி மட்டும்.

S3-க்கும் இதே கட்டுப்பாடு நல்லது. விசைக்கு இந்த முன்னொட்டில் மட்டும் எழுத அனுமதி கொடுக்கவும். இதற்கு மட்டும் சேர்க்கும் விசை: mouseplayer/goals/ கசிந்தாலும் மற்ற bucket-களைப் படிக்க முடியாது.

3. இலக்கிற்கு ஒரு பொருள்; விசையில் தேதி

பொருள் சேமிப்பகத்தில் append இல்லை. தினசரிக் கோப்பை ஒவ்வொருமுறையும் முழுவதும் எழுத வேண்டும்; ஒரே நேர இலக்குகள் ஒன்றையொன்று அழிக்கும். எனவே ஒவ்வொரு இலக்கும் தனிப் பொருள்.

பல சிறு பொருட்கள் உருவாகும்; விசைக் கட்டமைப்பே நடைமுறைப்படுத்துகிறது:

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

கிடங்கு ஒரு நாளை ஒரு partition ஆகப் படிக்கும்; backfill முன்னொட்டு scan, வினவல் அல்ல. தேதிக்குப் பதில் திட்டவாரியாக வேண்டுமெனில் channel ID-ஐ முன்னொட்டில் இடவும்.

பொருளிற்கு ஒரு JSON வரி

உள்தள்ளலின்றி இருப்பதால் ஒவ்வொன்றையும் திறக்காமல் முன்னொட்டு NDJSON ஆகப் படிக்கலாம். நேரமுத்திரை, திட்டம், அமர்வு, வாடிக்கையாளர் ID, இலக்கு, மதிப்பு, நாணயம் மற்றும் பதிவின் இணைப்பு.

வெற்று மதிப்பு null; பூஜ்ஜியம் அல்ல

பண மதிப்பில்லாத இலக்கு எழுதுவது: null. பூஜ்ஜியம் இருந்தால் இல்லாத தொகையில் சேரும்; “தொகை ஒப்புக்கொள்ளவில்லை” மற்றும் “பூஜ்ஜியத் தொகை” வேறுபாடு ஏற்றுமதியிலும் நீடிக்கும்.

4. 403 வந்தால் முதலில் படிக்கவும்

மறுக்கப்பட்ட S3 கோரிக்கை அதிகம் சொல்லாது. எங்கள் பதிவில் உள்ள பிழைச் செய்தி S3-ஐவிட அதிகம் சொல்வதற்குக் காரணம்: பகுதி கையொப்பத்தில் சேரும். தவறான பகுதியும் விசையும் அதே 403 தரும்; விசை என்ற சந்தேகம் பாதி நேரம்தான் சரி.

இந்த வரிசையில் மூன்று சோதனைகள்:

  • பகுதி, bucket கூறியபடி. R2 மற்றும் Google Cloud Storage auto ஏற்று சோதிக்காது; மற்றவை சோதிக்கும்.
  • முன்னொட்டு அனுமதி. இந்த வரம்புள்ள விசை: mouseplayer/ இங்கே எழுத முடியாது: mouseplayer-goals/ — resource ARN-இல் இறுதிச் சாய்வுக்கோடு முக்கியம்.
  • முனைப்புள்ளிR2 மற்றும் S3-இணக்கச் சேமிப்பகங்களுக்கு. ஹோஸ்டை இதின்றி ஒட்டவும்: https://; எப்படியும் அகற்றுவோம், ஆனால் இணைத்த பாதை வேறு bucket.

Access key ID வேண்டுமென்றே வெளிப்படையாகச் சேமிக்கப்படும்; ஒவ்வொரு கையொப்பக் கோரிக்கையிலும் செல்கிறது. மறைகுறியாக்குவது பாதுகாப்பில்லா முயற்சி. secret மறைகுறியாக்கப்பட்டு மீண்டும் காட்டப்படாது; பணி வரிசையில் செல்லாது.

வர்த்தக முத்திரைகள் உரிமையாளர்களுடையவை. வழங்குநர்களுடன் MousePlayer-க்கு வணிக உறவு இல்லை.