PXF 访问 ClickHouse

一、配置环境

软件 版本信息
YMatrix MatrixDB 6.7.1+enterprise
ClickeHouse 26.2.5.45
PXF pxf-matrixdb4-6.5.0-1.el7.x86_64

二、使用示例

1 前置条件

YMatrix 已配置并初始化 PXF,并且 PXF 正在每台 segment 主机上运行。 若未配置,可参照 PXF 安装进行 PXF 初始化。

  • 下载ClickHouse对应版本的驱动
    wget 方式下载,或离线上传

  • 初始化 PXF

pxf cluster init 
  • 放入 PXF 库目录,所有节点都需要
mv clickhouse-jdbc-0.4.6-shaded.jar /usr/local/pxf-matrixdb4/lib 

2 访问测试

2.1 在 ClickHouse 新建库和表

  • 新建库
CREATE DATABASE IF NOT EXISTS anadw;
  • 新建表
CREATE TABLE IF NOT EXISTS anadw.test_table
(
    esn String,
    trace_datetime String,
    trace_timestamp Int64,
    latitude Float64,
    longitude Float64,
    dt String
)
ENGINE = MergeTree
ORDER BY (dt, esn, trace_timestamp);

2.2 在 YMatrix 新建环境

  • 创建 server
CREATE SERVER clickhouse_server
FOREIGN DATA WRAPPER jdbc_pxf_fdw
OPTIONS (
    db_url 'jdbc:clickhouse://172.16.100.29:8123/anadw?compress=0&decompress=0',
    jdbc_driver 'com.clickhouse.jdbc.ClickHouseDriver'
);
  • 创建 usermapping
CREATE USER MAPPING FOR mxadmin
SERVER clickhouse_server
OPTIONS (
    "user" 'pxf_user',
    password ''
);
  • 创建 foreign table
CREATE FOREIGN TABLE dm.test_table (
    esn text,
    trace_datetime text,
    trace_timestamp bigint,
    latitude double precision,
    longitude double precision,
    dt text
)
SERVER clickhouse_server
OPTIONS (
    resource 'anadw.test_table'
);

图片1

3.测试结果

验证无误,结果一致

  • YMatrix 侧

图片2

  • ClickHouse 侧

图片3

需要注意的问题

对于 ClickHouse 来说,有两种类型的驱动,需要注意分辨

  • HTTP 型驱动,通常走 8123
  • Native 型驱动,通常走 9000