概述
多源数据目录(Multi-Catalog)是Doris 1.2.0版本中推出的功能,旨在能够更方便对接外部数据目录,以增强Doris的数据湖分析和联邦数据查询能力。
在之前的Doris版本中,用户数据只有两个层级:Database和Table。当我们需要连接一个外部数据目录时,我们只能在Database或Table层级进行对接。比如通过create external table的方式创建一个外部数据目录中的表的映射,或通过create external database的方式映射一个外部数据目录中的Database。 如果外部数据目录中的Database或Table非常多,则需要用户手动进行一一映射,使用体验不佳。
而新的Multi-Catalog功能在原有的元数据层级上,新增一层Catalog,构成Catalog->Database->Table的三层元数据层级。其中,Catalog可以直接对应到外部数据目录。目前支持的外部数据目录包括:
- Hive
- JDBC: 对接数据库访问的标准接口(JDBC)来访问各式数据库的数据。
该功能将作为之前外表连接方式(External Table)的补充和增强,帮助用户进行快速的多数据目录联邦查询。
基础概念
- Internal Catalog
Doris原有的Database和Table都将归属于Internal Catalog。Internal Catalog是内置的默认Catalog,用户不可修改或删除。
- External Catalog
可以通过CREATE CATALOG命令创建一个External Catalog。创建后,可以通过SHOW CATALOGS命令查看已创建的Catalog。
- 切换Catalog
用户登录Doris后,默认进入Internal Catalog,因此默认的使用和之前版本并无差别,可以直接使用SHOW DATABASES,USE DB等命令查看和切换数据库。
用户可以通过SWITCH命令切换Catalog。如:
SWITCH internal; SWITCH hive_catalog;
切换后,可以直接通过SHOW DATABASES,USE DB等命令查看和切换对应Catalog中的Database。Doris会自动通过Catalog中的Database和Table。用户可以像使用Internal Catalog一样,对External Catalog中的数据进行查看和访问。
当前,Doris只支持对 External Catalog中的数据进行只读访问。
- 删除Catalog
External Catalog中的Database和Table都是只读的。但是可以删除Catalog(Internal Catalog无法删除)。可以通过DROP CATALOG命令删除一个External Catalog。
该操作仅会删除Doris中该Catalog的映射信息,并不会修改或变更任何外部数据目录的内容。
- Resource
Resource是一组配置的集合。用户可以通过CREATE RESOURCE命令创建一个Resource。之后可以在创建Catalog时使用这个Resource。
一个Resource可以被多个Catalog使用,以复用其中的配置。