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 und private_key_file_pwd hinzugefügt.

  • Klasse SnowflakeConnection wurde das neue Flag expired 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.18

    • Vendor-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 in write_pandas hinzugefügt.

  • Argument backoff_policy zu snowflake.connector.connect hinzugefügt, um bei fehlgeschlagenen Anforderungen eine konfigurierbare Backoff-Richtlinie zwischen Wiederholungsversuchen zu ermöglichen. Verfügbare Implementierungen finden Sie im Modul backoff_policies.

  • Argument socket_timeout zu snowflake.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 und network_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 oder chmod) 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 Enumeration snowflake.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 aus urllib3-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 Modul snowflake.connector.config_manager konsistenter gestaltet.

  • Unterstützung von Standardwerten für ConfigOptions hinzugefügt.

  • Datei default_connection_name zu config.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 in SOCKSProxyManager 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"
    
    Copy

    Standardmäßig wird die Datei connections.toml an dem Speicherort gesucht, der in der Umgebungsvariablen SNOWFLAKE_HOME angegeben ist (Standard: ~/.snowflake). Wenn dieser Ordner nicht existiert, sucht der Python-Konnektor die Datei im Verzeichnis platformdirs, und zwar wie folgt:

    • Linux: ~/.config/snowflake/, folgt aber den XDG-Einstellungen

    • Mac: ~/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))"
    
    Copy
  • 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 zu SnowflakeConnection 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 an fetch_pandas_batches() und fetch_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 Argument statement_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 von execute_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 und SnowflakeCursor.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, ein AttributeError auslöste.

  • Fehler behoben, bei dem auf AWS der put-Befehl bei Dateien größer als 200 MB zu einem AttributeError 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 von AuthByKeyPair.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, der write_pandas ausführt, Berechtigungen für das Erstellen/Löschen von temporären Stagingbereichen, Dateiformaten und Tabellen in dem Schema hat, auf das die Funktion write_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.