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可以直接对应到外部数据目录。目前支持的外部数据目录包括:
- Hive
- JDBC: 对接数据库访问的标准接口(JDBC)来访问各式数据库的数据。
背景
许多客户的Hive表数据存储在OBS或HDFS上,需要Doris对接Hive外表,且MRS集群分为安全集群与非安全集群,所以可以使用以下4种方式进行数据查询:
- 认证类型选择SIMPLE,访问存储在HDFS中的Hive数据。
- 认证类型选择KERBEROS,访问存储在HDFS中的Hive数据。
- 认证类型选择SIMPLE,访问存储在OBS中的Hive数据。
- 认证类型选择KERBEROS,访问存储在OBS中的Hive数据。
Kerberos介绍
Hadoop社区版本提供两种认证方式Kerberos认证(安全模式)和Simple认证(普通模式),在创建集群时,MRS支持配置是否启用Kerberos认证。
在安全模式下MRS集群统一使用Kerberos认证协议进行安全认证。
- 功能
使用Kerberos的系统在设计上采用“客户端/服务器”结构与AES等加密技术,并且能够进行相互认证(即客户端和服务器端均可对对方进行身份认证)。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
- 使用前提
- 原理结构图
Kerberos原理架构图如下图所示,详细介绍请参见MRS服务的安全认证原理以及认证机制章节。图1 原理架构图
表1 参数说明 参数
说明
Application Client
应用客户端,通常是需要提交任务(或者作业)的应用程序。
Application Server
应用服务端,通常是应用客户端需要访问的应用程序。
Kerberos
提供安全认证的服务。
KerberosAdmin
提供认证用户管理的进程。
KerberosServer
提供认证票据分发的进程。
基础概念
- 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使用,以复用其中的配置。