Slide 1

Slide 1 text

Snowflake Horizon Catalog Apache Iceberg

Slide 2

Slide 2 text

Kitagawa Zempei https://dev.classmethod.jp/author/kitagawa-zempei/ Snowflake

Slide 3

Slide 3 text

1 2 Apache Iceberg 3 Snowflake Horizon Catalog 4 Snowflake Iceberg 5 03

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Snowflake Spark Trino Snowflake Spark Trino Iceberg REST Catalog API 1 1 Iceberg Amazon S3 05

Slide 6

Slide 6 text

3 Snowflake Apache Spark Trino DuckDB Snowflake Horizon Catalog Apache Iceberg Amazon S3 06

Slide 7

Slide 7 text

Apache Iceberg

Slide 8

Slide 8 text

Apache Iceberg Apache Iceberg 1 ACID Spark Trino Flink Presto 08

Slide 9

Slide 9 text

Iceberg Iceberg Iceberg Catalog metadata file metadata file s0 s1 manifest list manifest file manifest file data files Parquet https://iceberg.apache.org/spec/#overview 09

Slide 10

Slide 10 text

metadata file metadata file db1.table1 00003-.metadata.json db1.table2 00012-.metadata.json Amazon S3 db1/table1/metadata/ 00001-.metadata.json 00002-.metadata.json 00003-.metadata.json db1.table3 00007-.metadata.json metadata file 00003 00004-.metadata.json metadata file 00004 00004 https://iceberg.apache.org/spec/#metastore-tables 10

Slide 11

Slide 11 text

Iceberg REST Catalog API HTTP Spark Trino API DuckDB PyIceberg Snowflake Iceberg REST Catalog API HTTP Horizon Catalog Apache Polaris AWS Glue 11

Slide 12

Slide 12 text

vended credentials Amazon S3 X-Iceberg-Access-Delegation S3 12

Slide 13

Slide 13 text

Snowflake Horizon Catalog

Slide 14

Slide 14 text

Snowflake Horizon Catalog Snowflake 1 Snowflake SQL API REST API Iceberg REST Catalog API MCP Apache Polaris https://www.snowflake.com/en/product/features/horizon/ 14

Slide 15

Slide 15 text

Snowflake Horizon Catalog Snowflake Polaris REST Spark Snowflake Horizon Catalog Trino Snowflake SQL DuckDB PyIceberg GRANT Iceberg REST /polaris/api/catalog vended credentials S3 Iceberg S3 15

Slide 16

Slide 16 text

Snowflake Iceberg

Slide 17

Slide 17 text

Snowflake Iceberg Snowflake Snowflake Managed Horizon Catalog Snowflake storage AWS Glue S3 Snowflake S3 Catalog Snowflake Horizon REST Snowflake catalog-linked database Snowflake cataloglinked database S3 17

Slide 18

Slide 18 text

Snowflake DuckDB Athena Spark Snowflake Athena DuckDB Snowflake Horizon Catalog AWS Amazon Athena PC DuckDB PAT PySpark INSERT SELECT Snowflake Snowsight vended credentials INSERT SELECT vended credentials Amazon S3 Snowflake Iceberg Athena PySpark engine version 3 DuckDB 1.5.4 https://dev.classmethod.jp/articles/snowflake-managed-iceberg-tables-write-from-athena/ https://dev.classmethod.jp/articles/snowflake-tables-iceberg-internal-storage-query-try/ 18

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Athena Horizon Catalog REST type = rest Snowflake URL PAT warehouse uri = https://.snowflakecomputing.com/polaris/api/catalog credential = scope = session:role: warehouse = S3 Athena header.X-Iceberg-Access-Delegation = vended-credentials Spark SELECT spark.sql.iceberg.vectorization.enabled = false 20

Slide 21

Slide 21 text

DuckDB PAT S3 Horizon Catalog /v1/oauth/tokens vended credentials TOKEN INSTALL iceberg; LOAD iceberg; CREATE SECRET horizon (TYPE iceberg, TOKEN ''); ATTACH '' AS horizon ( TYPE iceberg, SECRET horizon, ENDPOINT 'https://.snowflakecomputing.com/polaris/api/catalog' ); SELECT * FROM horizon..; scope session:role: PAT CLIENT_SECRET DuckDB Snowflake 21

Slide 22

Slide 22 text

Snowflake 2026 9 Snowflake scope session:role: GA vended credentials Snowflake Spark S3 Scan Plan API Iceberg 1.11 https://docs.snowflake.com/en/user-guide/tables-iceberg-enforce-access-policies-scan-plan-api 22

Slide 23

Slide 23 text

Snowflake S3 vended credentials IAM IAM Snowflake vended credentials IAM IAM Athena IAM Horizon Catalog 23

Slide 24

Slide 24 text

IAM { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": ["arn:aws:s3:::example-iceberg-bucket", "arn:aws:s3:::example-iceberg-bucket/*"], "Condition": {"ArnNotLike": {"aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/snowflake-volume", "arn:aws:iam::111122223333:role/your-admin" ]}} } 24

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Snowflake AI Snowflake Snowflake Snowflake Cortex Agents Cortex Analyst Cortex Analyst Spark Trino DuckDB SQL Horizon Catalog Snowflake Iceberg REST Catalog API Iceberg S3 Snowflake 26

Slide 27

Slide 27 text

Snowflake S3 Open Data Sharing Iceberg REST Catalog API Snowflake Iceberg S3 external consumer PAT Snowflake S3 Iceberg REST Catalog API PAT Iceberg REST 27

Slide 28

Slide 28 text

Iceberg GA 2026 9 26 GA GA Snowflake Iceberg 2024-06 catalog-linked database 2025-10 Horizon 2026-02 Horizon 2026-05 Iceberg v3 2026-05 Snowflake storage 2026-06 Open Data Sharing Horizon Scan Plan API 2026-08 2026-08 2026-09 28

Slide 29

Slide 29 text

1 Snowflake

Slide 30

Slide 30 text

No content