HTTP(S)-Unterstützung
Mit der Erweiterung httpfs können Dateien direkt über das HTTP(S)-Protokoll abgefragt werden. Das funktioniert für alle Dateien, die DuckDB oder seine verschiedenen Erweiterungen unterstützen, und bietet nur Lesezugriff.
SELECT *FROM 'https://domain.tld/file.extension';Partielles Lesen
CSV-Dateien werden in den meisten Fällen vollständig heruntergeladen, weil das Format zeilenbasiert ist.
Für Parquet-Dateien unterstützt DuckDB partielles Lesen, d. h. es kann Parquet-Metadaten und HTTP-Range-Requests kombinieren, um nur die Teile der Datei herunterzuladen, die die Abfrage tatsächlich braucht. Die folgende Abfrage liest beispielsweise nur die Parquet-Metadaten und die Daten der Spalte column_a:
SELECT column_aFROM 'https://domain.tld/file.parquet';In manchen Fällen müssen gar keine eigentlichen Daten gelesen werden, weil nur Metadaten nötig sind:
SELECT count(*)FROM 'https://domain.tld/file.parquet';Mehrere Dateien scannen
Das Scannen mehrerer Dateien über HTTP(S) wird ebenfalls unterstützt:
SELECT *FROM read_parquet([ 'https://domain.tld/file1.parquet', 'https://domain.tld/file2.parquet']);Authentifizierung
Um sich an einem HTTP(S)-Endpunkt zu authentifizieren, legen Sie mit dem Secrets Manager ein HTTP-Secret an:
CREATE SECRET http_auth ( TYPE http, BEARER_TOKEN '⟨token⟩');Oder:
CREATE SECRET http_auth ( TYPE http, EXTRA_HTTP_HEADERS MAP { 'Authorization': 'Bearer ⟨token⟩' });HTTP-Proxy
DuckDB unterstützt HTTP-Proxys.
Sie können einen HTTP-Proxy über den Secrets Manager hinzufügen:
CREATE SECRET http_proxy ( TYPE http, HTTP_PROXY '⟨http_proxy_url⟩', HTTP_PROXY_USERNAME '⟨username⟩', HTTP_PROXY_PASSWORD '⟨password⟩');Mit dem Schlüsselwort SCOPE können Sie den Geltungsbereich eines HTTP-Proxys festlegen.
CREATE SECRET http_proxy ( TYPE HTTP, SCOPE ['⟨https://duckdb.org⟩', '⟨https://some-other-website.org⟩'], HTTP_PROXY '⟨http_proxy_url⟩', HTTP_PROXY_USERNAME '⟨username⟩', HTTP_PROXY_PASSWORD '⟨password⟩');Alternativ können Sie ihn über Konfigurationsoptionen setzen:
SET http_proxy = '⟨http_proxy_url⟩';SET http_proxy_username = '⟨username⟩';SET http_proxy_password = '⟨password⟩';Hinweis: Über die Konfigurationsoptionen können Sie keinen Proxy-Geltungsbereich setzen.
Eigene Zertifikatsdatei verwenden
Um die Erweiterung httpfs mit einer eigenen Zertifikatsdatei zu nutzen, setzen Sie vor dem Laden der Erweiterung die folgenden Konfigurationsoptionen:
LOAD httpfs;SET ca_cert_file = '⟨certificate_file⟩';SET enable_server_cert_verification = true;Wenn Sie die SSL-Prüfung für alle HTTP-Anfragen über ein HTTP-Secret deaktivieren möchten, können Sie das mit der folgenden Anweisung tun:
CREATE SECRET disable_ssl ( TYPE HTTP, VERIFY_SSL 0);Um sie für einen bestimmten Endpunkt wieder zu aktivieren, können Sie den Parameter SCOPE nutzen:
CREATE SECRET enable_ssl_for_your_website ( TYPE HTTP, SCOPE 'https://⟨your-website.com⟩', VERIFY_SSL 1);