文档

Iceberg数据源

更新时间:

Iceberg Catalog是一种External Catalog。通过Iceberg Catalog,您可以直接查询Iceberg中的数据。本文为您介绍如何在E-MapReduce的StarRocks集群上创建和查看Iceberg Catalog。

前提条件

  • 已创建包含Iceberg服务的集群,例如DataLake或Custom集群,详情请参见创建集群。

  • 已创建包含StarRocks服务的集群,例如OLAP或Custom集群,并成功连接到集群,详情请参见创建集群快速入门

使用限制

  • 创建的两个集群需要在同一个VPC下,并且在同一个可用区下。

  • StarRocks当前支持查询Versions 1表(Analytic Data Tables),暂不支持查询Versions 2表(Row-level Deletes)。两种表的详细信息请参见Iceberg Table Spec

创建Iceberg Catalog

语法

CREATE EXTERNAL CATALOG <catalog_name>
PROPERTIES
( 
  "key"="value", 
  ...
);

参数说明

  • catalog_name:Iceberg Catalog的名称,必选参数。命名要求如下:

    • 必须由字母(a~z或A~Z)、数字(0~9)或下划线(_)组成,并且只能以字母开头。

    • 总长度不能超过64个字符。

  • PROPERTIES:Iceberg Catalog的属性,必选参数。Iceberg使用的元数据服务不同,该参数的配置也不同。Iceberg Catalog的作用是保存Iceberg表和其存储路径的映射关系。不同元数据服务的配置方法如下:

    • Hive MetaStore

      属性

      是否必选

      说明

      type

      数据源类型,取值为iceberg

      iceberg.catalog.type

      Iceberg中Catalog的类型。使用Hive MetaStore则设置该参数为HIVE

      iceberg.catalog.hive.metastore.uris

      Hive MetaStore的URI。格式为thrift://<Hive MetaStore的IP地址>:<端口号>,端口号默认为9083。

    • 自定义元数据服务

      如果使用自定义元数据服务,则需要您在StarRocks中开发一个Custom Catalog类(Custom Catalog类名不能与StarRocks中已存在的类名重复),并实现相关接口,以保证StarRocks能够访问自定义元数据服务。Custom Catalog类需要继承抽象类BaseMetastoreCatalog。有关Custom Catalog开发和相关接口实现的具体信息,请参见IcebergHiveCatalog。开发完成后,您需要将Custom Catalog及其相关文件打包并放到所有FE节点的fe/lib路径下,然后重启所有FE节点,以便FE识别该类。

      属性

      是否必选

      说明

      type

      数据源类型,取值为iceberg

      iceberg.catalog.type

      Iceberg中Catalog的类型。使用自定义元数据服务时设置该参数为CUSTOM

      iceberg.catalog-impl

      Custom Catalog的全限定类名。

      FE会根据该类名查找开发的Custom Catalog。如果您在Custom Catalog中自定义了配置项,并且希望在查询外部数据时这些配置项能生效,您可以在创建Iceberg Catalog时将这些配置项以键值对的形式添加到SQL语句的PROPERTIES中。

示例

以下示例创建了一个名为iceberg_catalog的Iceberg Catalog。

CREATE EXTERNAL CATALOG iceberg_catalog
PROPERTIES
(
    "type" = "iceberg",
    "iceberg.catalog.type" = "HIVE",
    "iceberg.catalog.hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083"
);

查看Iceberg表数据

您可以通过SELECT查询目标数据库中的目标表。

SELECT * FROM <catalog_name>.<database_name>.<table_name>;

相关文档

Iceberg更多介绍,请参见Iceberg概述

  • 本页导读 (1)
文档反馈