---
title: "Snowflake کنیکٹر"
description: "Tajo کے ذریعے ڈیٹا ویئر ہاؤس اینالیٹکس، گاہک سیگمنٹس، اور بزنس انٹیلیجنس کو Brevo کے ساتھ سنک کرنے کے لیے مکمل Snowflake انٹیگریشن گائیڈ۔"
url: https://tajo.io/ur/docs/connectors/custom/snowflake/
markdown: https://tajo.io/ur/docs/connectors/custom/snowflake.md
lang: ur-PK
robots: noindex
---

ابتدائی رسائی کی درخواست کریں

اپنا پہلا نام اور دفتری ای میل پتہ درج کریں۔ ہم Tajo تک رسائی کی درخواست کی تصدیق کے لیے ایک لنک ای میل کریں گے۔

# Snowflake کنیکٹر

کنیکٹر کی حیثیت: منصوبہ بند ابھی تیار نہیں ہوا۔ Tajo آج یہ کنیکٹر نہیں چلاتا۔

| ماخذ فیلڈ | منزل فیلڈ | نمونہ قدر |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

اپنے ڈیٹا ویئر ہاؤس سے گاہک سیگمنٹس سنک کرنے، اینالیٹکس ڈیٹا کے ساتھ رابطہ پروفائلز کو افزودہ کرنے، اور ویئر ہاؤس سے چلنے والی بصیرتوں کے ساتھ ذاتی نوعیت کی مارکیٹنگ مہمات کو طاقت دینے کے لیے Tajo کے ذریعے Snowflake کو Brevo سے منسلک کریں۔

## جائزہ

| خاصیت | قدر |
| --- | --- |
| **پلیٹ فارم** | Snowflake |
| **زمرہ** | ڈیٹا ویئر ہاؤس (کسٹم) |
| **سیٹ اپ کی پیچیدگی** | درمیانی |
| **آفیشل انٹیگریشن** | نہیں |
| **سنک شدہ ڈیٹا** | گاہک، سیگمنٹس، اینالیٹکس، ایونٹس |
| **تصدیق کا طریقہ** | Key Pair / OAuth 2.0 |

## خصوصیات

- **Reverse ETL** - Snowflake سے گاہک سیگمنٹس کو Brevo رابطہ فہرستوں پر دھکیلیں
- **آڈیئنس سنک** - ٹارگٹڈ مہمات کے لیے ویئر ہاؤس سے تیار شدہ آڈیئنسز سنک کریں
- **اینالیٹکس افزودگی** - حساب شدہ میٹرکس (LTV, RFM اسکورز) کے ساتھ Brevo رابطوں کو افزودہ کریں
- **SQL پر مبنی کوئریز** - پروگرامی طور پر کوئریز انجام دینے کے لیے Snowflake SQL REST API استعمال کریں
- **شیڈولڈ سنک** - قابل ترتیب وقفوں پر خودکار ڈیٹا پائپ لائنز چلائیں
- **ملٹی اسٹیٹمنٹ سپورٹ** - ایک ہی API کالز میں پیچیدہ ڈیٹا تبدیلیاں انجام دیں

## شرائط

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

1. ACCOUNTADMIN یا SYSADMIN رول کے ساتھ Snowflake اکاؤنٹ
2. API رسائی کے ساتھ Brevo اکاؤنٹ
3. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ
4. انٹیگریشن کوئریز کے لیے ایک مخصوص Snowflake ویئر ہاؤس
5. Tajo IP پتوں کی اجازت دینے والی نیٹ ورک پالیسی

## تصدیق

### Key Pair تصدیق (تجویز کردہ)

```bash
# Generate RSA key pair
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

# Assign public key to Snowflake user
# In Snowflake:
# ALTER USER tajo_integration SET RSA_PUBLIC_KEY='MII...';
```

### OAuth 2.0 تصدیق

```javascript
const tokenResponse = await fetch(
  'https://<account>.snowflakecomputing.com/oauth/token-request',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: new URLSearchParams({
      grant_type: 'client_credentials',
      client_id: process.env.SNOWFLAKE_CLIENT_ID,
      client_secret: process.env.SNOWFLAKE_CLIENT_SECRET,
      scope: 'session:role:TAJO_ROLE'
    })
  }
);
```

### SQL API تصدیق

