Iceberg 表引擎
引入或更新: v1.2.262
Databend 的 Apache Iceberg 引擎允许您无缝查询和分析存储在对象存储中的 Apache Iceberg 表中的数据。当您在 Databend 中使用 Apache Iceberg 引擎创建表时,您需要指定一个位置,该位置存储了 Apache Iceberg 表的数据文件。此设置使您可以直接访问该表,并从 Databend 内部无缝执行查询。
- Databend 的 Apache Iceberg 引擎目前仅支持只读操作。这意味着可以从您的 Apache Iceberg 表中查询数据,但不支持向表中写入数据。
- 使用 Apache Iceberg 引擎创建的表的 schema 在其创建时设置。对原始 Apache Iceberg 表的 schema 的任何修改都需要在 Databend 中重新创建相应的表,以确保同步。
数据类型映射
此表映射了 Apache Iceberg 和 Databend 之间的数据类型。请注意,Databend 目前不支持未列在表中的 Iceberg 数据类型。
Apache Iceberg | Databend |
---|---|
BOOLEAN | BOOLEAN |
INT | INT32 |
LONG | INT64 |
DATE | DATE |
TIMESTAMP/TIMESTAMPZ | TIMESTAMP |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
STRING/BINARY | STRING |
DECIMAL | DECIMAL |
ARRAY<TYPE> | ARRAY, 支持嵌套 |
MAP<KEYTYPE, VALUETYPE> | MAP |
STRUCT<COL1: TYPE1, COL2: TYPE2, ...> | TUPLE |
LIST | ARRAY |
语法
CREATE TABLE <table_name>
ENGINE = Iceberg
LOCATION = 's3://<path_to_table>'
CONNECTION_NAME = '<connection_name>'
在使用 Apache Iceberg 引擎创建表之前,您需要创建一个连接对象,用于与您的 S3 存储建立连接。要在 Databend 中创建连接,请使用 CREATE CONNECTION 命令。
示例
-- 设置连接
CREATE CONNECTION my_s3_conn
STORAGE_TYPE = 's3'
ACCESS_KEY_ID ='your-ak' SECRET_ACCESS_KEY ='your-sk';
-- 使用 Apache Iceberg 引擎创建表
CREATE TABLE test_iceberg
ENGINE = Iceberg
LOCATION = 's3://testbucket/iceberg_ctl/iceberg_db/iceberg_tbl/'
CONNECTION_NAME = 'my_s3_conn';