You need to enable JavaScript to run this app.
导航

External Catalog

最近更新时间2024.01.12 15:15:13

首次发布时间2024.01.12 15:15:13

External Catalog(外部数据目录),用于管理外部数据源的访问信息。在Serverless StarRocks中,您可以通过External Catalog直接查询外部数据。
本文介绍使用External Catalog如何查询外部数据。

1 创建External Catalog

1.1 语法

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
  "type" = "<type>",
  MetastoreParams
)

1.2 参数说明

参数必选说明

catalog_name

External catalog 的名称,命名要求如下:

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

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

  • Catalog 名称大小写敏感。

commentExternal catalog 的描述。
type数据源的类型,必选参数。支持hive、hudi和iceberg等数据源。
MetastoreParamsExternal catalog 的属性,不同的 external catalog 需要设置不同属性。详细配置信息,请参见 Hive catalogIceberg catalogHudi catalogDelta Lake catalogJDBC Catalog
2 删除Catalog

通过DROP CATALOG可以删除指定的external catalog。

2.1 语法

DROP CATALOG catalog_name
3 使用示例

3.1 Hive Catalog

Hive catalog用于查询Hive集群中的数据。。通过 Hive Catalog,您不需要执行数据导入就可以直接查询 Hive里的数据。您还可以基于Hive Catalog,通过 INSERT INTO 能力来实现数据转换和导入。
上述语法中,在MetastoreParams配置访问 Hive 集群元数据服务的相关参数:
使用Hive Metastore元数据配置项如下:

参数说明
hive.metastore.urisHive MetaStore的URI。格式为thrift://<Hive MetaStore的IP地址>:<Hive MetaStore的端口号>。多个URI之间用逗号隔开。

示例

  1. 创建Hive Catalog

    CREATE EXTERNAL CATALOG hive
    PROPERTIES
    (
        "type" = "hive",
        "hive.metastore.uris" = "thrift://<Hive MetaStore的IP地址>:9083"
    );
    
  2. 切换数据库

    以default数据库为例。

    USE hive.default;
    
  3. 查看表结构

    以hive_table表名为例。

    DESC hive.default.hive_table;
    SHOW CREATE TABLE hive.default.hive_table;
    
  4. 查询Hive表中数据

    SELECT * FROM hive.default.hive_table LIMIT 10;
    
  5. 导入数据

    假设有一个 OLAP 表,表名为 olap_tbl。您可以这样来转换该表中的数据,并把数据导入到 StarRocks 中:

    INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM hive.default.hive_table;
    
  6. 删除Catalog

    DROP CATALOG hive;
    

3.2 Hudi Catalog

Hudi catalog用于查询Hudi集群中的数据。通过 Hudi Catalog,您不需要执行数据导入就可以直接查询Hudi 里的数据,还可以基于Hudi Catalog,结合 INSERT INTO 能力来实现数据转换和导入。
上述语法中MetastoreParams参数配置类似于Hive Catalog。

示例

创建Hudi catalog

CREATE EXTERNAL CATALOG hudi
PROPERTIES
(
    "type" = "hudi",
    "hive.metastore.uris" = "thrift://<Hive MetaStore的IP地址>:9083",
);

3.3 Iceberg Catalog

Iceberg catalog用于查询 Iceberg 集群中的数据。

示例

创建Iceberg catalog

CREATE EXTERNAL CATALOG iceberg
PROPERTIES
(
    "type" = "iceberg",
    "iceberg.catalog.type"="hive",
    "iceberg.catalog.hive.metastore.uris" = "thrift://<Hive MetaStore的IP地址>:9083"
);