fsspec 파일시스템 사용하기
fsspec 파일시스템 사용하기 (Using fsspec Filesystems)
DuckDB의 fsspec 파일시스템 지원은 DuckDB의 httpfs 익스텐션이 지원하지 않는 파일시스템의 데이터를 쿼리할 수 있게 해줘요. fsspec은 내장 파일시스템이 많고 외부 구현도 많아요. 이 기능은 DuckDB Python 클라이언트에서만 사용할 수 있어요 — fsspec은 Python 라이브러리인 반면 httpfs 익스텐션은 여러 DuckDB 클라이언트에서 사용할 수 있기 때문이에요.
출처: 문서
본문
DuckDB의 fsspec 파일시스템 지원은 DuckDB의 httpfs 익스텐션이 지원하지 않는 파일시스템의 데이터를 쿼리할 수 있게 해줘요. fsspec은 내장 파일시스템이 많고 외부 구현도 많아요. 이 기능은 DuckDB Python 클라이언트에서만 사용할 수 있어요 — fsspec은 Python 라이브러리인 반면 httpfs 익스텐션은 여러 DuckDB 클라이언트에서 사용할 수 있기 때문이에요.
예시 (Example)
다음은 (S3 호환 API 대신) fsspec을 사용해 Google Cloud Storage의 파일을 쿼리하는 예시예요.
먼저 duckdb와 fsspec, 그리고 원하는 파일시스템 인터페이스를 설치해야 해요.
pip install duckdb fsspec gcsfs
그런 다음 쿼리하고 싶은 파일시스템을 등록할 수 있어요:
import duckdb
from fsspec import filesystem
# 이 줄은 적절한 파일시스템 인터페이스가 설치되지 않았으면 예외를 던져요
duckdb.register_filesystem(filesystem('gcs'))
duckdb.sql("SELECT * FROM read_csv('gcs:///bucket/file.csv')")
이 파일시스템들은 C++로 구현되지 않았기 때문에 성능이
httpfs익스텐션이 제공하는 것과 비슷하지 않을 수 있어요. 또한 서드파티 라이브러리이므로 우리가 통제할 수 없는 버그가 있을 수 있다는 점도 참고할 가치가 있어요.
더 알아보기 (Learn more)
- fsspec 문서 — 지원 파일시스템 목록과 API.
- httpfs 익스텐션 — DuckDB 네이티브 원격 파일 접근.