Использование файловых систем fsspec
Поддержка DuckDB для fsspec файловых систем позволяет запрашивать данные в файловых системах, которые не поддерживает расширение httpfs DuckDB. fsspec содержит большое количество встроенных файловых систем, а также много внешних реализаций. Эта возможность доступна только в Python-клиенте DuckDB, поскольку fsspec является Python-библиотекой, в то время как расширение httpfs доступно во многих клиентах DuckDB.
Пример
Ниже приведен пример использования fsspec для запроса файла в Google Cloud Storage (вместо использования их API, совместимого с S3).
Во-первых, необходимо установить duckdb и fsspec, а также интерфейс файловой системы по своему выбору.
pip install duckdb fsspec gcsfs
Затем можно зарегистрировать желаемую файловую систему для запросов:
import duckdb
from fsspec import filesystem
# this line will throw an exception if the appropriate filesystem interface is not installed
duckdb.register_filesystem(filesystem('gcs'))
duckdb.sql("SELECT * FROM read_csv('gcs:///bucket/file.csv')")
Эти файловые системы не реализованы на C++, поэтому их производительность может не сравниться с производительностью, предоставляемой расширением
httpfs. Также следует отметить, что, поскольку это библиотеки сторонних разработчиков, они могут содержать ошибки, которые находятся вне нашего контроля.
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/guides/python/filesystems.html