Creare un Snowflake connessione di base tramite Flow Service API
Last update: Mon Jan 29 2024 00:00:00 GMT+0000 (Coordinated Universal Time)
Il Snowflake è disponibile nel catalogo delle origini per gli utenti che hanno acquistato Real-time Customer Data Platform Ultimate.
Una connessione di base rappresenta la connessione autenticata tra un'origine e Adobe Experience Platform.
Utilizza il seguente tutorial per scoprire come creare una connessione di base per Snowflake utilizzando [Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/).
Introduzione
Questa guida richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
- Sorgenti: Experience Platform consente di acquisire dati da varie origini e allo stesso tempo di strutturare, etichettare e migliorare i dati in arrivo tramite Platform servizi.
- Sandbox: Experience Platform fornisce sandbox virtuali che permettono di suddividere un singolo Platform in ambienti virtuali separati, per facilitare lo sviluppo e l’evoluzione delle applicazioni di esperienza digitale.
Per informazioni su come effettuare correttamente chiamate alle API di Platform, consulta la guida su introduzione alle API di Platform.
La sezione seguente fornisce informazioni aggiuntive che è necessario conoscere per connettersi correttamente a Snowflake utilizzando Flow Service API.
Raccogli le credenziali richieste
Per autenticare le credenziali, è necessario fornire i valori per le seguenti proprietà Snowflake sorgente.
Autenticazione chiave account
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 |
|
Credenziali |
Descrizione |
account |
Un nome di account identifica in modo univoco un account all’interno dell’organizzazione. In questo caso, devi identificare in modo univoco un account tra diversi Snowflake organizzazioni. A questo scopo, devi anteporre il nome della tua organizzazione al nome dell’account. Ad esempio: orgname-account_name . Per ulteriori informazioni sui nomi degli account, leggere Snowflake documentazione su identificatori dell’account. |
warehouse |
Il Snowflake warehouse gestisce il processo di esecuzione delle query per l'applicazione. Ogni Snowflake il data warehouse è indipendente l’uno dall’altro e deve essere accessibile singolarmente quando si trasferiscono i dati su Platform. |
database |
Il Snowflake Il database contiene i dati che desideri inserire in Platform. |
username |
Nome utente per Snowflake account. |
password |
La password per Snowflake account utente. |
role |
Ruolo di controllo di accesso predefinito da utilizzare nel Snowflake sessione. Il ruolo deve essere esistente e già assegnato all'utente specificato. Il ruolo predefinito è PUBLIC . |
connectionString |
Stringa di connessione utilizzata per la connessione al Snowflake dell'istanza. Schema della stringa di connessione per Snowflake è jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE} |
Autenticazione coppia di chiavi
Per utilizzare l'autenticazione con coppia di chiavi, è necessario generare una coppia di chiavi RSA a 2048 bit e quindi fornire i seguenti valori durante la creazione di un account per Snowflake sorgente.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 |
|
Credenziali |
Descrizione |
account |
Un nome di account identifica in modo univoco un account all’interno dell’organizzazione. In questo caso, devi identificare in modo univoco un account tra diversi Snowflake organizzazioni. A questo scopo, devi anteporre il nome della tua organizzazione al nome dell’account. Ad esempio: orgname-account_name . Per ulteriori informazioni sui nomi degli account, leggere Snowflake documentazione su identificatori dell’account. |
username |
Il nome utente del Snowflake account. |
privateKey |
Il Base64-chiave privata codificata del tuo Snowflake account. Puoi generare chiavi private crittografate o non crittografate. Se utilizzi una chiave privata crittografata, devi anche fornire una passphrase di chiave privata durante l’autenticazione in base a Experienci Platform. |
privateKeyPassphrase |
La passphrase per chiave privata è un ulteriore livello di sicurezza da utilizzare per l'autenticazione con una chiave privata crittografata. Se si utilizza una chiave privata non crittografata, non è necessario fornire la passphrase. |
database |
Il Snowflake database contenente i dati da acquisire in Experienci Platform. |
warehouse |
Il Snowflake warehouse gestisce il processo di esecuzione delle query per l'applicazione. Ogni Snowflake warehouse è indipendente l'uno dall'altro e deve essere accessibile singolarmente quando si trasferiscono i dati ad Experienci Platform. |
Per ulteriori informazioni su questi valori, fare riferimento al Snowflake guida all’autenticazione con coppia di chiavi.
È necessario impostare PREVENT_UNLOAD_TO_INLINE_URL
contrassegna per FALSE
per consentire lo scaricamento dei dati dal Snowflake database di cui eseguire l'Experience Platform.
Creare una connessione di base
Una connessione di base mantiene le informazioni tra l’origine e Platform, incluse le credenziali di autenticazione dell’origine, lo stato corrente della connessione e l’ID univoco della connessione di base. L’ID della connessione di base consente di esplorare e navigare tra i file dall’interno dell’origine e identificare gli elementi specifici che desideri acquisire, comprese le informazioni relative ai tipi di dati e ai formati.
Per creare un ID di connessione di base, effettua una richiesta POST al /connections
endpoint durante la fornitura del Snowflake credenziali di autenticazione come parte del corpo della richiesta.
Formato API
StringaConnessione
accordion |
Richiesta |
La richiesta seguente crea una connessione di base per Snowflake:
code language-shell |
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection",
"description": "Snowflake base connection",
"auth": {
"specName": "ConnectionString",
"params": {
"connectionString": "jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE}"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
|
table 0-row-2 1-row-2 2-row-2 |
|
Proprietà |
Descrizione |
auth.params.connectionString |
Stringa di connessione utilizzata per la connessione al Snowflake dell'istanza. Schema della stringa di connessione per Snowflake è jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE} . |
connectionSpec.id |
Il Snowflake ID specifica di connessione: b2e08744-4f1a-40ce-af30-7abac3e23cf3 . |
|
accordion |
Risposta |
In caso di esito positivo, la risposta restituisce la connessione appena creata, incluso il relativo identificatore univoco di connessione (id ). Questo ID è necessario per esplorare i dati nell’esercitazione successiva.
code language-json |
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
|
|
Autenticazione coppia di chiavi con chiave privata crittografata
accordion |
Richiesta |
code language-shell |
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection with encrypted private key",
"description": "Snowflake base connection with encrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"privateKeyPassphrase": "abcd1234",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 |
|
Proprietà |
Descrizione |
auth.params.account |
Il nome del tuo Snowflake account. |
auth.params.username |
Il nome utente associato al tuo Snowflake account. |
auth.params.database |
Il Snowflake database da cui verranno estratti i dati. |
auth.params.privateKey |
Il Base64-chiave privata crittografata codificata del tuo Snowflake account. |
auth.params.privateKeyPassphrase |
La passphrase che corrisponde alla chiave privata. |
auth.params.warehouse |
Il Snowflake data warehouse in uso. |
connectionSpec.id |
Il Snowflake ID specifica di connessione: b2e08744-4f1a-40ce-af30-7abac3e23cf3 . |
|
accordion |
Risposta |
In caso di esito positivo, la risposta restituisce la connessione appena creata, incluso il relativo identificatore univoco di connessione (id ). Questo ID è necessario per esplorare i dati nell’esercitazione successiva.
code language-json |
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
|
|
Autenticazione coppia di chiavi con chiave privata non crittografata
accordion |
Richiesta |
code language-shell |
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection with encrypted private key",
"description": "Snowflake base connection with encrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 |
|
Proprietà |
Descrizione |
auth.params.account |
Il nome del tuo Snowflake account. |
auth.params.username |
Il nome utente associato al tuo Snowflake account. |
auth.params.database |
Il Snowflake database da cui verranno estratti i dati. |
auth.params.privateKey |
Il Base64-chiave privata non crittografata codificata del tuo Snowflake account. |
auth.params.warehouse |
Il Snowflake data warehouse in uso. |
connectionSpec.id |
Il Snowflake ID specifica di connessione: b2e08744-4f1a-40ce-af30-7abac3e23cf3 . |
|
accordion |
Risposta |
In caso di esito positivo, la risposta restituisce la connessione appena creata, incluso il relativo identificatore univoco di connessione (id ). Questo ID è necessario per esplorare i dati nell’esercitazione successiva.
code language-json |
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
|
|
Seguendo questa esercitazione, hai creato una Snowflake connessione di base tramite Flow Service API. Puoi utilizzare questo ID connessione di base nelle seguenti esercitazioni: