首页
/ Apache Doris 资源管理:CREATE RESOURCE 命令详解

Apache Doris 资源管理:CREATE RESOURCE 命令详解

2025-06-27 22:56:24作者:卓炯娓

概述

在 Apache Doris 分布式分析型数据库中,CREATE RESOURCE 命令用于创建和管理外部资源。这些资源可以是计算资源(如 Spark)、存储资源(如 S3、HDFS)或数据源连接(如 JDBC、ODBC)。通过合理配置这些资源,Doris 能够实现更强大的数据分析和处理能力。

命令语法

CREATE [EXTERNAL] RESOURCE "资源名称"
PROPERTIES (
   属性键 = 属性值
   [, ...]
);

资源类型与参数详解

1. Spark 资源

Spark 资源主要用于 ETL(数据抽取、转换、加载)操作,支持 YARN 和独立集群模式。

关键参数:

  • type:必须设为"spark"
  • spark.master:集群模式,支持"yarn"或"spark://host:port"
  • spark.submit.deployMode:部署模式,"cluster"或"client"
  • working_dir:ETL 工作目录,如"hdfs://host:port/tmp/doris"
  • broker:用于访问中间文件的 broker 名称

示例:

CREATE EXTERNAL RESOURCE "spark0"
PROPERTIES
(
  "type" = "spark",
  "spark.master" = "yarn",
  "spark.submit.deployMode" = "cluster",
  "working_dir" = "hdfs://127.0.0.1:10000/tmp/doris",
  "broker" = "broker0"
);

2. ODBC 资源

用于连接外部数据库,支持 Oracle、MySQL、PostgreSQL 等。

关键参数:

  • type:必须设为"odbc_catalog"
  • odbc_type:数据库类型
  • driver:ODBC 驱动名称,需与 BE 配置一致
  • host:数据库服务器地址
  • user/password:数据库认证信息

示例:

CREATE EXTERNAL RESOURCE `oracle_odbc`
PROPERTIES (
  "type" = "odbc_catalog",
  "host" = "192.168.0.1",
  "odbc_type" = "oracle",
  "driver" = "Oracle 19 ODBC driver"
);

3. S3 资源

用于访问 S3 兼容的对象存储,支持冷热数据分离功能。

关键参数:

  • type:必须设为"s3"
  • s3.endpoint:S3 服务端点
  • s3.access_key/s3.secret_key:认证密钥
  • s3.bucket:存储桶名称
  • s3.root.path:根路径

示例:

CREATE RESOURCE "remote_s3"
PROPERTIES
(
   "type" = "s3",
   "s3.endpoint" = "bj.s3.com",
   "s3.access_key" = "bbb",
   "s3.secret_key" = "aaaa",
   "s3.bucket" = "test-bucket"
);

4. JDBC 资源

用于通过 JDBC 连接外部数据库。

关键参数:

  • type:必须设为"jdbc"
  • jdbc_url:JDBC 连接字符串
  • driver_url:驱动下载地址
  • driver_class:驱动类名

示例:

CREATE RESOURCE mysql_resource PROPERTIES (
   "type"="jdbc",
   "jdbc_url" = "jdbc:mysql://127.0.0.1:3316/doris_test",
   "driver_class" = "com.mysql.cj.jdbc.Driver"
);

5. HDFS 资源

用于访问 Hadoop 分布式文件系统。

关键参数:

  • type:必须设为"hdfs"
  • fs.defaultFS:NameNode 地址
  • HA 配置相关参数(如启用高可用)

示例:

CREATE RESOURCE hdfs_resource PROPERTIES (
   "type"="hdfs",
   "fs.defaultFS" = "hdfs://mycluster:8020"
);

6. HMS 资源

用于创建 Hive 元数据目录。

关键参数:

  • type:必须设为"hms"
  • hive.metastore.uris:Hive 元存储地址
  • 相关 HDFS 参数(如数据存储在 HDFS)

示例:

CREATE RESOURCE hms_resource PROPERTIES (
   'type'='hms',
   'hive.metastore.uris' = 'thrift://127.0.0.1:7004'
);

7. ES 资源

用于连接 Elasticsearch 集群。

关键参数:

  • type:必须设为"es"
  • hosts:ES 节点地址
  • enable_keyword_sniff:是否启用关键词探测

示例:

CREATE RESOURCE es_resource PROPERTIES (
   "type"="es",
   "hosts"="http://127.0.0.1:29200"
);

最佳实践

  1. 资源命名规范:建议使用有意义的名称,如"spark_etl_prod"、"s3_backup"等

  2. 安全考虑

    • 敏感信息(如密码)应通过安全渠道管理
    • 生产环境建议使用角色认证(如 AWS Assume Role)
  3. 性能调优

    • 对于频繁访问的资源,适当增加连接数
    • 根据网络状况调整超时参数
  4. 资源隔离:不同业务场景建议使用不同的资源,避免相互影响

常见问题

  1. 权限问题:只有 root 或 admin 用户才能创建资源

  2. 参数错误:确保所有必填参数都已正确配置

  3. 网络连通性:确保 Doris 集群可以访问所配置的外部资源

  4. 驱动兼容性:JDBC/ODBC 资源需确保驱动版本兼容

通过合理使用 CREATE RESOURCE 命令,Apache Doris 可以轻松集成各种外部系统和资源,扩展其数据处理能力,满足多样化的业务需求。

登录后查看全文
热门项目推荐

项目优选

收起
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
52
461
kernelkernel
deepin linux kernel
C
22
5
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
349
381
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
131
185
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
873
517
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
336
1.09 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
264
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
608
59
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4