第8章. DuckDBを使ってリモートデータにアクセスする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
これまでの章では、MySQLデータベースやCSV、JSON、Parquetファイルなど、ローカルデータを扱うためにDuckDBを使用してきた。実用的なシナリオでは、扱うデータは通常リモートサーバにあり、複数の場所から取得することが多い。幸いなことに、DuckDBはhttpfs 拡張機能を提供しており、リモートデータセットにアクセスすることができる。さらにDuckDBは、ユーザが機械学習用の事前学習モデルを共有できるプラットフォームであるHugging Faceがホストするデータセットへのアクセスもサポートしている。Hugging Faceは大規模なデータセットのリポジトリもホストしており、開発者はこれをダウンロードして独自のモデルを学習することができる。
この章では、DuckDBでhttpfs 拡張を使ってリモートデータセットを扱う方法と、DuckDBを使ってHugging Faceがホストしている膨大なデータセットにアクセスする方法を学ぶ。
DuckDBのhttpfs拡張機能
DuckDB のhttpfs 拡張モジュールは、リモートファイルの読み書きを可能にするファイルシステムを実装した、オートロード可能な拡張モジュールである。この拡張により、DuckDBはファイルをローカルにダウンロードすることなく、HTTPやHTTPSプロトコルで直接読み書きできるようになる。これは、ローカル・ストレージを超える大規模データセットを扱う場合、リアルタイムまたは頻繁に更新されるデータにアクセスする場合、複数のリモート・ソースから分散データをクエリする場合、クラウド・ストレージとシームレスに統合する場合に特に役立つ。効率的なリモートデータ分析が可能になり、クラウドベースのデータレイク、ウェブAPI、分散ファイルシステムを含むシナリオに最適である。
httpfs という拡張子は、CSVやParquetなど、DuckDBがネイティブにサポートしているさまざまなファイル形式をサポートしている。
チップ
httpfs 拡張機能は、オブジェクト・ストレージの読み取りと書き込み、Amazon S3(Simple Storage Service)APIを使ったファイルのグロビングもサポートしている。
httpfs 、DuckDBセッションにインストールしてロードする必要がある:
importduckdbconn=duckdb.connect()conn.execute('''INSTALL httpfs;LOAD httpfs;''')
httpfs 、DuckDBセッションごとに一度だけインストールと読み込みを行う必要がある。
次のセクションでは、httpfs 拡張機能を使って、リモートで保存されているCSVファイルやParquetファイル()をクエリする方法を学ぶ。
CSVファイルとParquetファイルをリモートでクエリする
httpfs 、リモートからファイルにアクセスすることができる。ウェブサーバに保存されているファイルであれば、読み書きしたいファイルの点を直接指すURLを使うだけで、DuckDBは最初にローカルにダウンロードすることなく処理してくれる。しかし、GitHubなどのサイトに保存されているファイルの場合は、生のファイルを含むURLを取得する必要がある。次の2つのセクションでは、以下のことを行う: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access