clickhouse与oracle传输数据

参考

https://github.com/ClickHouse/clickhouse-jdbc-bridge

https://github.com/ClickHouse/clickhouse-jdbc-bridge/blob/master/docker/README.md

clickhouse官方提供了一种方式,可以实现clickhouse与oracle之间传输数据,不仅仅是oracle,而且是一类支持jdbc的数据库,这种方式就是JDBC bridge for ClickHouse

它可以作为一个无状态的代理将查询传递到外部数据源。由于这个扩展功能,你可以在clickhouse上运行分布式查询,这查询能够做到实时跨多数据源。

安装

如何部署

直接在部署clickhose的linux服务器上,下载安装释出的debian/rpm包。Debian/Ubuntu按照如下操作即可。

apt update && apt install -y procps wget

wget 

https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v2.1.0/clickhouse-jdbc-bridge_2.1.0-1_all.deb

说明:第一次下载失败后,再次下载,文件名多了后缀.1,稍后删除之前下载不完整的文件,并将这个完整文件的文件名后缀.1剔除。

第一次下载失败如下所示,重新下载即可,外网速度问题

apt install --no-install-recommends -f ./clickhouse-jdbc-bridge_2.1.0-1_all.deb

clickhouse-jdbc-bridge

说明:第一次下载失败,多次下载,安装时报错

如上截图所示,删除第一个下载失败的(rm),并调整名称后(mv),再次执行。

启动  clickhouse-jdbc-bridge

启动时报错,提示没有日志文件,参考链接

https://github.com/ClickHouse/clickhouse-jdbc-bridge/tree/master中configuration中有关于日志的配置

点击查看,按照下图所示配置文件中的路径,以root用户登录,新建目录。

/var/log/clickhouse-jdbc-bridge/console.log

再启动时不再报无法加载日志处理器的错误。

配置

目录结构

上传驱动文件

切换到clickhouse-jdbc-bridge主目录,本例中为

/etc/clickhouse-jdbc-bridge

新建目录 mkdir drivers

以root用户登录,上传oracle驱动

重启 clickhouse-jdbc-bridge,在clickhouse client输入如下形式的内容,回车。

select * from jdbc('jdbc:oracle:thin:name/pass@ip:port:sid', 'select 1 from dual')

或者如下

select * from jdbc('jdbc:oracle:thin:name/pass@ip:port/sid', 'select 1 from dual')

不建议直接暴露数据库的连接信息,可以将连接信息配置在config中的json文件中,然后再引用配置信息。

配置连接信息

切换到config目录

将数据库的连接配置信息可以放在config/datasources目录的json文件中。

复制示例文件,然后调整

cp datasource.json.example ora.json

驱动地址:/etc/clickhouse-jdbc-bridge/drivers/ojdbc6.jar

jdbcUrl:jdbc:oracle:thin:@port:port:sid

调整完之后保存,clickhouse-jdbc-bridge会自动读取json配置内容。如果没读取到,重启下clickhouse-jdbc-bridge,出现如下图所示,红框的内容,表示读取成功。

验证效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/314143.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt下使用OpenCV截取图像并在QtableWidget表格上显示

文章目录 前言一、在QLabel上显示图片并绘制矩形框二、保存矩形框数据为CSV文件三、保存截取图像四、将截取图像填充到表格五、图形视图框架显示图像六、示例完整代码总结 前言 本文主要讲述了在Qt下使用OpenCV截取绘制的矩形框图像,并将矩形框数据保存为CSV文件&a…

Qt绘制边框有阴影兼容性问题

在Qt开发过程中,有时候我们要显示一个有阴影的对话框,这时一般采用自定义实现,然而最近在开发时软件时,Win11上显示正常,Win10或其他Win11电脑显示不正常,存在兼容性问题吗? 下面是具体的源码 …

PPSSPPSDL for Mac v1.17.1 PSP游戏模拟器(附500款游戏) 激活版

PPSSPPSDL for Mac是一款模拟器软件,它允许用户在Mac上运行PSP(PlayStation Portable)游戏。通过这款模拟器,用户可以体验到高清甚至更高的分辨率的游戏画面,同时还能够升级纹理以提升清晰度,并启用后处理着…

nvm下载的node没有npm

nvm下载的node没有npm 相信大家最近可能发现自己使用的nvm下载nodejs没有npm了。 会出现这种情况: C:\Users\89121>nvm install 15 Downloading node.js version 15.14.0 (64-bit)... Complete Downloading npm version 7.7.6... Download failed. Rolling Bac…

WebGL开发框架比较

WebGL开发框架提供了一套丰富的工具和API,使得在Web浏览器中创建和操作3D图形变得更加容易。以下是一些流行的WebGL开发框架及其各自的优缺点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.Three.js 优点&#xff1a…

ThingsBoard服务端使用RPC通过网关给设备发送消息

