Snowflake Connector for Python-Versionshinweise 2023¶
Dieser Artikel enthält die Versionshinweise für Snowflake Connector for Python, einschließlich der folgenden, sofern zutreffend:
Verhaltensänderungen
Neue Features
Fehlerkorrekturen für Kunden
Snowflake verwendet semantische Versionierung für Snowflake Connector for Python-Aktualisierungen.
Siehe Snowflake Connector für Python für die Dokumentation.
Version 3.6.0 (07. Dezember 2023)¶
Neue Features und Aktualisierungen¶
Unterstützung von Vektortypen hinzugefügt.
Unterstützung der Verbindungsparameter
private_key_fileundprivate_key_file_pwdhinzugefügt.Klasse
SnowflakeConnectionwurde das neue Flagexpiredhinzugefügt, das anzeigt, ob das Master-Token der Verbindung abgelaufen ist.urlib3-Versions-Pin wurde so geändert, dass er nur Python-Versionen kleiner als 3.10 betrifft.
Fehlerkorrekturen¶
Fehler behoben, bei dem das Einfügen eines Datums fehlschlug, wenn das Datumsformat eingestellt ist und das Binden im qmark-Stil erfolgt.
Version 3.5.0 (13. November 2023)¶
Neue Features und Aktualisierungen¶
Snowflake Connector for Python basiert jetzt ausschließlich auf dem Apache-„arrow-nanoarrow“-Projekt:
Wheel-Größe auf ~1 MB und Installationsgröße auf ~5 MB reduziert.
Feste Abhängigkeit von einer bestimmten pyarrow-Version wurde entfernt.
Zur Unterstützung des „nanoarrow“-Konverters gilt Folgendes als veraltet:
Klasse
snowflake.connector.cursor.NanoarrowUsageUmgebungsvariable
NANOARROW_USAGEModulvariable
snowflake.connector.cursor.NANOARROW_USAGE
Fehlerkorrekturen¶
Keine.
Version 3.4.1 (09. November 2023)¶
Neue Features und Aktualisierungen¶
Folgende Bibliotheken wurden aktualisiert:
Vendor-Bibliothek
urlib3auf Version 1.26.18Vendor-Bibliothek
requestsauf Version 2.31.0
Fehlerkorrekturen¶
Keine.
Version 3.4.0 (03. November 2023)¶
Neue Features und Aktualisierungen¶
Unterstützung von
use_logical_typeinwrite_pandashinzugefügt.Argument
backoff_policyzusnowflake.connector.connecthinzugefügt, um bei fehlgeschlagenen Anforderungen eine konfigurierbare Backoff-Richtlinie zwischen Wiederholungsversuchen zu ermöglichen. Verfügbare Implementierungen finden Sie im Modulbackoff_policies.Argument
socket_timeoutzusnowflake.connector.connecthinzugefügt, um das Timeout beim Lesen und Verbinden von Sockets anzugeben.Abhängigkeiten von pycryptodomex und oscrypto wurden entfernt. Alle Verbindungen werden nun über OpenSSL und die Kryptographie-Bibliothek geleitet, die bereits eine Abhängigkeit war.
Fehlerkorrekturen¶
Verhalten von
login_timeoutundnetwork_timeoutwurde korrigiert. Wiederholungsversuche von Anmelde- und Netzwerkanforderungen werden jetzt nach Ablauf des Timeout ordnungsgemäß abgebrochen.Fehler bei Problem urllib3/urllib3#1878 in Vendor-
urllibbehoben.Problem beim Einlesen von Dateien über 80 GB in S3 behoben.
Version 3.3.1 (18. Oktober 2023)¶
Neue Features und Aktualisierungen¶
Befehlsvorschläge (
chownoderchmod) für unzureichende Dateiberechtigungen von Konfigurationsdateien für Nicht-Windows-Plattformen hinzugefügt.
Fehlerkorrekturen¶
Problem behoben, bei dem die Verbindungsdiagnose die Zertifikatsprüfung nicht abschließen konnte.
Problem behoben, bei dem der Pfeil-Iterator den Fehler
ImportErrorverursachte, wenn die C-Erweiterungen nicht kompiliert waren.
Version 3.3.0 (12. Oktober 2023)¶
Neue Features und Aktualisierungen¶
Aktualisiert auf Apache-„arrow-nanoarrow“-Projekt für die Konvertierung von „arrow“-Ergebnisdaten.
Die Umgebungsvariable
NANOARROW_USAGEwurde eingeführt, um das Umschalten zwischen dem „nanoarrow“-Konverter und dem „arrow“-Konverter zu ermöglichen. Gültige Werte:FOLLOW_SESSION_PARAMETERzur Verwendung des auf dem Server konfigurierten Konverters.DISABLE_NANOARROWzur Verwendung des „arrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.ENABLE_NANOARROWzur Verwendung des „nanoarrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.
Die Enumeration
snowflake.connector.cursor.NanoarrowUsagewurde mit folgenden Mitgliedern eingeführt:NanoarrowUsage.FOLLOW_SESSION_PARAMETERzur Verwendung des auf dem Server konfigurierten Konverters.NanoarrowUsage.DISABLE_NANOARROWzur Verwendung des „arrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.NanoarrowUsage.ENABLE_NANOARROWzur Verwendung des „nanoarrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.
Die Modulvariable
snowflake.connector.cursor.NANOARROW_USAGEwurde eingeführt, um das Umschalten zwischen dem „nanoarrow“-Konverter und dem „arrow“-Konverter zu ermöglichen. Sie funktioniert in Verbindung mit der Enumerationsnowflake.connector.cursor.NanoarrowUsage.
Bemerkung
Die neu eingeführte Umgebungsvariable, die Enumeration und die Modulvariable sind temporär. Sie werden in einem zukünftigen Release entfernt, wenn die Umstellung von „arrow“ auf „nanoarrow“ für die Datenkonvertierung abgeschlossen ist.
Fehlerkorrekturen¶
Keine.
Version 3.2.1 (3. Oktober 2023)¶
Neue Features und Aktualisierungen¶
Hinzufügen von Threadsicherheit in der Telemetrie bei gleichzeitiger Instanziierung mehrerer Verbindungen.
Verbesserte Robustheit bei der Verarbeitung von Authentifizierungsänderungen.
urllib3.contrib.pyopenssl-Abkündigungswarnung ausurllib3-Bibliothek entfernt.Aktualisierung der
platformdirs-Abhängigkeit auf die Versionen 2.6.0 bis 4.0.0 von den Versionen 2.6.0 bis 3.9.0.
Fehlerkorrekturen¶
Fehler behoben, bei dem URL, Port und Pfad bei AWS PrivateLink-OCSP-Wiederholungsversuchen ignoriert wurden.
Version 3.2.0 (7. September 2023)¶
Neue Features und Aktualisierungen¶
Umbenennen von
parser -> managerwurde im Modulsnowflake.connector.config_managerkonsistenter gestaltet.Unterstützung von Standardwerten für
ConfigOptionshinzugefügt.Datei
default_connection_namezuconfig.tomlhinzugefügt.
Fehlerkorrekturen¶
Keine.
Version 3.1.1 (28. August 2023)¶
Neue Features und Aktualisierungen¶
Unterstützung von RSAPublicKey beim Erstellen von
AuthByKeyPairzusätzlich zu Raw-Bytes hinzugefügt.
Fehlerkorrekturen¶
Fehler in der Wiederholungslogik für OKTA-Authentifikatoren zur Aktualisierung des Tokens behoben.
Fehler behoben, bei dem das Attribut
proxy_headerinSOCKSProxyManagerfehlt, wenn Verbindung über SOCKS5-Proxy hergestellt wird.
Version 3.1.0 (31. Juli 2023)¶
Neue Features und Aktualisierungen¶
Feature hinzugefügt, mit dem Sie Verbindungsdefinitionen zur Konfigurationsdatei
connections.tomlhinzufügen können. Eine Verbindungsdefinition bezieht sich auf eine Sammlung von Verbindungsparametern, z. B. wenn Sie eine Verbindung namens „prod“ definieren möchten:[prod] account = "my_account" user = "my_user" password = "my_password"
Standardmäßig wird die Datei
connections.tomlan dem Speicherort gesucht, der in der UmgebungsvariablenSNOWFLAKE_HOMEangegeben ist (Standard:~/.snowflake). Wenn dieser Ordner nicht existiert, sucht der Python-Konnektor die Datei im Verzeichnisplatformdirs, und zwar wie folgt:Linux:
~/.config/snowflake/, folgt aber den XDG-EinstellungenMac:
~/Library/Application Support/snowflake/Windows:
%USERPROFILE%\AppData\Local\snowflake\
Sie können feststellen, welche Datei verwendet wird, indem Sie den folgenden Befehl ausführen:
python -c "from snowflake.connector.constants import CONNECTIONS_FILE; print(str(CONNECTIONS_FILE))"
Die Kryptographie-Abhängigkeit wurde von <41.0.0,>=3.1.0 auf >=3.1.0,<42.0.0 erhöht.
Zwischenspeichern von OCSP-Antworten zum Entfernen von tmp-Cache-Dateien unter Windows verbessert.
OCSP-Antwort-Caching verbessert, um die Zeiten für das Schreiben auf die Festplatte zu reduzieren.
Parameter
server_session_keep_alivezuSnowflakeConnectionhinzugefügt, der das Löschen der Sitzung überspringt, wenn die Clientverbindung getrennt wird.Pinning von
platformdirsgestrafft, um zu verhindern, dass deren neue Versionen die neue Versionen des Konnektors beschädigen.Möglichkeit der Übergabe von
type_mapperanfetch_pandas_batches()undfetch_pandas_all()hinzugefügt.Wiederholungslogik für Okta-Authentifizierung verbessert, um das Token zu aktualisieren, wenn die Authentifizierung gedrosselt wird.
Gründe für Wiederholung von Abfragen hinzugefügt, die vom Client erneut versucht werden.
Unterstützung von Python 3.7 entfernt.
Fehlerbehandlung bei Fehlern mit dem Zurücksetzen der Verbindung verbessert.
Fehlerkorrekturen¶
Fehler behoben, bei dem
SFPlatformDirsfälschlicherweise Anwendungsname und Version an den Pfad angehängt hat.Fehler behoben, bei dem
write_pandasfehlschlägt, wenn der Benutzer keine Berechtigung für das Erstellen eines Stagingbereichs oder eines Dateiformats im Zielschema hat, aber die richtige Berechtigung für das aktuelle Schema hat.Problem mit einem Segmentierungsfehler umgangen, der manchmal während der Cache-Serialisierung in Multithreading-Szenarios auftrat.
Fehler beim Löschen der temporären Dateien behoben, wenn der PUT-Befehl ausgeführt wurde.
Fehler behoben, bei dem
pickle.dumpwährend der Cache-Serialisierung in Multi-Thread-Szenarios einen Segmentierungsfehler verursachte.
Version 3.0.4 (25. Mai 2023)¶
Neue Features und Aktualisierungen¶
Verbindungsparameter
json_result_force_utf8_decodinghinzugefügt, um die Dekodierung von JSON-Inhalten in UTF-8 zu erzwingen, wenn das Ergebnisformat JSON ist.Vendor-Bibliothek urllib3 auf 1.26.15 erhöht
Vendor-Bibliotheksanforderungen auf 2.29.0 erhöht.
Pandas-Abhängigkeit von <1.6.0,>=1.0.0 auf >=1.0.0,<2.1.0 erhöht.
Unterstützung von Geometrietypen hinzugefügt.
Fehlerkorrekturen¶
Fehler behoben, bei dem
cursor.execute()bei Ausführung einer Abfrage mit mehreren Anweisungen das Argumentstatement_paramsdes Dictionary-Objekts ändern konnte.Fehler behoben, der den Aufruf von
SnowflakeCursor.nextsetvor dem Abrufen des Ergebnisses der ersten Abfrage verhinderte, wenn der Cursor eine asynchrone Abfrage mit mehreren Anweisungen ausführt.Fehler behoben, bei dem
_prefetch_hook()erst aufgerufen wurde, nachdem die Ergebnisse vonexecute_async()ausgegeben wurden.Fehler behoben, bei dem einige
ResultMetadata-Felder als erforderlich markiert wurden, obwohl sie optional waren.Fehler behoben, bei dem das Datum beim Masseneinfügen falsch konvertiert wurde.
Version 3.0.3 (20. April 2023)¶
Neue Features und Aktualisierungen¶
Parameter hinzugefügt, mit dem Benutzer das Hochladen von Dateien in den Stagingbereich überspringen können, wenn die Datei im Stagingbereich vorhanden ist und der Inhalt der Datei übereinstimmt.
Typhinweis der Methode
SnowflakeCursor.executeverbessert.GET-Protokollierung verbessert, um beim Herunterladen mehrerer Dateien vor Dateien mit demselben Namen zu warnen.
Fehlerkorrekturen¶
Fehler behoben, der in Protokolleinträgen des GET-Befehls auf GCS einen Fehler ausgibt.
Parameter hinzugefügt, mit dem Benutzer das Hochladen von Dateien in den Stagingbereich überspringen können, wenn die Datei im Stagingbereich vorhanden ist und der Inhalt der Datei übereinstimmt.
Fehler behoben, der in
snowflake.connector.pandas_tool.write_pandasbeim Schreiben eines Pandas-DataFrame mit Spaltennamen auftrat, die doppelte Anführungszeichen enthalten.Fehler behoben, der in
snowflake.connector.pandas_tool.write_pandasbeim Schreiben eines Pandas-DataFrame mit binären Daten auftrat.
Version 3.0.2 (23. März 2023)¶
Neue Features und Aktualisierungen¶
Keine.
Fehlerkorrekturen¶
Fehler behoben, der zu falschen Typhinweisen für
SnowflakeCursor.fetch_arrow_allundSnowflakeCursor.fetchallführte.Protokollierung beim Maskieren von Token für Fehlerfall verbessert.
Fehler behoben, bei dem
snowflake.connector.util_text.split_statementsden letzten Zeilenumbruch verschluckte, wenn keine Leerzeichen zwischen den Zeilen vorhanden waren.Problem mit Arbeisspeicherverlust im Logging-Modul der Cython-Erweiterung behoben.
Fehler behoben, bei dem auf AWS der
put-Befehl beim Hochladen einer Datei, die aus mehreren Teilen besteht, einAttributeErrorauslöste.Fehler behoben, bei dem auf AWS der
put-Befehl bei Dateien größer als 200 MB zu einemAttributeErrorauslöste.
Version 3.0.1 (01. März 2023)¶
Neue Features und Aktualisierungen¶
Robustheit des OCSP-Antwort-Caching verbessert, um Fehler bei der Serialisierung und Deserialisierung zu behandeln.
Abhängigkeit von
setuptoolszu Gunsten von Paketerstellung ersetzt.Der doc-Zeichenfolge der Methode
async_executeswurde aktualisiert.Fehler, die ausgelöst wurden, haben jetzt ein Abfragefeld, das die SQL-Abfrage enthält, die den Fehler verursacht hat, sofern verfügbar.
Fehlerkorrekturen¶
Fehler behoben, bei dem
AuthByKeyPair.handle_timeoutbeim Aufruf vonAuthByKeyPair.prepareSchlüsselwortargumente anstelle von Positionsargumenten übergeben sollte.Fehler behoben, bei dem das MFA-Tokencaching bis zum Neustart nicht mehr funktionierte, anstatt sich neu zu authentifizieren.
Version 3.0.0 (27. Januar 2023)¶
Änderung in Verhaltensänderungs-Release (BCR)¶
Fehler behoben, bei dem „write_pandas“ zur Erstellung von Zwischenobjekten nicht die vom Benutzer angegebenen Schemas und Datenbanken verwendet hat.
Bisher hatte die Funktion „write_pandas“ temporäre Objekte in der aktuell verwendeten Datenbank und dem Schema erstellt und nur die endgültige Tabelle (die erstellt oder angehängt wurde) in der vom Benutzer angegebenen Datenbank bzw. im angegebenen Schema gespeichert. Ab dieser Version gilt Folgendes: Wenn die Datenbank- oder Schemaparameter für
write_pandasnicht mit den aktuell ausgewählten übereinstimmen, müssen Sie sicherstellen, dass der Benutzer, derwrite_pandasausführt, Berechtigungen für das Erstellen/Löschen von temporären Stagingbereichen, Dateiformaten und Tabellen in dem Schema hat, auf das die Funktionwrite_pandasverweist.Snowflake empfiehlt, dass Sie jede neue Treiberversion in Vorproduktionsumgebungen testen, bevor Sie sie in Produktionsumgebungen einsetzen. Bei dieser Verhaltensänderung sollten Sie den oben genannten Szenarios besondere Aufmerksamkeit schenken (d. h.
write_pandasmit Datenbank- oder Schemaparametern, die vom aktuellen Kontext abweichen).
Neue Features und Aktualisierungen¶
Pyarrow-Abhängigkeit von >=8.0.0,<8.1.0 auf >=10.0.1,<10.1.0 erhöht.
pyOpenSSL-Abhängigkeit von <23.0.0 auf <24.0.0 erhöht.
Bei der browserbasierten Authentifizierung wird die SSO-URL nun ausgegeben, bevor sie im Browser geöffnet wird.
Der Protokollierungsgrad für den Fall, dass ArrowResult nicht importiert werden kann, wurde erhöht.
Überprüfung auf die MacOS-Mindestversion beim Kompilieren von C-Erweiterungen hinzugefügt.
Fehlerkorrekturen¶
Fehler behoben, bei dem
write_pandaszum Erstellen von Zwischenobjekten nicht das vom Benutzer angegebene Schema und die angegebene Datenbank verwendet hat.Fehler behoben, bei dem der HTTP-Antwortcode von 429 nicht wiederholt wurde.
Fehler behoben, bei dem das Caching von MFA-Token nicht funktionierte.