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.
Version 3.6.0 (07. Dezember 2023)¶
Neue Features und Aktualisierungen¶
Unterstützung von Vektortypen hinzugefügt.
Unterstützung der Verbindungsparameter
private_key_file
undprivate_key_file_pwd
hinzugefügt.Klasse
SnowflakeConnection
wurde das neue Flagexpired
hinzugefü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.NanoarrowUsage
Umgebungsvariable
NANOARROW_USAGE
Modulvariable
snowflake.connector.cursor.NANOARROW_USAGE
Fehlerkorrekturen¶
Keine.
Version 3.4.1 (09. November 2023)¶
Neue Features und Aktualisierungen¶
Folgende Bibliotheken wurden aktualisiert:
Vendor-Bibliothek
urlib3
auf Version 1.26.18Vendor-Bibliothek
requests
auf Version 2.31.0
Fehlerkorrekturen¶
Keine.
Version 3.4.0 (03. November 2023)¶
Neue Features und Aktualisierungen¶
Unterstützung von
use_logical_type
inwrite_pandas
hinzugefügt.Argument
backoff_policy
zusnowflake.connector.connect
hinzugefügt, um bei fehlgeschlagenen Anforderungen eine konfigurierbare Backoff-Richtlinie zwischen Wiederholungsversuchen zu ermöglichen. Verfügbare Implementierungen finden Sie im Modulbackoff_policies
.Argument
socket_timeout
zusnowflake.connector.connect
hinzugefü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_timeout
undnetwork_timeout
wurde korrigiert. Wiederholungsversuche von Anmelde- und Netzwerkanforderungen werden jetzt nach Ablauf des Timeout ordnungsgemäß abgebrochen.Fehler bei Problem urllib3/urllib3#1878 in Vendor-
urllib
behoben.Problem beim Einlesen von Dateien über 80 GB in S3 behoben.
Version 3.3.1 (18. Oktober 2023)¶
Neue Features und Aktualisierungen¶
Befehlsvorschläge (
chown
oderchmod
) 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
ImportError
verursachte, 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_USAGE
wurde eingeführt, um das Umschalten zwischen dem „nanoarrow“-Konverter und dem „arrow“-Konverter zu ermöglichen. Gültige Werte:FOLLOW_SESSION_PARAMETER
zur Verwendung des auf dem Server konfigurierten Konverters.DISABLE_NANOARROW
zur Verwendung des „arrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.ENABLE_NANOARROW
zur Verwendung des „nanoarrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.
Die Enumeration
snowflake.connector.cursor.NanoarrowUsage
wurde mit folgenden Mitgliedern eingeführt:NanoarrowUsage.FOLLOW_SESSION_PARAMETER
zur Verwendung des auf dem Server konfigurierten Konverters.NanoarrowUsage.DISABLE_NANOARROW
zur Verwendung des „arrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.NanoarrowUsage.ENABLE_NANOARROW
zur Verwendung des „nanoarrow“-Konverters, wodurch die Servereinstellungen überschrieben werden.
Die Modulvariable
snowflake.connector.cursor.NANOARROW_USAGE
wurde 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 -> manager
wurde im Modulsnowflake.connector.config_manager
konsistenter gestaltet.Unterstützung von Standardwerten für
ConfigOptions
hinzugefügt.Datei
default_connection_name
zuconfig.toml
hinzugefügt.
Fehlerkorrekturen¶
Keine.
Version 3.1.1 (28. August 2023)¶
Neue Features und Aktualisierungen¶
Unterstützung von RSAPublicKey beim Erstellen von
AuthByKeyPair
zusä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_header
inSOCKSProxyManager
fehlt, 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.toml
hinzufü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.toml
an dem Speicherort gesucht, der in der UmgebungsvariablenSNOWFLAKE_HOME
angegeben 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_alive
zuSnowflakeConnection
hinzugefügt, der das Löschen der Sitzung überspringt, wenn die Clientverbindung getrennt wird.Pinning von
platformdirs
gestrafft, um zu verhindern, dass deren neue Versionen die neue Versionen des Konnektors beschädigen.Möglichkeit der Übergabe von
type_mapper
anfetch_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
SFPlatformDirs
fälschlicherweise Anwendungsname und Version an den Pfad angehängt hat.Fehler behoben, bei dem
write_pandas
fehlschlä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.dump
wä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_decoding
hinzugefü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_params
des Dictionary-Objekts ändern konnte.Fehler behoben, der den Aufruf von
SnowflakeCursor.nextset
vor 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.execute
verbessert.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_pandas
beim Schreiben eines Pandas-DataFrame mit Spaltennamen auftrat, die doppelte Anführungszeichen enthalten.Fehler behoben, der in
snowflake.connector.pandas_tool.write_pandas
beim 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_all
undSnowflakeCursor.fetchall
führte.Protokollierung beim Maskieren von Token für Fehlerfall verbessert.
Fehler behoben, bei dem
snowflake.connector.util_text.split_statements
den 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, einAttributeError
auslöste.Fehler behoben, bei dem auf AWS der
put
-Befehl bei Dateien größer als 200 MB zu einemAttributeError
auslö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
setuptools
zu Gunsten von Paketerstellung ersetzt.Der doc-Zeichenfolge der Methode
async_executes
wurde 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_timeout
beim Aufruf vonAuthByKeyPair.prepare
Schlü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_pandas
nicht mit den aktuell ausgewählten übereinstimmen, müssen Sie sicherstellen, dass der Benutzer, derwrite_pandas
ausführt, Berechtigungen für das Erstellen/Löschen von temporären Stagingbereichen, Dateiformaten und Tabellen in dem Schema hat, auf das die Funktionwrite_pandas
verweist.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_pandas
mit 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_pandas
zum 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.