```bash
# Using JWT token with the SQL API
curl -X POST \
  'https://<account>.snowflakecomputing.com/api/v2/statements' \
  -H 'Authorization: Bearer <jwt_token>' \
  -H 'Content-Type: application/json' \
  -H 'X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT' \
  -d '{"statement": "SELECT * FROM customers LIMIT 10", "warehouse": "TAJO_WH"}'
```

## تشکیل

### بنیادی سیٹ اپ

```yaml
connectors:
  snowflake:
    enabled: true
    account: "your-account.snowflakecomputing.com"
    warehouse: "TAJO_WH"
    database: "MARKETING_DB"
    schema: "PUBLIC"
    role: "TAJO_ROLE"

    sync:
      customers: true
      segments: true
      analytics: true
      schedule: "0 */6 * * *"  # Every 6 hours

    queries:
      customer_segments: |
        SELECT email, segment_name, ltv_score, rfm_class
        FROM customer_segments
        WHERE updated_at > :last_sync
```

### فیلڈ میپنگ

```yaml
field_mapping:
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  ltv_score: LTV_SCORE
  rfm_class: RFM_SEGMENT
  total_orders: ORDER_COUNT
  last_purchase_date: LAST_ORDER_DATE
  predicted_churn: CHURN_RISK
  customer_segment: SEGMENT_NAME
```

## API اینڈ پوائنٹس

| اینڈ پوائنٹ | طریقہ | تفصیل |
| --- | --- | --- |
| `/api/v2/statements` | POST | عمل درآمد کے لیے SQL اسٹیٹمنٹس جمع کرائیں |
| `/api/v2/statements/{statementHandle}` | GET | عمل درآمد کی حیثیت چیک کریں |
| `/api/v2/statements/{statementHandle}/cancel` | POST | چلتی اسٹیٹمنٹ کو منسوخ کریں |
| `/api/v2/statements/{statementHandle}?partition={id}` | GET | نتیجہ پارٹیشنز حاصل کریں |

SQL API پارٹیشنز

Snowflake SQL API بڑے نتیجہ سیٹس کو پارٹیشنز میں واپس کرتا ہے۔ ہر پارٹیشن میں تقریباً 12MB تک ڈیٹا ہوتا ہے۔ نتائج کے ذریعے دہرانے کے لیے partition پیرامیٹر استعمال کریں۔

## کوڈ کی مثالیں

### کنیکٹر کو انیشیلائز کریں

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

