Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

Snowflake-kobling

Koblingsstatus: Planlagt Ikke bygget ennå. Tajo kjører ikke denne koblingen i dag.

Illustrasjon · eksempeldata

Eksempel på synkronisering

Se gjennom én oppføring

Kilde

Snowflake

Koblingsstatus: Planlagt

Mål

Det andre verktøyet ditt

Koblingsstatus: Eget verktøy

KildefeltMålfeltEksempelverdi
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Utkast
  2. Se gjennom én oppføring
  3. Godkjenn denne versjonen

Status gjelder hver enkelt kobling og garanterer ikke at denne synkroniseringen er klar. Feltene er illustrative. Kontroller faktisk skjema og tillatelser før synkroniseringen kjører.

Koble Snowflake til Brevo gjennom Tajo for å synkronisere kundesegmenter fra datalageret ditt, berike kontaktprofiler med analysedata og drive personaliserte markedsføringskampanjer med lagerdrevet innsikt.

Oversikt

EgenskapVerdi
PlattformSnowflake
KategoriDatalager (Custom)
OppsettskompleksitetModerat
Offisiell integrasjonNei
Synkroniserte dataKunder, segmenter, analyse, hendelser
AutentiseringsmetodeNøkkelpar / OAuth 2.0

Funksjoner

  • Reverse ETL - Push kundesegmenter fra Snowflake til Brevo-kontaktlister
  • Målgruppesynkronisering - Synkroniser lagerberegnede målgrupper for målrettede kampanjer
  • Analyseberikelse - Berik Brevo-kontakter med beregnede målinger (LTV, RFM-score)
  • SQL-baserte spørringer - Bruk Snowflake SQL REST API for å kjøre spørringer programmatisk
  • Planlagt synkronisering - Kjør automatiserte datapipelines med konfigurerbare intervaller
  • Støtte for flere utsagn - Kjør komplekse datatransformasjoner i enkle API-kall

Forutsetninger

Før du begynner, sørg for at du har:

  1. En Snowflake-konto med ACCOUNTADMIN- eller SYSADMIN-rollen
  2. En Brevo-konto med API-tilgang
  3. En Tajo-konto med konnektor-rettigheter
  4. Et dedikert Snowflake-warehouse for integrasjonsspørringer
  5. En nettverkspolicy som tillater Tajo-IP-adresser

Autentisering

Nøkkelparautentisering (anbefalt)

Terminal window
# Generer RSA-nøkkelpar
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
# Tildel offentlig nøkkel til Snowflake-bruker
# I Snowflake:
# ALTER USER tajo_integration SET RSA_PUBLIC_KEY='MII...';

OAuth 2.0-autentisering

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

Terminal window
# Bruker JWT-token med 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"}'

Konfigurasjon

Grunnleggende oppsett

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 * * *" # Hver 6. time
queries:
customer_segments: |
SELECT email, segment_name, ltv_score, rfm_class
FROM customer_segments
WHERE updated_at > :last_sync

Feltmapping

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

EndepunktMetodeBeskrivelse
/api/v2/statementsPOSTSend inn SQL-utsagn for kjøring
/api/v2/statements/{statementHandle}GETSjekk kjøringsstatus
/api/v2/statements/{statementHandle}/cancelPOSTAvbryt et kjørende utsagn
/api/v2/statements/{statementHandle}?partition={id}GETHent resultatpartisjoner

SQL API-partisjoner

Snowflake SQL API returnerer store resultatsett i partisjoner. Hver partisjon inneholder opptil omtrent 12 MB data. Bruk partisjonsparameteren for å iterere gjennom resultater.

Kodeeksempler

Initialiser kobling

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

Synkroniser kundesegmenter via SQL API

// Kjør en SQL-spørring 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 resultater
let status = result.statementStatusUrl;
while (result.code !== '090001') {
const check = await fetch(status, {
headers: { 'Authorization': `Bearer ${jwtToken}` }
});
result = await check.json();
}
// Synkroniser til 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-pipeline

// Push beregnede målgrupper fra Snowflake til Brevo-lister
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'
}
}
});

Ratebegrensninger

RessursGrenseMerknader
SQL API samtidige spørringer20 per brukerPer Snowflake-konto
SQL API-resultatstørrelse12 MB per partisjonPaginer med partisjons-ID-er
Utsagnstidsavbrudd172 800 sek (48 t)Konfigurerbart per spørring
API-forespørslerVarierer etter planBasert på Snowflake-versjon

Warehouse-kostnader

Snowflake fakturerer basert på kompute-tid. Bruk et dedikert, riktig dimensjonert warehouse for Tajo-spørringer og sett auto-suspend for å minimere kostnader.

Feilsøking

ProblemÅrsakLøsning
Autentisering mislyktesUtløpt JWT-tokenRegenerer JWT med gyldig utløp
SpørringstidsavbruddStort datasettLegg til filtre eller bruk inkrementell synkronisering
NettverksfeilIP ikke hvitelistetLegg Tajo-IP-er til Snowflake-nettverkspolicyen
Manglende kolonnerSkjemaendringOppdater feltmappingkonfigurasjon
PartisjonsfeilResultat for stortBehandle resultater i mindre partisjoner

Feilsøkingsmodus

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

Beste praksis

  1. Bruk et dedikert warehouse - Unngå konflikt med produksjonsarbeidslast
  2. Implementer inkrementell synkronisering - Spør kun om endrede poster siden siste synkronisering
  3. Sett auto-suspend - Konfigurer warehouse til å suspendere etter 5 minutter med inaktivitet
  4. Bruk nøkkelparautentisering - Foretrekk nøkkelpar fremfor passordautentisering
  5. Optimaliser spørringer - Filtrer og projiser kun nødvendige kolonner for raskere synkroniseringer
  6. Overvåk kreditter - Spor Snowflake-kredittforbruk for integrasjonsspørringer

Sikkerhet

  • Nøkkelparautentisering - RSA 2048-bits kryptering for API-tilgang
  • OAuth 2.0 - Token-basert autentisering med rollescoping
  • Nettverkspolicyer - IP-hviteliste for Tajo-tjenesteendepunkter
  • Rollebasert tilgang - Dedikert Snowflake-rolle med minimalt nødvendige rettigheter
  • Kryptert dataoverføring - TLS 1.2+ for all API-kommunikasjon
  • Datamaskering - Bruk Snowflakes dynamiske datamaskering for sensitive felt

Relaterte ressurser

Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

AI-assistent

Hei! Spør meg om dokumentasjonen.

Denne siden som Markdown: snowflake.md

Laster inn Markdown …
Åpne i Claude Åpne i ChatGPT