डेटा वेयरहाउस: BigQuery, Snowflake और Redshift में एक्सपोर्ट करें
CRM ऑब्जेक्ट्स (लीड्स, कॉन्टैक्ट्स, अवसर…) को अपने डेटा वेयरहाउस में भेजें। BigQuery ऑटोमैटिक है; Snowflake और Redshift फाइल + COPY का उपयोग करते हैं।
डेटा वेयरहाउस इंटीग्रेशन आपके CRM ऑब्जेक्ट्स को आपकी कंपनी के वेयरहाउस में EXPORT करता है ("bring your own account" मॉडल, या BYO)। वेयरहाउस आपका है: हमारी तरफ से कोई लागत, मार्जिन या बिचौलियापन (intermediation) नहीं है। सब कुछ निष्क्रिय (inert) शुरू होता है: जब तक आप क्रेडेंशियल्स कॉन्फ़िगर करके सक्रिय नहीं करते, तब तक कुछ नहीं भेजा जाता। पढ़ना हमेशा आपके टेनेंट के डेटा तक सीमित रहता है।
हर ऑब्जेक्ट को स्थिर (stable) कॉलम्स वाली rows के रूप में एक्सपोर्ट किया जाता है: id, created_at, updated_at, owner_id और हर फील्ड के लिए एक कॉलम (फील्ड का api_name)। BI कनेक्टर जैसे ही कॉलम्स, इसलिए आप एक बार मैप करते हैं।
पूर्वापेक्षाएं
- BigQuery: Google Cloud में एक प्रोजेक्ट, एक टारगेट dataset और उस dataset पर "BigQuery Data Editor" रोल वाला एक service account, साथ ही उस अकाउंट के लिए एक JSON key।
- Snowflake/Redshift: फाइल प्राप्त करने के लिए आपके नियंत्रण में एक staging लोकेशन (S3/GCS/Azure bucket का signed URL), और COPY कमांड चलाने के लिए वेयरहाउस तक एक्सेस।
- Sellio में, Settings → Integrations में क्रेडेंशियल्स सेव करने और एक्सपोर्ट सक्रिय करने के लिए एडमिनिस्ट्रेटर एक्सेस।
कहां कॉन्फ़िगर करें
- Settings → Integrations खोलें।
- अपने वेयरहाउस का कार्ड चुनें: Google BigQuery, Snowflake या Amazon Redshift।
- क्रेडेंशियल्स भरें, एक्सपोर्ट करने के लिए ऑब्जेक्ट्स चुनें और सक्रिय करें।
- मांग पर भेजने के लिए "अभी एक्सपोर्ट करें" का उपयोग करें।
BigQuery (ऑटोमैटिक भेजना)
BigQuery में भेजना ऑटोमैटिक है, streaming (tabledata.insertAll) के ज़रिए। आप एक service account लाते हैं और हम सीधे आपकी टेबल्स में लिखते हैं।
- Google Cloud में, एक service account बनाएं और उसे टारगेट dataset पर "BigQuery Data Editor" रोल दें।
- उस service account के लिए एक JSON key जनरेट करें।
- dataset में, स्थिर कॉलम्स के साथ हर ऑब्जेक्ट के लिए एक टेबल बनाएं (id STRING, created_at TIMESTAMP, updated_at TIMESTAMP, owner_id STRING और हर फील्ड के लिए एक कॉलम)।
- BigQuery कार्ड पर, Project ID, Dataset, एक वैकल्पिक टेबल प्रीफ़िक्स दर्ज करें और key JSON पेस्ट करें। सक्रिय करें और "अभी एक्सपोर्ट करें" पर क्लिक करें।
Snowflake और Redshift (फाइल + COPY)
Snowflake और Redshift के लिए, हम हर ऑब्जेक्ट के लिए एक फाइल जनरेट करते हैं (डिफ़ॉल्ट रूप से NDJSON, या CSV) और उसे आपके नियंत्रण वाले staging URL पर भेजते हैं, उदाहरण के लिए आपके S3/GCS/Azure bucket का signed URL। वेयरहाउस में अंतिम लोड COPY कमांड से होता है, जिसे आप अपने वेयरहाउस में चलाते हैं (या शेड्यूल करते हैं)।
- Snowflake/Redshift कार्ड पर, staging URL (फाइल का डेस्टिनेशन), फॉर्मेट (NDJSON या CSV) दर्ज करें, और अगर डेस्टिनेशन को इसकी ज़रूरत हो तो authentication header + secret भी।
- ऑब्जेक्ट्स चुनें और सक्रिय करें। "अभी एक्सपोर्ट करें" पर क्लिक करें: हम फाइल को आपके staging पर PUT करते हैं।
- अपने वेयरहाउस में, staging से टेबल में फाइल लोड करने के लिए COPY चलाएं।
कैसे टेस्ट करें
- कनेक्टर सक्रिय करें, एक ऑब्जेक्ट चुनें और "अभी एक्सपोर्ट करें" पर क्लिक करें।
- BigQuery: dataset में <prefix><api_name> टेबल खोलें और पुष्टि करें कि rows पहुंच गई हैं (वही batch दोबारा भेजने पर डुप्लिकेट नहीं होता, क्योंकि insertId रिकॉर्ड की id है)।
- Snowflake/Redshift: पुष्टि करें कि फाइल आपके staging पर लिखी गई (PUT के ज़रिए); फिर COPY चलाएं और टेबल में rows जांचें।
समस्या निवारण
- BigQuery 403/permission denied: service account के पास dataset पर "BigQuery Data Editor" नहीं है, या JSON key अधूरी है। रोल दोबारा दें और JSON दोबारा पेस्ट करें।
- BigQuery "table not found": पहले स्थिर कॉलम्स के साथ प्रति-ऑब्जेक्ट टेबल बनाएं (id STRING, created_at/updated_at TIMESTAMP, owner_id STRING और हर फील्ड के लिए एक कॉलम)। नाम है <prefix><api_name>।
- Snowflake/Redshift: staging पर PUT विफल होता है: signed URL एक्सपायर हो गया है या लिखने की अनुमति नहीं देता, या डेस्टिनेशन का authentication header गलत है। एक नया URL जनरेट करें और secret जांचें।
- COPY लोड नहीं होता: FILE_FORMAT (NDJSON बनाम CSV) और कॉलम मैपिंग की समीक्षा करें (जैसे, Snowflake में MATCH_BY_COLUMN_NAME; Redshift में FORMAT AS JSON)।
- कुछ भी एक्सपोर्ट नहीं होता: पुष्टि करें कि कनेक्टर ACTIVATED है और ऑब्जेक्ट्स चुने गए हैं।