最近更新时间:2024.01.12 15:15:13
首次发布时间:2024.01.12 15:15:13
External Catalog(外部数据目录),用于管理外部数据源的访问信息。在Serverless StarRocks中,您可以通过External Catalog直接查询外部数据。
本文介绍使用External Catalog如何查询外部数据。
CREATE EXTERNAL CATALOG <catalog_name> [COMMENT <comment>] PROPERTIES ( "type" = "<type>", MetastoreParams )
参数 | 必选 | 说明 |
---|---|---|
catalog_name | 是 | External catalog 的名称,命名要求如下:
|
comment | 否 | External catalog 的描述。 |
type | 数据源的类型,必选参数。支持hive、hudi和iceberg等数据源。 | |
MetastoreParams | 是 | External catalog 的属性,不同的 external catalog 需要设置不同属性。详细配置信息,请参见 Hive catalog、Iceberg catalog、Hudi catalog、Delta Lake catalog 和 JDBC Catalog。 |
通过DROP CATALOG可以删除指定的external catalog。
DROP CATALOG catalog_name
Hive catalog用于查询Hive集群中的数据。。通过 Hive Catalog,您不需要执行数据导入就可以直接查询 Hive里的数据。您还可以基于Hive Catalog,通过 INSERT INTO 能力来实现数据转换和导入。
上述语法中,在MetastoreParams配置访问 Hive 集群元数据服务的相关参数:
使用Hive Metastore元数据配置项如下:
参数 | 说明 |
---|---|
hive.metastore.uris | Hive MetaStore的URI。格式为thrift://<Hive MetaStore的IP地址>:<Hive MetaStore的端口号>。多个URI之间用逗号隔开。 |
示例
创建Hive Catalog
CREATE EXTERNAL CATALOG hive PROPERTIES ( "type" = "hive", "hive.metastore.uris" = "thrift://<Hive MetaStore的IP地址>:9083" );
切换数据库
以default数据库为例。
USE hive.default;
查看表结构
以hive_table表名为例。
DESC hive.default.hive_table; SHOW CREATE TABLE hive.default.hive_table;
查询Hive表中数据
SELECT * FROM hive.default.hive_table LIMIT 10;
导入数据
假设有一个 OLAP 表,表名为 olap_tbl
。您可以这样来转换该表中的数据,并把数据导入到 StarRocks 中:
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM hive.default.hive_table;
删除Catalog
DROP CATALOG hive;
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", );
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" );