await tajo.connectors.connect('snowflake', {
  account: process.env.SNOWFLAKE_ACCOUNT,
  privateKey: process.env.SNOWFLAKE_PRIVATE_KEY,
  warehouse: 'TAJO_WH',
  database: 'MARKETING_DB',
  schema: 'PUBLIC'
});
```

### SQL API کے ذریعے گاہک سیگمنٹس سنک کریں

```javascript
// Execute a SQL query via Snowflake SQL REST API
const response = await fetch(
  `https://${account}.snowflakecomputing.com/api/v2/statements`,
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${jwtToken}`,
      'Content-Type': 'application/json',
      'X-Snowflake-Authorization-Token-Type': 'KEYPAIR_JWT'
    },
    body: JSON.stringify({
      statement: `SELECT email, segment, ltv FROM customer_segments
                  WHERE updated_at > '${lastSync}'`,
      warehouse: 'TAJO_WH',
      database: 'MARKETING_DB',
      schema: 'PUBLIC',
      timeout: 120
    })
  }
);

const result = await response.json();
const statementHandle = result.statementHandle;

// Poll for results
let status = result.statementStatusUrl;
while (result.code !== '090001') {
  const check = await fetch(status, {
    headers: { 'Authorization': `Bearer ${jwtToken}` }
  });
  result = await check.json();
}

// Sync to Brevo via Tajo
for (const row of result.data) {
  await tajo.contacts.sync({
    email: row[0],
    attributes: { SEGMENT: row[1], LTV: row[2] }
  });
}
```

### Reverse ETL پائپ لائن

```javascript
// Push computed audiences from Snowflake to Brevo lists
await tajo.connectors.sync('snowflake', {
  type: 'reverse-etl',
  query: `
    SELECT email, first_name, last_name, predicted_ltv, churn_score
    FROM ml_predictions.customer_scores
    WHERE score_date = CURRENT_DATE()
  `,
  destination: {
    list_id: 42,
    attribute_mapping: {
      predicted_ltv: 'PREDICTED_LTV',
      churn_score: 'CHURN_SCORE'
    }
  }
});
```

## شرح کی حدود

| وسیلہ | حد | نوٹس |
| --- | --- | --- |
| SQL API بیک وقتی کوئریز | 20 فی صارف | فی Snowflake اکاؤنٹ |
| SQL API نتیجہ سائز | 12MB فی پارٹیشن | پارٹیشن IDs کے ساتھ پیجینیٹ کریں |
| اسٹیٹمنٹ ٹائم آؤٹ | 172,800 سیکنڈ (48 گھنٹے) | فی کوئری قابل ترتیب |
| API درخواستیں | پلان کے مطابق مختلف | Snowflake ایڈیشن پر مبنی |

ویئر ہاؤس کی لاگت

Snowflake کمپیوٹ وقت کی بنیاد پر چارج کرتا ہے۔ Tajo کوئریز کے لیے ایک مخصوص، مناسب سائز کا ویئر ہاؤس استعمال کریں اور لاگت کم سے کم کرنے کے لیے آٹو سسپنڈ سیٹ کریں۔

## ٹربل شوٹنگ

| مسئلہ | وجہ | حل |
| --- | --- | --- |
| تصدیق ناکام | میعاد ختم JWT ٹوکن | درست میعاد ختم ہونے کے ساتھ JWT دوبارہ بنائیں |
| کوئری ٹائم آؤٹ | بڑا ڈیٹا سیٹ | فلٹرز شامل کریں یا انکریمنٹل سنک استعمال کریں |
| نیٹ ورک کی غلطی | IP وائٹ لسٹ نہیں | Snowflake نیٹ ورک پالیسی میں Tajo IPs شامل کریں |
| غائب کالمز | اسکیما تبدیلی | فیلڈ میپنگ تشکیل اپ ڈیٹ کریں |
| پارٹیشن کی غلطی | نتیجہ بہت بڑا | چھوٹے پارٹیشنز میں نتائج پروسیس کریں |

### ڈیبگ موڈ

```yaml
connectors:
  snowflake:
    debug: true
    log_level: verbose
    log_queries: true
```

## بہترین طرز عمل

1. **مخصوص ویئر ہاؤس استعمال کریں** - پروڈکشن ورک لوڈز کے ساتھ تنازعہ سے بچیں
2. **انکریمنٹل سنک نافذ کریں** - آخری سنک کے بعد صرف تبدیل شدہ ریکارڈز کوئری کریں
3. **آٹو سسپنڈ سیٹ کریں** - 5 منٹ کی غیر فعالیت کے بعد ویئر ہاؤس کو سسپنڈ کرنے کے لیے ترتیب دیں
4. **Key pair auth استعمال کریں** - پاس ورڈ تصدیق پر key pair کو ترجیح دیں
5. **کوئریز کو بہتر بنائیں** - تیز سنک کے لیے صرف ضروری کالمز فلٹر اور پروجیکٹ کریں
6. **کریڈٹس کی نگرانی کریں** - انٹیگریشن کوئریز کے لیے Snowflake کریڈٹ کھپت ٹریک کریں

## سیکیورٹی

- **Key pair تصدیق** - API رسائی کے لیے RSA 2048-bit انکرپشن
- **OAuth 2.0** - رول اسکوپنگ کے ساتھ ٹوکن پر مبنی تصدیق
- **نیٹ ورک پالیسیز** - Tajo سروس اینڈ پوائنٹس کے لیے IP اجازت دینا
- **رول پر مبنی رسائی** - کم از کم مطلوبہ مراعات کے ساتھ مخصوص Snowflake رول
- **انکرپٹڈ ڈیٹا منتقلی** - تمام API مواصلات کے لیے TLS 1.2+
- **ڈیٹا ماسکنگ** - حساس فیلڈز کے لیے Snowflake ڈائنامک ڈیٹا ماسکنگ استعمال کریں

## متعلقہ وسائل

- [Segment کنیکٹر](https://tajo.io/ur/docs/connectors/custom/segment)
- [PostHog کنیکٹر](https://tajo.io/ur/docs/connectors/custom/posthog)
- [گاہک سنک اسکل](https://tajo.io/ur/docs/skills/data-sync/customer-sync)
- [Snowflake SQL API دستاویزات](https://docs.snowflake.com/en/developer-guide/sql-api/guide)
