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. |