Skip to main content

iceberg Table Function

Provides a read-only table-like interface to Apache Iceberg tables in Amazon S3.

Syntax

iceberg(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure])

Arguments

  • url — Bucket url with the path to an existing Iceberg table in S3.
  • aws_access_key_id, aws_secret_access_key - Long-term credentials for the AWS account user. You can use these to authenticate your requests. These parameters are optional. If credentials are not specified, they are used from the ClickHouse configuration. For more information see Using S3 for Data Storage.
  • format — The format of the file. By default Parquet is used.
  • structure — Structure of the table. Format 'column1_name column1_type, column2_name column2_type, ...'.

Engine parameters can be specified using Named Collections.

Returned value

A table with the specified structure for reading data in the specified Iceberg table in S3.

Example

SELECT * FROM iceberg('http://test.s3.amazonaws.com/clickhouse-bucket/test_table', 'test', 'test')
info

ClickHouse currently supports reading v1 (v2 support is coming soon!) of the Iceberg format via the iceberg table function and Iceberg table engine.

Defining a named collection

Here is an example of configuring a named collection for storing the URL and credentials:

<clickhouse>
<named_collections>
<iceberg_conf>
<url>http://test.s3.amazonaws.com/clickhouse-bucket/</url>
<access_key_id>test<access_key_id>
<secret_access_key>test</secret_access_key>
<format>auto</format>
<structure>auto</structure>
</iceberg_conf>
</named_collections>
</clickhouse>
SELECT * FROM iceberg(iceberg_conf, filename = 'test_table')
DESCRIBE iceberg(iceberg_conf, filename = 'test_table')

See Also