跳到主要内容

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 IcebergDatabend
BOOLEANBOOLEAN
INTINT32
LONGINT64
DATEDATE
TIMESTAMP/TIMESTAMPZTIMESTAMP
FLOATFLOAT
DOUBLEDOUBLE
STRING/BINARYSTRING
DECIMALDECIMAL
ARRAY<TYPE>ARRAY, 支持嵌套
MAP<KEYTYPE, VALUETYPE>MAP
STRUCT<COL1: TYPE1, COL2: TYPE2, ...>TUPLE
LISTARRAY

语法

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';
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册