一、概述 1、发送服务器端网关RPC 二、案例: 1、建立设备与网关之间的通讯 2、查看设备和网关是否在线状态啊 3、通过 仪表盘,创建设备A的模拟RPC调用的窗口链接 4、在客户端的网关设备上订阅RPC网关的主题信息 5、通过服务端的窗口,发…

电脑提示丢失iutils.dll怎么办?一分钟教你搞定dll丢失问题

在计算机世界中,DLL(Dynamic Link Library,动态链接库)文件扮演着至关重要的角色,它们如同乐高积木中的基础模块,不同程序通过调用这些模块来实现各种功能。其中,iutils.dll就是这样一款不可或缺…

苹果电脑装虚拟机好用吗 苹果电脑装虚拟机要钱吗 Parallels对mac的损害 Parallels占用多大空间 PD19

在当今数字化的时代,人们对电脑系统跨设备互联的需求越来越高。作为拥有广泛用户群体的苹果电脑,许多用户会有在Mac系统中运行其他操作系统的需求。在这种情况下,安装虚拟机是一个较好的解决方案。那么接下来就给大家介绍苹果电脑装虚拟机好用…

Neo-reGeorg明文流量

Neo-reGeorg 1 同IP对,同一个URI,第一个TCP流是“GET”请求,随后的TCP流请求为“POST”。(jsp\jspx\php) 2 第一个TCP流中,GET只有一个会话。(jsp\jspx\php),响应body79…

Echarts-知识图谱

Echarts-知识图谱 demo地址 打开CodePen 效果 思路 1. 生成根节点 2. 根据子节点距离与根节点的角度关系,生成子节点坐标,进而生成子节点 3. 从子节点上按角度生成对应的子节点 4. 递归将根节点与每一层级子节点连线核心代码 定义节点配置 functio…

10.接口自动化测试学习-Pytest框架(2)

1.mark标签 如果在每一个模块,每一个类,每一个方法和用例之前都加上mark标签,那么在pytest运行时就可以只运行带有该mark标签的模块、类、接口。 这样可以方便我们执行自动化时,自主选择执行全部用例、某个模块用例、某个流程用…

区块链技术与应用学习笔记(10-11节)——北大肖臻课程

目录 10.分岔 ①什么是分叉? ②导致分叉的原因? ③在比特币新共识规则发布会会导致什么分叉? 什么是硬分叉? 硬分叉例子? 什么是软分叉? 软分叉和硬分叉区别? 软分叉实例 11.问答 转…

茴香豆:搭建你的RAG智能助理-作业三

本次课程由书生浦语社区贡献者【北辰】老师讲解【茴香豆:搭建你的 RAG 智能助理】课程。分别是: RAG 基础介绍茴香豆产品简介使用茴香豆搭建RAG知识库实战 课程视频:https://www.bilibili.com/video/BV1QA4m1F7t4/ 课程文档:ht…

Scala的函数至简原则

对于scala语言来说,函数的至简原则是它的一大特色。下面让我们一起来看看分别有什么吧! 函数至简原则:能省则省! 初始函数 def test(name:String):String{return name }1、return可以省略,Scala会使用函数体的最后一…

Docker in Docker的原理与实战

Docker in Docker(简称DinD)是一种在Docker容器内部运行另一个Docker实例的技术。这种技术允许用户在一个隔离的Docker容器中创建、管理和运行其他Docker容器,从而提供了更灵活和可控的部署选项。以下是DinD的主要特点: 隔离性&am…

Linux下载及安装OpenSSL

文章目录 前言一、OpenSSL下载二、OpenSSL安装1.上传下载好的安装包到服务器2.解压3.切换目录4.配置config5.编译6.安装7.备份旧版本OpenSSL7.创建软链接8.添加OpenSSL动态链接库9.更新库缓存10.查看OpenSSL版本验证安装是否成功 前言 一般系统会自带有OpenSSL,我们…

ssm和springboot项目运行与部署

java项目可以打成jar包或者war包,以前SSM前后端不分离的项目,一般都是打成war包,现在前后端分离springboot项目,一般都是打成jar包,当然前后端分离springboot项目打成war包也可以。 总结: ssm项目 前后端分…

详细解析什么是期权交易的获利方法

期权交易的获利方法 在期权交易之前进行充分的准备工作和风险评估是至关重要的。其中行情结构、策略方法、预期收益和风险评估,是期权交易成功的关键要素。它们能帮助我们更好地制定交易计划,控制风险,并追求稳定的利润。以下是对这四点的详…

SpringBoot+MyBatis-Plus+jsqlparser实现多租户功能

前言 多租户技术(multi-tenancy technology)是一种软件架构技术,它允许在单个系统实例上为多个用户或组织提供服务,同时确保这些用户之间数据的隔离性。在多租户架构中,每个租户(可以是个人用户、企业、组…

Golang | Leetcode Golang题解之第46题全排列

题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…