Zum Inhalt springen

Referenz der Funktionen und Einstellungen

Diese Seite ist eine Referenz aller Funktionen und Einstellungen der iceberg-Erweiterung. Aufgabenorientierte Dokumentation finden Sie auf den Seiten Überblick (Lesen), Schreiben nach Iceberg und Iceberg REST Catalogs.

Funktionen, die eine Tabelle entgegennehmen, akzeptieren entweder einen Pfad zu den Metadaten einer Tabelle (z. B. 'data/iceberg/lineitem_iceberg') oder, wenn ein Katalog angehängt ist, einen vollständig qualifizierten Tabellennamen (z. B. my_catalog.default.my_table).

Gemeinsame Parameter

Die folgenden Lese- und Metadaten-Tabellenfunktionen akzeptieren die folgenden benannten Parameter:

Parameter Typ Standard Beschreibung
allow_moved_paths BOOLEAN false Erlaubt das Scannen verschobener Iceberg-Tabellen
metadata_compression_codec VARCHAR '' Auf 'gzip' setzen, um gzip-komprimierte Metadatendateien zu lesen
snapshot_from_id UBIGINT NULL Auf den Snapshot mit einer bestimmten id zugreifen
snapshot_from_timestamp TIMESTAMP NULL Auf den Snapshot zu einem bestimmten timestamp zugreifen
version VARCHAR '?' Explizite Versionszeichenkette, Hint-Datei oder '?' zum Raten
version_name_format VARCHAR 'v%s%s.metadata.json,%s%s.metadata.json' Steuert, wie Versionen in Metadatendateinamen umgewandelt werden

Details finden Sie unter Metadatenversionen auswählen.

Lese- und Metadatenfunktionen

Funktion Beschreibung
iceberg_scan(table, ⟨options⟩) Liest die Daten einer Iceberg-Tabelle. Gibt die Spalten der Tabelle zurück.
iceberg_metadata(table, ⟨options⟩) Gibt eine Zeile pro Manifest-Eintrag zurück. Spalten: manifest_path, manifest_sequence_number, manifest_content, status, content, file_path, file_format, record_count.
iceberg_snapshots(table, ⟨options⟩) Gibt eine Zeile pro Snapshot zurück. Spalten: sequence_number, snapshot_id, timestamp_ms, manifest_list.
iceberg_column_stats(table, ⟨options⟩) Gibt Statistiken pro Datendatei und Spalte zurück. Spalten u. a. file_path, column_name, column_type, lower_bound, upper_bound, value_count, null_value_count, nan_value_count.
iceberg_partition_stats(table, ⟨options⟩) Gibt Statistiken pro Partitionsfeld zurück. Spalten u. a. partition_field_name, partition_source_columns, partition_field_transform, lower_bound, upper_bound.
iceberg_load_table_response(table) Fortgeschritten, nur REST-Katalog. Gibt die rohe Katalogantwort LoadTable zurück: metadata_location, metadata (VARIANT), config (MAP), storage_credentials, request_url.
SELECT * FROM iceberg_snapshots('data/iceberg/lineitem_iceberg');
SELECT * FROM iceberg_column_stats('my_catalog.default.events');

Funktionen für Tabellen- und Schemaeigenschaften

Diese Funktionen lesen und ändern Iceberg-Tabelleneigenschaften und Iceberg-Schema- (Namespace-)Eigenschaften. Sie erfordern einen angehängten Katalog. Siehe Schreiben nach Iceberg.

Funktion Beschreibung
iceberg_table_properties(table) Gibt alle Eigenschaften der Tabelle zurück.
set_iceberg_table_properties(table, properties) Setzt Eigenschaften auf der Tabelle. properties ist ein MAP(VARCHAR, VARCHAR).
remove_iceberg_table_properties(table, property_list) Entfernt die aufgeführten Eigenschaften (VARCHAR[]) von der Tabelle.
iceberg_schema_properties(schema) Gibt alle Eigenschaften des Schemas (Namespace) zurück.
set_iceberg_schema_properties(schema, properties) Setzt Eigenschaften auf dem Schema.
remove_iceberg_schema_properties(schema, property_list) Entfernt die aufgeführten Eigenschaften vom Schema.

DuckLake-Interoperabilität

Funktion Beschreibung
iceberg_to_ducklake(iceberg_catalog, ducklake_catalog, skip_tables := [...]) Führt eine reine Metadatenkopie eines angehängten Iceberg-Katalogs in einen DuckLake-Katalog durch. Der optionale Parameter skip_tables (VARCHAR[]) schließt Tabellen aus.

Siehe Interoperabilität mit DuckLake.

Funktionen für Partitionstransformationen

Diese Skalarfunktionen implementieren die Iceberg-Partitionstransformationen. Sie werden am häufigsten in einer Klausel PARTITIONED BY verwendet (siehe Partitionierung), können aber auch direkt aufgerufen werden.

Funktion Beschreibung
iceberg_bucket(num_buckets, value) Gibt den Iceberg-Bucket-Partitionswert (ein INTEGER) für value zurück. Unterstützte Typen für value: INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP_NS, VARCHAR, BLOB, UUID.
iceberg_truncate(width, value) Gibt den Iceberg-Truncate-Partitionswert für value zurück, mit demselben Typ wie value. Unterstützte Typen: INTEGER, BIGINT, DECIMAL, VARCHAR, BLOB.
SELECT iceberg_bucket(16, 'duckdb');
SELECT iceberg_truncate(10, 1234);

Einstellungen

Einstellung Typ Standard Beschreibung
unsafe_enable_version_guessing BOOLEAN false Erlaubt das Durchsuchen des Dateisystems (falls möglich), um die neueste Metadatenversion zu finden. Dabei kann eine nicht committete Version gelesen werden, daher ist die Option standardmäßig deaktiviert.
iceberg_use_metadata_log BOOLEAN true Verwendet das optionale metadata-log einer Tabelle, um Atomaritätsgarantien zu wahren, auf Kosten eines zusätzlichen Metadaten-GET in seltenen Fällen.
ignore_target_file_size_for_partitioned_tables BOOLEAN false Ignoriert die nicht unterstützte Tabelleneigenschaft write.target-file-size-bytes auf partitionierten Tabellen, statt einen Fehler auszulösen.
ignore_row_group_size_for_partitioned_tables BOOLEAN false Ignoriert die nicht unterstützte Tabelleneigenschaft write.parquet.row-group-size-bytes auf partitionierten Tabellen, statt einen Fehler auszulösen.
iceberg_via_aws_sdk_for_catalog_interactions BOOLEAN false Verwendet den Legacy-AWS-SDK-Pfad für die Interaktion mit AWS-basierten Katalogen statt des HTTP-Clients von DuckDB.