Doris外表查询

最近更新时间:2026-04-16 11:28:52

我的收藏

概述

Setats 支持通过 Doris 外表方式进行 OLAP 查询。用户可以在 Doris 中创建 Setats Catalog,直接访问 Setats 表的列存数据,用于即席分析、报表查询和离线聚合等场景。

前提条件

已创建 Setats 集群并完成 Warehouse 配置。
已部署 Doris 集群。
若使用 Hive Catalog 或元数据加速桶,Doris 还需要访问 Hive Metastore。
若底层存储启用了 Kerberos / CHDFS / COS 加速桶,需要提前准备对应配置文件和认证信息。

场景一:HDFS / Hadoop Catalog

如果 Setats 使用 Hadoop Catalog 或基于 HDFS 的元数据管理,可参考以下方式创建 Catalog:
CREATE CATALOG setats COMMENT 'setats catalog' PROPERTIES (
'type' = 'setats',
'setats.catalog.type' = 'hadoop',
'warehouse' = 'hdfs://<nameservice>/usr/setats',
'dfs.nameservices' = '<nameservice>',
'dfs.ha.namenodes.<nameservice>' = 'nn1,nn2',
'dfs.namenode.rpc-address.<nameservice>.nn1' = '<nn1-host>:4007',
'dfs.namenode.rpc-address.<nameservice>.nn2' = '<nn2-host>:4007',
'dfs.client.failover.proxy.provider.<nameservice>' = 'org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider'
);
如果 EMR 开启了 Kerberos,可继续追加以下属性:
'hadoop.security.authentication' = 'kerberos',
'hadoop.kerberos.keytab' = '/usr/local/service/doris/kerberos.keytab',
'hadoop.kerberos.principal' = '<your-principal>'

场景二:Hive Metastore + COS 加速桶

如果 Setats 使用 Hive Metastore,并且底层数据或元数据依赖 COS 加速桶,可参考以下配置:
CREATE CATALOG setats COMMENT 'setats catalog' PROPERTIES (
'type' = 'setats',
'setats.catalog.type' = 'hms',
'hive.metastore.uris' = 'thrift://<metastore-host-1>:7004,thrift://<metastore-host-2>:7004',
'cos.endpoint' = 'cos.<region>.myqcloud.com',
'cos.access_key' = '<SecretId>',
'cos.secret_key' = '<SecretKey>',
'fs.ofs.bucket.region' = '<region>',
'fs.ofs.user.appid' = '<AppId>',
'fs.ofs.tmp.cache.dir' = '/tmp/chdfs/',
'fs.ofs.upload.flush.flag' = 'true',
'broker.name' = '<BrokerName>'
);

Catalog 参数说明

参数
说明
type
Catalog 类型,固定为 setats
setats.catalog.type
Setats Catalog 类型,如 hadoop 或 hms
warehouse
Setats Warehouse 地址,Hadoop Catalog 常用
hive.metastore.uris
Hive Metastore 地址,Hive / HMS 场景需要
dfs.nameservices
HDFS NameService 名称
dfs.ha.namenodes.<nameservice>
HA NameNode 列表
dfs.namenode.rpc-address.<nameservice>.nn*
NameNode RPC 地址
dfs.client.failover.proxy.provider.<nameservice>
HDFS HA Failover Provider
cos.endpoint
COS 访问域名
cos.access_key / cos.secret_key
COS 访问凭据; 需要有 QcloudCOSListOnly 和 QcloudCOSDataReadOnly 权限
fs.ofs.bucket.region
加速桶地域
fs.ofs.user.appid
腾讯云 AppID
broker.name
Doris Broker 名称

查询数据

切换 Catalog 查询

SWITCH setats;
SHOW DATABASES;
USE `testdb`;
SELECT * FROM `demo_setats_table1`;

跨 Catalog 查询

SELECT *
FROM `setats`.`testdb`.`demo_setats_table1`;