Kürzlich erhielt ich einige Anfragen nach Informationen zur Verwendung des REST-basierten Snowflake-Datenkonnektors mit JMP 19.
Zum Glück hatte ich bereits ein Video darüber gemacht! Der einfachste Beitrag aller Zeiten.
Wer direkt zur Verwendung von JMP springen möchte, geht zu Zeitstempel 2:11.
Transkript (ungefähr):
Mein Name ist Chris, ich bin Softwareentwickler bei JMP und möchte Ihnen einige Informationen über den REST-basierten Snowflake-Datenkonnektor mitteilen, der in JMP 19 neu ist!
Mit diesem Konnektor profitieren Benutzer von einer höheren Leistung im Vergleich zum ODBC-basierten Snowflake-Konnektor. Darüber hinaus funktioniert der REST-basierte Konnektor in JMP, ohne dass der ODBC-Snowflake-Treiber installiert werden muss.
Ziele
Heute werde ich folgende Themen behandeln:
- Was ist eine Schneeflocke?
- Warum sollte man den REST-basierten Snowflake-Connector verwenden wollen?
- Wie man den REST-basierten Snowflake-Connector konfiguriert und mit ihm eine Verbindung herstellt.
- Ein paar Tipps zur Fehlerbehebung.
Was ist eine Schneeflocke?
Für diejenigen, die Snowflake noch nicht kennen, lautet eine der Beschreibungen: „Snowflake kombiniert eine völlig neue SQL-Abfrage-Engine mit einer innovativen Architektur, die nativ für die Cloud entwickelt wurde.“
Aus Nutzersicht speichert Snowflake Daten. Nutzer können SQL-Abfragen stellen, um auf diese Daten zuzugreifen, genau wie bei jeder anderen SQL-basierten Datenbank. Im Hintergrund werden die Daten jedoch bei einem oder mehreren Cloud-Anbietern wie AWS, Google Cloud oder Azure gespeichert. Snowflake zeichnet sich durch seine flexible Skalierbarkeit der Ressourcen aus, die sich an die Bedürfnisse der Kunden anpassen lässt.
Snowflake bietet außerdem eine Weboberfläche namens Snowsight an, über die Benutzer Abfragen ausführen, Snowflake verwalten, Daten hochladen, Datenpipelines erstellen und Aktivitäten und Nutzung überwachen können.
ODBC vs REST
In JMP 19 stehen Benutzern nun zwei Möglichkeiten zur Verfügung, um auf Snowflake-Daten innerhalb von JMP zuzugreifen: entweder über den ODBC-Snowflake-Datenkonnektor oder über den REST-basierten Snowflake-Konnektor. Letzterer nutzt die Multithread-Verarbeitung zum Abrufen von Daten, wodurch Abfragen im Vergleich zum ODBC-Treiber deutlich schneller ausgeführt werden können.
Einschränkungen von REST
Aktuell werden die Authentifizierungsmethoden „Benutzername und Passwort“ mit dem Standard-Authenticator von Snowflake unterstützt. Alternativ kann OAuth verwendet werden, und die letzte Möglichkeit sind programmatische Zugriffstoken, die beispielsweise für automatisierte Skripte gedacht sind.
Der REST-basierte Konnektor verwendet intern die Snowflake SQL API, daher werden einige Operationen wie GET und PUT mit Daten-Staging nicht unterstützt.
Verbindung
Nachdem wir das alles wissen, schauen wir uns nun an, wie man einen REST-basierten Konnektor konfiguriert und die Verbindung in JMP herstellt.
(JMP öffnen)
Öffnen wir zunächst die JMP-Datenverbindungsschnittstelle.
(navigieren… und sprechen)
Geben Sie in der Suchleiste „Snowflake“ ein, wählen Sie den integrierten Snowflake-Connector aus und erstellen Sie einen neuen.
Authentifizierung mit Benutzerpasswort
Bevor wir beginnen, möchten wir darauf hinweisen, dass viele dieser Optionen je nach Ihren Authentifizierungssystemen Informationen von einem Snowflake-Administrator und gegebenenfalls weiteren Beteiligten erfordern. Zunächst erstellen wir jedoch eine Verbindung mit Benutzername und Passwort.
Als Erstes benötigen wir die Snowflake-URL, über die Benutzer häufig auf die Snowsight-Weboberfläche zugreifen und die normalerweise mit „.snowflake.example.com“ endet. Die
Das Feld „Warehouse“ gibt das Lager an, mit dem Sie sich verbinden möchten, ebenso wie die Felder „Datenbank“ und „Rolle“. Wenn Sie diese Felder leer lassen, werden die Standardwerte Ihres Benutzers verwendet, sofern Sie welche definiert haben. Häufig sind Benutzer auf bestimmte Rollen oder sogar bestimmte Tabellen beschränkt, sodass falsche Werte die Verbindung verhindern können.
Geben Sie abschließend Ihre Zugangsdaten in die Felder für Benutzername und Passwort ein. Das Passwortfeld können Sie leer lassen; Sie werden dann beim Verbindungsaufbau dazu aufgefordert. Testen Sie die Verbindung mit der Schaltfläche „Testen“ und speichern Sie sie bei Bedarf.
2FA
Es kann vorkommen, dass JMP beim Verbindungsaufbau hängen bleibt. Dies deutet darauf hin, dass Snowflake auf die Zwei-Faktor-Authentifizierung (2FA) wartet. Wenn Ihr Konto mit 2FA konfiguriert ist, müssen Sie die Aufforderung bestätigen. Sie können dies beispielsweise mit der Duo-App auf Ihrem Smartphone tun.
Nach erfolgreicher Verbindung werden Ihnen die Schemas und Tabellen der verbundenen Datenbank angezeigt. Anschließend können Sie die Daten mithilfe von „Tabelle öffnen“ oder dem Abfrage-Generator in JMP importieren.
SQL-Konsole
Neu in JMP 19 ist die SQL-Konsole, mit der Sie Abfragen mit mehreren Anweisungen und den entsprechenden Konnektoren ausführen können. Sie ähnelt der Ausführung benutzerdefinierter SQL-Abfragen, ermöglicht aber zusätzlich das gleichzeitige Öffnen mehrerer Tabellen mit einer einzigen Abfrage. Ihre Arbeit können Sie als .sql-Datei speichern und später wiederverwenden.
Verbindung mit programmatischem Zugriffstoken
Für Benutzer, die die Zwei-Faktor-Authentifizierung (2FA) für Skriptzwecke oder zur Verwendung mit JMP Live-Aktualisierungsskripten umgehen müssen, besteht eine alternative Verbindungsmöglichkeit: die Verwendung eines programmatischen Zugriffstokens. Dieses temporäre Token ist bis zu einem Jahr gültig. Wenden Sie sich an Ihren Snowflake-Administrator, um ein Token für Ihren Benutzer zu generieren.
Um das Token mit JMP zu verwenden, gehen Sie wie zuvor beim Erstellen eines Snowflake-Connectors mit Benutzername und Passwort vor. Geben Sie jedoch das Token anstelle Ihres üblichen Passworts in das Passwortfeld des Connectors ein. Anschließend sollten Sie sich ohne Zwei-Faktor-Authentifizierung (2FA) normal verbinden können.
Mit OAuth verbinden
Für die Verbindung per OAuth werden die meisten Felder von Ihren Snowflake- und Sicherheitsadministratoren bereitgestellt. Stellen Sie sicher, dass die Felder für Benutzername und Passwort bei dieser Authentifizierungsart leer sind. Füllen Sie wie zuvor das Feld für die Snowflake-URL sowie gegebenenfalls die Felder für Datenbank, Data Warehouse und Rolle aus. Die übrigen Felder sind im OAuth-Abschnitt aufgeführt und werden von Ihrem Administrator bereitgestellt. Bei der Verbindung per OAuth müssen Sie sich wahrscheinlich authentifizieren und gegebenenfalls eine Zwei-Faktor-Authentifizierung durchführen. In meinem Fall werde ich zu einem Browserfenster weitergeleitet, um meine Anmeldedaten einzugeben.
Fehlerbehebung
Lassen Sie uns auch einige Probleme ansprechen, auf die Sie stoßen könnten, und einige mögliche Lösungsansätze.
- Fehlerhafte Rolle/Lager: Beim Verbindungsaufbau wird möglicherweise eine allgemeine Fehlermeldung angezeigt: „ SQL-Kompilierungsfehler: Objekt existiert nicht oder Vorgang kann nicht ausgeführt werden. “
Als Erstes würde ich prüfen, ob Ihre Rolle, Ihr Warehouse und Ihre Datenbank korrekt sind. Falls Sie diese Felder leer gelassen haben, müssen Sie möglicherweise explizit angeben, auf welche Ressource Sie zugreifen möchten. Wenn Sie die Felder ausgefüllt haben, überprüfen Sie bitte die Rechtschreibung und ob Ihr Benutzer Zugriff auf diese Ressourcen hat. Wenden Sie sich dazu an Ihren Snowflake-Administrator, überprüfen Sie Ihre Konfiguration mit Snowsight oder verwenden Sie ein Konsolentool wie snowsql oder die Snowflake-Befehlszeilenschnittstelle (CLI).
- HTTPS: Einige Snowflake-Installationen sind IP-beschränkt oder Ressourcen befinden sich hinter einer Unternehmensfirewall. Stellen Sie sicher, dass Sie Zugriff auf diese Ressourcen haben. Dies kann den Zugriff auf Ihr Unternehmensnetzwerk oder die Konfiguration der Felder „Proxy“ und „NoProxy“ im Datenkonnektor umfassen. Zusätzlich müssen Sie TLS möglicherweise über das Feld „Secure“ deaktivieren, wenn Ihre Infrastruktur beispielsweise selbstsignierte Zertifikate verwendet. Deaktivieren Sie TLS nur, wenn Sie sicher sind, dass dies die korrekte Konfiguration ist, da dies Man-in-the-Middle-Angriffe ermöglichen kann.
Vielen Dank fürs Zuschauen. Ich hoffe, es war hilfreich, die Vorteile des REST-basierten Snowflake-Connectors kennenzulernen, zu erfahren, wie man einen neuen Snowflake-Datenconnector konfiguriert und letztendlich eine Verbindung zu Snowflake-Daten innerhalb von JMP herzustellen.
Weitere Informationen zur Verwendung von Snowflake und zur Ausführung von Snowflake-Abfragen finden Sie auf snowflake.com.
Wir hoffen, dass die Nutzer die Leistungsverbesserungen dieses Konnektors als wertvoll empfinden und freuen uns darauf, ihn weiter zu optimieren. Vielen Dank!