Di recente ho ricevuto alcune richieste di condividere informazioni sull'utilizzo del connettore dati Snowflake basato su REST con JMP 19.
Per fortuna, avevo già realizzato un video a riguardo! Il post più facile di sempre.
Per chi desidera passare direttamente alla parte relativa all'utilizzo di JMP, può consultare il video al minuto 2:11.
Trascrizione (approssimativa):
Mi chiamo Chris, sono uno sviluppatore software di JMP e vorrei condividere alcune informazioni sul connettore dati Snowflake basato su REST, una novità di JMP 19!
Grazie a questo connettore, gli utenti noteranno un miglioramento delle prestazioni rispetto al connettore Snowflake basato su ODBC. Inoltre, il connettore basato su REST funziona in JMP senza la necessità di installare il driver ODBC Snowflake.
Obiettivi
Oggi tratterò i seguenti argomenti:
- Cos'è Snowflake?
- Perché dovresti voler utilizzare il connettore Snowflake basato su REST?
- Come configurare e connettersi al connettore Snowflake basato su REST.
- Alcuni suggerimenti per la risoluzione dei problemi.
Cos'è Snowflake?
Per chi non conosce Snowflake, una delle sue descrizioni è: "Snowflake combina un motore di query SQL completamente nuovo con un'architettura innovativa progettata nativamente per il cloud".
Dal punto di vista dell'utente, Snowflake si occupa della gestione dei dati. Gli utenti possono inviare query SQL per accedere a tali dati, proprio come farebbero con qualsiasi database basato su SQL, ma a livello di backend i dati sono archiviati presso uno o più provider cloud come AWS, Google Cloud o Azure. Il suo punto di forza risiede nella capacità di scalare le risorse in base alle esigenze dei clienti.
Snowflake offre anche un'interfaccia web chiamata Snowsight, tramite la quale gli utenti possono eseguire query, gestire Snowflake, caricare dati, creare pipeline di dati e monitorare attività e utilizzo.
ODBC vs REST
In JMP 19, gli utenti hanno ora due opzioni per accedere ai dati Snowflake: una tramite il connettore dati ODBC di Snowflake, l'altra tramite il connettore Snowflake basato su REST. Il connettore basato su REST sfrutta l'elaborazione multithread per il recupero dei dati, consentendo di completare le query molto più rapidamente rispetto al driver ODBC.
Limitazioni di REST
Attualmente, i metodi di autenticazione supportati sono "nome utente e password" utilizzati con l'autenticatore predefinito di Snowflake. Un altro metodo è OAuth, mentre l'ultimo è rappresentato dai token di accesso programmatici, pensati per funzionalità come gli script automatizzati.
Il connettore basato su REST utilizza internamente l'API SQL di Snowflake, pertanto alcune operazioni come GET e PUT con staging dei dati non sono supportate.
Collegamento
Detto questo, vediamo come configurare un connettore basato su REST e come stabilire la connessione in JMP.
(aprire JMP)
Per iniziare, apriamo l'interfaccia del connettore dati JMP.
(naviga… e parla)
Cerca "Snowflake" nella barra di ricerca, seleziona il connettore Snowflake integrato e creane uno nuovo.
Autenticazione con password utente
Prima di iniziare, è importante sapere che molte di queste opzioni potrebbero richiedere informazioni da un amministratore di Snowflake e potenzialmente da altre parti, a seconda dei sistemi di autenticazione specifici utilizzati. Ma procediamo creando una connessione utilizzando nome utente e password.
La prima cosa di cui abbiamo bisogno è l'URL di Snowflake, che è spesso il modo in cui gli utenti accedono all'interfaccia web di Snowsight e normalmente termina con .
Il campo "magazzino" indica il data warehouse a cui si desidera connettersi, così come i campi "database" e "ruolo". Lasciandoli vuoti, verranno utilizzati i valori predefiniti dell'utente, se definiti. È frequente che agli utenti vengano assegnati ruoli limitati o che l'accesso sia limitato a determinate tabelle; pertanto, l'inserimento di valori errati in questi campi potrebbe impedire la connessione.
Infine, inserisci le tue credenziali nei campi nome utente e password. Puoi lasciare vuoto il campo password: ti verrà richiesto di inserirla al momento della connessione. Verifica la connessione utilizzando il pulsante di test e, se lo desideri, salvala.
Autenticazione a due fattori (2FA)
Potrebbe capitare che JMP si blocchi al momento della connessione, il che potrebbe indicare che Snowflake è in attesa dell'autenticazione a due fattori (2FA). Se il tuo account è configurato con la 2FA, dovrai rispondere alla richiesta. Ad esempio, puoi utilizzare l'app Duo sul tuo telefono per autorizzare la connessione.
Una volta stabilita la connessione, potrai visualizzare gli schemi e le tabelle del database a cui ti sei connesso. Successivamente, utilizza OpenTable o Query Builder per importare i dati in JMP.
Console SQL
Una delle novità di JMP 19 è la console SQL, che offre la possibilità di eseguire query con più istruzioni utilizzando i connettori compatibili. È simile all'esecuzione di una query SQL personalizzata, ma consente anche di aprire più tabelle contemporaneamente con un'unica query. È possibile salvare il lavoro come file .sql e riaprirlo in seguito per riutilizzarlo.
Connessione tramite token di accesso programmatico
Per gli utenti che necessitano di bypassare l'autenticazione a due fattori (2FA) per scopi di scripting o per l'utilizzo con script di aggiornamento live di JMP, un altro metodo di connessione consiste nell'utilizzare un token di accesso programmatico. Questo token temporaneo è valido fino a un anno. Contatta l'amministratore di Snowflake per generare un token per il tuo utente.
Per utilizzare il token con JMP, segui gli stessi passaggi descritti in precedenza per la creazione di un connettore Snowflake con nome utente e password, ma inserisci il token nel campo password del connettore al posto della tua password abituale. Seguendo questa procedura, dovresti essere in grado di connetterti normalmente senza bisogno dell'autenticazione a due fattori (2FA).
Connettiti con OAuth
Per la connessione tramite OAuth, la maggior parte dei campi proviene dagli amministratori di Snowflake e della sicurezza. Assicurati che i campi nome utente e password siano vuoti per questo tipo di autenticazione. Come in precedenza, compila il campo URL di Snowflake e anche i campi relativi a database, data warehouse e ruolo, se applicabile. I campi rimanenti sono elencati nella sezione OAuth e ti verranno forniti dall'amministratore. Quando ti connetti tramite OAuth, probabilmente dovrai autenticarti e potresti anche dover completare l'autenticazione a due fattori. Nel mio caso, vengo reindirizzato a una finestra del browser per inserire le mie credenziali.
Risoluzione dei problemi
Accenniamo inoltre ad alcuni problemi che potreste incontrare e ad alcune possibili soluzioni.
- Ruolo/magazzino non valido: durante la connessione, potrebbe comparire un errore generico del tipo: " Errore di compilazione SQL: l'oggetto non esiste o l'operazione non può essere eseguita. "
La prima cosa da verificare è che il ruolo, il data warehouse e il database siano corretti. Se li hai lasciati vuoti, potrebbe essere necessario specificare esplicitamente la risorsa a cui stai tentando di accedere. Se li hai compilati, ricontrolla che siano scritti correttamente e che il tuo utente abbia accesso a tali risorse. Per farlo, contatta l'amministratore di Snowflake, verifica la configurazione con Snowsight oppure utilizza uno strumento da riga di comando come snowsql o la CLI di Snowflake.
- HTTPS: Alcune configurazioni di Snowflake sono soggette a restrizioni IP o le risorse si trovano dietro un firewall aziendale. Assicurati di avere accesso a tali risorse, il che potrebbe includere l'accesso alla rete aziendale o la configurazione dei campi proxy e noproxy nel connettore dati. Inoltre, potrebbe essere necessario disabilitare TLS utilizzando il campo Sicuro se, ad esempio, la tua infrastruttura utilizza certificati autofirmati. Non disabilitare TLS a meno che tu non sia certo che questa sia la configurazione corretta, poiché ciò potrebbe consentire attacchi man-in-the-middle.
Grazie per aver guardato questo video, spero che vi sia stato utile per illustrare i vantaggi del connettore Snowflake basato su REST, imparare a configurare un nuovo connettore dati Snowflake e, infine, connettervi ai dati Snowflake all'interno di JMP.
Ulteriori informazioni sull'utilizzo di Snowflake e sull'esecuzione di query Snowflake sono disponibili sul sito snowflake.com.
Ci auguriamo che gli utenti trovino utili i miglioramenti prestazionali di questo connettore e non vediamo l'ora di perfezionarlo ulteriormente. Grazie!