如何在 Doris 中通过外表访问 OceanBase 表

2024-06-15 07:04
文章标签 访问 doris oceanbase 外表

本文主要是介绍如何在 Doris 中通过外表访问 OceanBase 表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在OceanBase 中建立了一张表 test.t1:

CREATE TABLE `t1` (`apply_id` varchar(500) DEFAULT NULL,`apply_dt` date DEFAULT NULL,`mobile_prov_nm` varchar(500) DEFAULT NULL,`mobile_city_nm` varchar(500) DEFAULT NULL
);-- 插入 10000 行数据到 t1 表insert /*+parallel(48) enable_parallel_dml append */ into t1select abs(random()),case abs(random()%3)when 0 then '2022-10-10'when 1 then '2021-10-10' when 2 then '2023-10-10'end,abs(random()%10000),10000000 * abs(random()%25)
from table(generator(10000));

我的 OceanBase 的账号信息如下:

host: 127.0.0.1
port: 44035
database: test
user: root@mysql_tenant
pass: 空

然后在 Doris 中通过外表 et1 可以访问 OceanBase 中的 t1 表。Doris 中建外表的流程如下:

drop resource jdbc_resource;
drop table et1;CREATE EXTERNAL RESOURCE jdbc_resource
properties ("type"="jdbc","user"="root@mysql_tenant","password"="","jdbc_url"="jdbc:oceanbase://127.0.0.1:44035/test","driver_url"="file:///home/admin/ob.z1.obs0/oceanbase-client-2.4.1.jar","driver_class"="com.oceanbase.jdbc.Driver"
);CREATE TABLE `et1` (`apply_id` varchar(500) DEFAULT NULL,`apply_dt` date DEFAULT NULL,`mobile_prov_nm` varchar(500) DEFAULT NULL,`mobile_city_nm` varchar(500) DEFAULT NULL
)ENGINE=JDBC
PROPERTIES (
"resource" = "jdbc_resource",   -- 在Doris中建立外表时依赖的资源名
"table" = "t1",   -- 在Doris中建立外表时,与外部数据库相映射的表名。
"table_type"="oceanbase"   -- 外表对应的数据库 mysql,postgresql,sqlserver,oracle, 和 jdbc_url 中的数据库名保持一致
);-- 测试访问外表
select * from et1;

其中,

  • driver_url 中的 jar 文件oceanbase-client-2.4.1.jar 文件来自 OceanBase 官网:资源与服务-》软件下载-》企业版-》[驱动和中间件](https://www.oceanbase.com/softwarecenter-enterprise)
  • jdbc_url 中 的 url 前缀是 jdbc:oceanbase ,不是 jdbc:mysql
  • driver_classcom.oceanbase.jdbc.Driver,而不是 com.mysql.jdbc.Driver
  • 创建外表的属性中,"table_type"="oceanbase" 不要写成 "table_type"="mysql"

总之,所有 mysql 的痕迹,都变成 oceanbase,就对了。其余和 MySQL jdbc 一模一样。

这篇关于如何在 Doris 中通过外表访问 OceanBase 表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062747

相关文章

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景: