当前位置: 首页 > news >正文

PostgreSQL使用clickhouse_fdw访问ClickHouse

Postgres

  • postgres版本:16(测试可用)
  • docker 安装

插件安装

  • clickhouse_fdw: https://github.com/ildus/clickhouse_fdw

安装命令

git clone git@github.com:ildus/clickhouse_fdw.git
cd clickhouse_fdw
mkdir build && cd build
cmake ..
make && make install

deb12换源

cat > /etc/apt/sources.list << EOF
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmwaredeb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmwaredeb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmwaredeb http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
EOF
apt update

安装编译器

docker镜像里没有必要的编译工具,make 执行不了
make 过程中陆陆续续提示缺少依赖,按提示安装包即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大概安装了以下包,仅供参考

apt-get install devscripts build-essential cmake unixodbc-dev postgresql-server-dev-16 pkg-config libcurl libcurl4-openssl-dev uuid-dev

最终,make install 会把编译好的插件发送到指定位置,直接连接pg加载即可

加载插件

CREATE EXTENSION clickhouse_fdw;  -- 加载插件 

导入外部表

CREATE SERVER clickhouse_svr FOREIGN DATA WRAPPER clickhouse_fdw OPTIONS(host '192.168.30.101', port '8123', dbname 'my_ch_db', driver 'http');  -- 连接clickhouseCREATE USER MAPPING FOR CURRENT_USER SERVER clickhouse_svr OPTIONS (user 'default', password '');  -- 用户映射,clickhouse的连接密码
IMPORT FOREIGN SCHEMA "my_ch_db" FROM SERVER clickhouse_svr INTO public;  -- 把clickhouse模式导入pg

注意IMPORT SCHEMA会加载clickhouse库名<my_ch_db>下的所有表到postgres的public模式
可以在pg的外表中查看到
在这里插入图片描述

删除外部表

drop FOREIGN table if exists "soc_filtered"; -- 删除所有外部表
drop user mapping FOR CURRENT_USER server clickhouse_svr;  -- 删除用户映射
drop server clickhouse_svr;  -- 删除链接

查询外部表

http://www.lryc.cn/news/469138.html

相关文章:

  • docker 单节点arm架构服务器安装zookeeper、kafka并测试通信
  • AnaTraf | 全面掌握网络健康状态:全流量的分布式网络性能监测系统
  • 单片机入门教程
  • 三维管线管网建模工具MagicPipe3D V3.5.3
  • (二十三)、k8s(minikube) 部署mysql
  • FFMPEG+Qt 实时显示本机USB摄像头1080p画面以及同步录制mp4视频
  • 微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件
  • FPGA 小鸟避障游戏
  • Claude Financial Data Analyst:基于Claude的金融数据分析工具!免费开源!
  • django5入门【03】新建一个hello界面
  • 【Unity】Unity中调用手机的震动功能 包括安卓和IOS
  • 【软件工程】软件工程入门
  • 命名空间std, using namespace std
  • 人工智能:未来生活与工作的变革者
  • SEO基础:什么是LSI关键词?【百度SEO优化专家】
  • 将理论付诸实践:如何通过实际项目有效学习和应用新技术
  • 【R + Python】iNaturalist 网站图片下载 inat api
  • C#与Sqlite数据库
  • 2019年计算机网络408真题解析
  • 江协科技STM32学习- P21 ADC模数转换器
  • [RK3566-Android11] 使用SPI方式点LED灯带-JE2815/WS2812,实现呼吸/渐变/随音量变化等效果
  • PostgreSQL用load语句加载插件
  • 一文了解:增强图像搜索之图像嵌入
  • yolov9目标检测/分割预测报错AttributeError: ‘list‘ object has no attribute ‘device‘常见汇总
  • 格姗知识圈博客网站开源了!
  • 【C++】深入理解C++中的类型推导:从auto到decltype的应用与实践
  • 使用Prometheus对微服务性能自定义指标监控
  • 深入解析 Lombok 的实现原理:以 @Builder 为例的实战演示(三)
  • SEO基础:什么是SERP?【百度SEO专家】
  • HTML5教程(一)- 网页与开发工具