fsspec-Dateisysteme verwenden
Die DuckDB-Unterstützung für fsspec-Dateisysteme ermöglicht Abfragen auf Dateisystemen, die die DuckDB-httpfs-Extension nicht unterstützt. fsspec bietet eine große Zahl eingebauter Dateisysteme, und es gibt zudem viele externe Implementierungen. Diese Funktion ist nur im Python-Client von DuckDB verfügbar, weil fsspec eine Python-Bibliothek ist, während die httpfs-Extension in vielen DuckDB-Clients zur Verfügung steht.
Beispiel
Das folgende Beispiel zeigt, wie Sie mit fsspec eine Datei in Google Cloud Storage abfragen (statt der S3-kompatiblen API).
Zuerst müssen Sie duckdb und fsspec sowie eine Dateisystemschnittstelle Ihrer Wahl installieren.
pip install duckdb fsspec gcsfsAnschließend können Sie das gewünschte Dateisystem registrieren:
import duckdbfrom fsspec import filesystem
# this line will throw an exception if the appropriate filesystem interface is not installedduckdb.register_filesystem(filesystem('gcs'))
duckdb.sql("SELECT * FROM read_csv('gcs:///bucket/file.csv')")Diese Dateisysteme sind nicht in C++ implementiert, daher kann ihre Leistung nicht mit der der
httpfs-Extension mithalten. Außerdem handelt es sich um Drittanbieter-Bibliotheken, die Fehler enthalten können, auf die wir keinen Einfluss haben.