Per connettere Looker a Snowflake:
- Crea un utente Looker su Snowflake e fornisci l'accesso.
- Configura una connessione al database in Looker.
Crittografia del traffico di rete
È una best practice criptare il traffico di rete tra l'applicazione Looker e il tuo database. Valuta una delle opzioni descritte nella pagina della documentazione Abilitare l'accesso sicuro ai database.
Creazione di un utente Looker su Snowflake
Ti consigliamo i seguenti comandi per creare l'utente Looker. Assicurati di eseguire ogni riga singolarmente o seleziona l'opzione Tutte le query nel pannello di connessione Snowflake per assicurarti che tutte le righe vengano eseguite (per impostazione predefinita, Snowflake esegue solo le righe selezionate):
Ti consigliamo di aggiungere la parola chiave ON FUTURE
a ogni istruzione GRANT
in modo che gli oggetti appena creati abbiano le stesse autorizzazioni senza che siano necessarie ulteriori azioni.
-- change role to ACCOUNTADMIN
use role ACCOUNTADMIN;
-- create role for looker
create role if not exists looker_role;
grant role looker_role to role SYSADMIN;
-- Note that we are not making the looker_role a SYSADMIN,
-- but rather granting users with the SYSADMIN role to modify the looker_role
-- create a user for looker
create user if not exists looker_user
password = <enter password here>;
grant role looker_role to user looker_user;
alter user looker_user
set default_role = looker_role
default_warehouse = looker_wh;
-- change role
use role SYSADMIN;
-- create a warehouse for looker (optional)
create warehouse if not exists looker_wh
-- set the size based on your dataset
warehouse_size = medium
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;
grant all privileges
on warehouse looker_wh
to role looker_role;
-- grant read only database access (repeat for all database/schemas)
grant usage on database <database> to role looker_role;
grant usage on schema <database>.<schema> to role looker_role;
-- rerun the following any time a table is added to the schema
grant select on all tables in schema <database>.<schema> to role looker_role;
-- or
grant select on future tables in schema <database>.<schema> to role looker_role;
-- create schema for looker to write back to
use database <database>;
create schema if not exists looker_scratch;
use role ACCOUNTADMIN;
grant ownership on schema looker_scratch to role SYSADMIN revoke current grants;
grant all on schema looker_scratch to role looker_role;
Creazione della connessione Looker al tuo database
Nella sezione Amministrazione di Looker, seleziona Connessioni e poi fai clic su Aggiungi connessione.
Compila i dettagli della connessione. La maggior parte delle impostazioni è comune alla maggioranza dei dialetti di database. Per informazioni, consulta la pagina della documentazione Connessione di Looker al tuo database. Le seguenti descrizioni delle impostazioni contengono note specifiche per Snowflake:
Impostazioni del database - Host: inserisci il nome host Snowflake. L'aspetto sarà simile a questo: <account_name>.snowflakecomputing.com
. Consulta gli esempi di nomi di account Snowflake per regione per assicurarti di utilizzare il valore corretto per la tua implementazione.
Impostazioni database - Metodo di autenticazione: seleziona uno dei seguenti metodi di autenticazione:
L'account database deve essere utilizzato solo dai clienti esistenti che hanno bisogno di tempo per passare a un metodo di autenticazione a più fattori prima della scadenza di novembre 2025 di Snowflake. Specifica il nome utente e la password dell'account utente Snowflake che verrà utilizzato per connettersi a Looker.
Coppia di chiavi deve essere utilizzata dai clienti che vogliono implementare l'autenticazione con coppia di chiavi di Snowflake per connettersi al proprio database. Specifica l'account utente che verrà utilizzato per connettersi a Snowflake nel campo Nome utente. Carica un file di chiave in formato p8 non criptato nel campo File di coppia di chiavi. I file di chiave criptati non sono supportati. La documentazione di Snowflake descrive come creare un file della chiave privata.
OAuth deve essere utilizzato dai clienti che non hanno bisogno di tabelle derivate persistenti (PDT) e vogliono configurare OAuth per la connessione.
(Facoltativo) Impostazioni - Abilita PDT: le PDT non sono supportate per le connessioni Snowflake che utilizzano l'autenticazione OAuth. Se sono necessarie PDT, utilizza l'opzione di autenticazione Coppia di chiavi.
(Facoltativo) Impostazioni - Parametri JDBC aggiuntivi: aggiungi parametri JDBC aggiuntivi dal driver JDBC di Snowflake.
- Aggiungi
warehouse=<YOUR WAREHOUSE NAME>
. Inoltre, per impostazione predefinita, Looker imposterà i seguenti parametri Snowflake su ogni sessione:
TIMESTAMP_TYPE_MAPPING=TIMESTAMP_LTZ
JDBC_TREAT_DECIMAL_AS_INT=FALSE
TIMESTAMP_INPUT_FORMAT=AUTO
AUTOCOMMIT=TRUE
Puoi eseguire l'override di ciascuno di questi parametri impostando un valore alternativo nel campo Parametri JDBC aggiuntivi, ad esempio:
&AUTOCOMMIT=FALSE
Per verificare che la connessione sia riuscita, fai clic su Testa. Per informazioni sulla risoluzione dei problemi, consulta la pagina della documentazione Testare la connettività del database.
Per salvare queste impostazioni, fai clic su Connetti.
Designare i warehouse Snowflake in base al gruppo o all'utente
Puoi utilizzare gli attributi utente di Looker per assegnare warehouse Snowflake separati a singoli utenti o gruppi di utenti di Looker. Ciò è utile, ad esempio, se hai utenti che richiedono diversi livelli di potenza di calcolo. Puoi assegnare un warehouse con maggiori risorse di calcolo solo agli utenti che ne hanno bisogno, mentre assegni un warehouse con meno risorse agli utenti con esigenze minori.
Per designare i magazzini in base al gruppo o all'utente:
- Aggiungi i gruppi o gli utenti in Looker.
Definisci un attributo utente in Looker in cui verranno archiviati i nomi dei warehouse Snowflake. Puoi assegnare a questo attributo qualsiasi nome, ad esempio
snowflake_wh
.Nell'attributo utente che hai appena definito, assegna i valori del nome del magazzino ai gruppi o agli utenti che avranno bisogno di un accesso diverso al magazzino.
Nel campo Parametri JDBC aggiuntivi nella pagina Impostazioni connessione, aggiungi quanto segue, sostituendo
snowflake_warehouse
con il nome dell'attributo utente che hai definito:warehouse={{ _user_attributes['snowflake_warehouse'] }}
Per testare le singole impostazioni di connessione, puoi utilizzare sudo come utente a cui hai assegnato un valore del nome del warehouse.
Gestione della funzionalità di sospensione automatica di Snowflake
I warehouse Snowflake hanno una funzionalità di sospensione automatica abilitata per impostazione predefinita. Dopo un periodo specificato, il magazzino verrà sospeso automaticamente. Se il warehouse è sospeso, tutte le query generano un errore. Questo errore non è visibile nelle dashboard (normalmente questi errori non mostrano dati), ma è visibile a qualsiasi utente che esegue query con la pagina Esplora.
In genere vengono utilizzati due metodi per gestire questo problema:
Snowflake dispone di una funzionalità di ripristino automatico che ripristina il warehouse quando viene eseguita una query. Tuttavia, la ripresa del warehouse può richiedere fino a cinque minuti, causando l'interruzione della risposta alle query per cinque minuti prima della restituzione. La ripresa automatica non può essere configurata in Looker. Attiva queste funzionalità nella scheda Warehouses nell'interfaccia utente di Snowflake:
Se sono state attivate le tabelle derivate permanenti (PDT), l'impostazione predefinita di Looker prevede il controllo della rigenerazione delle tabelle derivate ogni 5 minuti. Questo controllo manterrà attivi i warehouse Snowflake. Tuttavia, potresti voler che Snowflake sospenda i warehouse durante le ore non lavorative per ridurre i costi. Ciò può essere ottenuto modificando la pianificazione della rigenerazione del PDT, come descritto nella documentazione sulla pianificazione della manutenzione.
Supporto PDT
Le PDT non sono supportate per le connessioni Snowflake che utilizzano OAuth.
Per il supporto delle tabelle derivate persistenti, crea un account utente Snowflake per le PDT con accesso in scrittura al tuo database e allo schema temporaneo che Looker utilizzerà per creare le PDT. Nella pagina Impostazioni connessioni di Looker, nella scheda Impostazioni facoltative della sezione Impostazioni tabella derivata permanente (PDT), attiva il pulsante di attivazione/disattivazione Attiva PDT. Poi, nel campo Database temporaneo, inserisci il nome dello schema temporaneo che Looker utilizzerà per creare le tabelle derivate permanenti.
Tieni presente che gli override PDT non sono disponibili per le connessioni Snowflake che utilizzano l'autenticazione con coppia di chiavi.
Per le connessioni Snowflake, Looker imposta il valore del parametro AUTOCOMMIT
di Snowflake su TRUE
, che è il valore predefinito di Snowflake. AUTOCOMMIT
è obbligatorio per i comandi SQL eseguiti da Looker per gestire il proprio sistema di registrazione delle PDT.
Configurazione di OAuth per le connessioni Snowflake
Looker supporta OAuth per le connessioni Snowflake, il che significa che ogni utente Looker si autentica nel database con il proprio account utente OAuth.
OAuth consente agli amministratori di database di eseguire le seguenti attività:
- Controllare quali utenti di Looker eseguono query sul database
- Applicare controlli dell'accesso basati sui ruoli utilizzando le autorizzazioni a livello di database
- Utilizza i token OAuth per tutti i processi e le azioni che accedono al database, anziché incorporare ID e password del database in più posizioni
- Revocare l'autorizzazione per un determinato utente direttamente tramite il database
Con le connessioni Snowflake che utilizzano OAuth, gli utenti devono accedere di nuovo periodicamente alla scadenza dei token OAuth. L'età massima dei token OAuth di Snowflake viene impostata tramite Snowflake stesso.
Tieni presente quanto segue per le connessioni OAuth a livello di database:
- Le tabelle derivate permanenti (PDT) non sono supportate per le connessioni Snowflake con OAuth.
- Se un utente lascia scadere il proprio token OAuth, tutte le pianificazioni o gli avvisi di Looker di sua proprietà verranno interessati. Per evitare questo problema, Looker invierà un'email di notifica al proprietario di ogni pianificazione e di ogni avviso 14 giorni, 7 giorni e 1 giorno prima della scadenza del token. L'utente può accedere alla propria pagina utente di Looker per riautorizzare l'accesso di Looker al database ed evitare interruzioni di pianificazioni e avvisi. Per maggiori dettagli, consulta la pagina della documentazione Personalizzare le impostazioni dell'account utente.
- Poiché le connessioni al database che utilizzano OAuth sono "per utente", anche le norme di memorizzazione nella cache sono per utente e non solo per query. Ciò significa che Looker utilizzerà i risultati memorizzati nella cache solo se lo stesso utente ha eseguito la stessa query entro il periodo di memorizzazione nella cache. Per ulteriori informazioni sulla memorizzazione nella cache, consulta la pagina della documentazione Memorizzazione nella cache delle query.
- Quando utilizzi OAuth, non puoi passare a ruoli diversi nell'account utente Snowflake. Come descritto nella documentazione di Snowflake, Snowflake utilizza il ruolo predefinito dell'account utente Snowflake, a meno che il ruolo predefinito non sia ACCOUNTADMIN o SECURITYADMIN. Poiché questi ruoli sono bloccati per OAuth, Snowflake utilizzerà invece il ruolo PUBLIC. Per informazioni, consulta la documentazione di Snowflake.
- Quando un amministratore di Looker esegue l'accesso come un altro utente, utilizza il token di accesso OAuth di quell'utente. Se il token di accesso dell'utente è scaduto, l'amministratore non può crearne uno nuovo per conto dell'utente con privilegi amministrativi. Per informazioni sull'utilizzo del comando
sudo
, consulta la pagina della documentazione relativa agli utenti.
Configurazione di un database Snowflake per OAuth con Looker
Per creare una connessione Snowflake a Looker utilizzando OAuth, devi configurare l'integrazione OAuth in Snowflake. È necessario un account utente Snowflake con autorizzazione ACCOUNTADMIN.
Esegui questo comando in Snowflake, dove
<looker_hostname>
è il nome host della tua istanza di Looker:CREATE SECURITY INTEGRATION LOOKER TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = LOOKER OAUTH_REDIRECT_URI = 'https://<looker_hostname>/external_oauth/redirect';
Recupera l'ID client OAuth e il client secret eseguendo questo comando:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('LOOKER');
La risposta conterrà un
OAUTH_CLIENT_ID
e unOAUTH_CLIENT_SECRET
che ti serviranno in un secondo momento di questa procedura.In Looker, crea una nuova connessione al tuo warehouse Snowflake, come descritto nella sezione Creazione della connessione Looker al database di questa pagina. Quando crei la nuova connessione, seleziona l'opzione OAuth nel campo Autenticazione. Quando selezioni l'opzione OAuth, Looker mostra i campi ID client OAuth e Client secret OAuth.
Incolla i valori
OAUTH_CLIENT_ID
eOAUTH_CLIENT_SECRET
che hai ottenuto dal database in precedenza in questa procedura.Completa il resto della procedura per connettere Looker al tuo database.
Test della connessione OAuth
Dopo aver configurato la connessione di Looker al database, puoi testarla in uno dei seguenti modi:
- Seleziona il pulsante Testa nella parte inferiore della pagina Impostazioni connessioni, come descritto nella pagina della documentazione Connessione di Looker al database.
- Seleziona il pulsante Testa accanto all'elenco della connessione nella pagina di amministrazione Connessioni, come descritto nella pagina di documentazione Connessioni.
Inoltre, puoi testare la connessione e implementarla su un modello seguendo questi passaggi:
- In Looker, entra in modalità di sviluppo.
- Vai ai file di progetto per un progetto Looker che utilizza la connessione Snowflake.
- Apri un file modello e sostituisci il valore
connection
del modello con il nome della nuova connessione Snowflake, quindi salva il file modello. - Apri una delle esplorazioni o dei dashboard del modello ed esegui una query. Quando provi a eseguire una query, Looker ti chiede di accedere a Snowflake.
- Segui le istruzioni di accesso per Snowflake e inserisci le tue credenziali Snowflake.
Una volta effettuato l'accesso a Snowflake, Looker ti reindirizzerà alla query. Se la query viene eseguita correttamente, puoi confermare il nuovo valore di connessione e implementare le modifiche nell'ambiente di produzione.
Accedere a Snowflake per eseguire query
Una volta configurata la connessione Snowflake per OAuth, agli utenti verrà chiesto di accedere a Snowflake prima di eseguire le query. Sono incluse le query di esplorazioni, dashboard, Look e SQL Runner.
Gli utenti possono anche accedere a Snowflake dalla sezione Credenziali di connessione OAuth nella pagina Account.
Per accedere al tuo account Snowflake utilizzando Looker, segui questi passaggi:
- Fai clic sul menu utente di Looker.
- Seleziona Account.
- Nella pagina Account, vai alla sezione Credenziali di connessione OAuth e seleziona il pulsante Accedi per il database Snowflake appropriato.
Se selezioni Accedi, viene visualizzata una finestra di dialogo di accesso a Snowflake. Inserisci le tue credenziali Snowflake e seleziona Accedi, poi seleziona Consenti per concedere a Looker l'accesso al tuo account Snowflake.
Dopo aver eseguito l'accesso a Snowflake tramite Looker, puoi disconnetterti o riautorizzare le tue credenziali in qualsiasi momento tramite la pagina Account, come descritto nella pagina di documentazione Personalizzazione dell'account utente.
Funzionalità supportate
Affinché Looker supporti alcune funzionalità, anche il dialetto del database deve supportarle.
A partire da Looker 25.10, Snowflake supporta le seguenti funzionalità:
Funzionalità | Supportato? |
---|---|
Livello di assistenza | Supportato |
Looker (Google Cloud core) | Sì |
Aggregati simmetrici | Sì |
Tabelle derivate | Sì |
Tabelle derivate permanenti basate su SQL | Sì |
Tabelle derivate native permanenti | Sì |
Visualizzazioni stabili | Sì |
Terminazione delle query | Sì |
Pivot basati su SQL | Sì |
Fusi orari | Sì |
SSL | Sì |
Subtotali | Sì |
Parametri JDBC aggiuntivi | Sì |
Sensibile alle maiuscole | Sì |
Tipo di località | Sì |
Tipo di elenco | Sì |
Percentile | Sì |
Percentile valori distinti | No |
SQL Runner Show Processes | No |
SQL Runner Describe Table | Sì |
SQL Runner Show Indexes | No |
SQL Runner Select 10 | Sì |
Conteggio SQL Runner | Sì |
SQL Explain | Sì |
Credenziali OAuth 2.0 | Sì |
Commenti contestuali | Sì |
Pool di connessioni | Sì |
Sketch HLL | Sì |
Aggregate awareness | Sì |
PDT incrementali | Sì |
Millisecondi | Sì |
Microsecondi | Sì |
Viste materializzate | No |
Misure di periodo in periodo | Sì |
Conteggio approssimativo dei valori distinti | No |
Passaggi successivi
Dopo aver connesso il database a Looker, configura le opzioni di accesso per gli utenti.