---
title: "Snowflake konnektor"
description: "Teljes Snowflake integrációs útmutató adattárház-analitika, ügyfélszegmensek és üzleti intelligencia Brevóval való szinkronizációjához a Tajo segítségével."
url: https://tajo.io/hu/docs/connectors/custom/snowflake/
markdown: https://tajo.io/hu/docs/connectors/custom/snowflake.md
lang: hu-HU
robots: noindex
---

Kérj korai hozzáférést

Adja meg keresztnevét és munkahelyi e-mail-címét. Küldünk egy hivatkozást, amellyel megerősítheti a Tajo-hozzáférési kérelmét.

# Snowflake konnektor

Konnektor állapota: Tervezett Még nem készült el. A Tajo ma nem futtatja ezt a konnektort.

| Forrásmező | Célmező | Mintaérték |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Csatlakoztasd a Snowflake-et a Brevóhoz a Tajo segítségével, hogy szinkronizáld az ügyfélszegmenseket az adattárházadból, gazdagítsd a kapcsolatprofilokat analitikai adatokkal, és adattárház alapú insightokkal táplált személyre szabott marketingkampányokat futtass.

## Áttekintés

| Tulajdonság | Érték |
| --- | --- |
| **Platform** | Snowflake |
| **Kategória** | Adattárház (Egyéni) |
| **Telepítés bonyolultsága** | Közepes |
| **Hivatalos integráció** | Nem |
| **Szinkronizált adatok** | Ügyfelek, Szegmensek, Analitika, Események |
| **Hitelesítési módszer** | Kulcspár / OAuth 2.0 |

## Funkciók

- **Fordított ETL** – Ügyfélszegmensek küldése a Snowflake-ből Brevo kapcsolatlistákba
- **Közönség-szinkronizáció** – Adattárházban számított közönségek szinkronizálása célzott kampányokhoz
- **Analitika-gazdagítás** – Brevo kapcsolatok gazdagítása számított mutatókkal (LTV, RFM pontszámok)
- **SQL alapú lekérdezések** – A Snowflake SQL REST API használata lekérdezések programozott végrehajtásához
- **Ütemezett szinkronizáció** – Automatizált adatcsővezetékek futtatása konfigurálható időközönként
- **Több utasítás támogatása** – Összetett adatátalakítások végrehajtása egyetlen API hívásban

## Előfeltételek

Mielőtt elkezdenéd, győződj meg róla, hogy rendelkezel:

1. Egy Snowflake fiókkal ACCOUNTADMIN vagy SYSADMIN szerepkörrel
2. Egy Brevo fiókkal API-hozzáféréssel
3. Egy Tajo fiókkal konnektor engedélyekkel
4. Egy dedikált Snowflake adattárházzal az integráció lekérdezéseihez
5. Hálózati szabályzattal, amely engedélyezi a Tajo IP-címeket

## Hitelesítés

### Kulcspár hitelesítés (Ajánlott)

```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 hitelesítés

```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 hitelesítés

```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"}'
```

## Konfiguráció

### Alapbeállítás

```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
```

### Mezőleképezés

```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 végpontok

| Végpont | Módszer | Leírás |
| --- | --- | --- |
| `/api/v2/statements` | POST | SQL utasítások beküldése végrehajtásra |
| `/api/v2/statements/{statementHandle}` | GET | Végrehajtási státusz ellenőrzése |
| `/api/v2/statements/{statementHandle}/cancel` | POST | Futó utasítás megszakítása |
| `/api/v2/statements/{statementHandle}?partition={id}` | GET | Eredmény-partíciók lekérése |

SQL API partíciók

A Snowflake SQL API nagy eredménykészleteket partíciókban adja vissza. Minden partíció körülbelül 12 MB adatot tartalmaz. Használd a partition paramétert az eredmények bejárásához.

## Kódpéldák

### A konnektor inicializálása

```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'
});
```

### Ügyfélszegmensek szinkronizálása SQL API-n keresztül

```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] }
  });
}
```

### Fordított ETL csővezeték

```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'
    }
  }
});
```

## Ráta-korlátok

| Erőforrás | Korlát | Megjegyzések |
| --- | --- | --- |
| SQL API párhuzamos lekérdezések | 20 felhasználónként | Snowflake fiókonként |
| SQL API eredmény mérete | 12 MB/partíció | Oldalazás partíció azonosítókkal |
| Utasítás időtúllépés | 172 800 mp (48 óra) | Lekérdezésenként konfigurálható |
| API kérések | Terv szerint változó | Snowflake kiadástól függően |

Adattárház-költségek

A Snowflake számítási idő alapján számol fel díjat. Használj dedikált, megfelelően méretezett adattárházat a Tajo lekérdezésekhez, és állíts be automatikus felfüggesztést a költségek minimalizálásához.

## Hibaelhárítás

| Probléma | Ok | Megoldás |
| --- | --- | --- |
| Hitelesítés sikertelen | Lejárt JWT token | Generáld újra a JWT tokent érvényes lejárati idővel |
| Lekérdezési időtúllépés | Nagy adatkészlet | Adj hozzá szűrőket vagy használj növekményes szinkronizálást |
| Hálózati hiba | IP nincs fehérlistán | Add hozzá a Tajo IP-ket a Snowflake hálózati szabályzathoz |
| Hiányzó oszlopok | Sémaváltozás | Frissítsd a mezőleképezés konfigurációt |
| Partíciós hiba | Eredmény túl nagy | Dolgozd fel az eredményeket kisebb partíciókban |

### Hibakeresési mód

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

## Legjobb gyakorlatok

1. **Használj dedikált adattárházat** – Kerüld a versenyhelyzetet az éles munkaterhelésekkel
2. **Implementálj növekményes szinkronizálást** – Csak az utolsó szinkronizálás óta megváltozott rekordokat kérdezd le
3. **Állíts be automatikus felfüggesztést** – Konfiguráld az adattárházat, hogy 5 perc tétlenség után felfüggessze magát
4. **Használj kulcspár hitelesítést** – A kulcspárt részesítsd előnyben a jelszavas hitelesítéssel szemben
5. **Optimalizáld a lekérdezéseket** – Csak a szükséges oszlopokat szűrd és vetítsd ki a gyorsabb szinkronizáláshoz
6. **Figyeld a krediteket** – Kövesd a Snowflake kredit-fogyasztást az integrációs lekérdezéseknél

## Biztonság

- **Kulcspár hitelesítés** – RSA 2048 bites titkosítás az API-hozzáféréshez
- **OAuth 2.0** – Token alapú hitelesítés szerepkör-hatókörrel
- **Hálózati szabályzatok** – IP engedélyezési lista a Tajo szolgáltatásvégpontokhoz
- **Szerepkör alapú hozzáférés** – Dedikált Snowflake szerepkör minimálisan szükséges jogosultságokkal
- **Titkosított adatátvitel** – TLS 1.2+ minden API kommunikációhoz
- **Adatmaszkolás** – Snowflake dinamikus adatmaszkolás használata érzékeny mezőkhöz

## Kapcsolódó források

- [Segment konnektor](https://tajo.io/hu/docs/connectors/custom/segment)
- [PostHog konnektor](https://tajo.io/hu/docs/connectors/custom/posthog)
- [Ügyfél-szinkronizáció Skill](https://tajo.io/hu/docs/skills/data-sync/customer-sync)
- [Snowflake SQL API dokumentáció](https://docs.snowflake.com/en/developer-guide/sql-api/guide)
