
# Doris多源数据能力概述
Doris的Hive外表自带create catalog能力，通过连接Hive Metastore，或者兼容Hive Metastore的元数据服务自动获取Hive库表信息，并进行表数据查询，从而避免了传统外部数据目录多需要手动映射以及数据迁移的复杂工程。
多源数据目录（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可以直接对应到外部数据目录。
#### 基础概念
1. Internal Catalog Doris原有的Database和Table都将归属于Internal Catalog。Internal Catalog是内置的默认Catalog，用户不可修改或删除。
   
2. External Catalog 可以通过CREATE CATALOG命令创建一个External Catalog。创建后，可以通过SHOW CATALOGS命令查看已创建的Catalog。
   
3. 切换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中的数据进行只读访问。
   
4. 删除Catalog External Catalog中的Database和Table都是只读的。但是可以删除Catalog（Internal Catalog无法删除）。可以通过DROP CATALOG命令删除一个External Catalog。
   该操作仅会删除Doris中该Catalog的映射信息，并不会修改或变更任何外部数据目录的内容。
   
5. Resource Resource是一组配置的集合。用户可以通过CREATE RESOURCE命令创建一个Resource。之后可以在创建Catalog时使用这个Resource。
   一个Resource可以被多个Catalog使用，以复用其中的配置。
   
 
