在StarRocks中建立ClickHouseJDBC外表

1.ClickHouse简单部署

  • ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++
    语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报
    告.
  • 因为机器配置限制,所以创建单节点ClickHouse集群。
  • 官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集,因此,系统必须支持SSE 4.2指令集。
  • 使用以下命令检查本地服务器是否支持SSE 4.2指令集
  • grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

    结果为:

    SSE 4.2 supported

    因为本人较懒,所以直接使用rpm安装,如需要其他部署方式可参考博客

    • http://(6条消息) clickhouse-单节点部署_与数据交流的路上的博客-CSDN博客

      1.1 添加官方存储库
    • sudo yum install yum-utils
      sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
      sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64

      1.2  安装

    • sudo yum install clickhouse-server clickhouse-client

      至此clickhouse单节点部署完毕,参考博客:http://(6条消息) clickhouse-单节点部署_与数据交流的路上的博客-CSDN博客

    • 2.ClickHouse简单使用

    • 本文主要是外表的创建,如需了解更多的操作,请参考博客:http://clickhouse入门教程,基础命令 - 简书 (jianshu.com)

    • 2.0启动clockhouse服务

    • systemctl staart clickhouse.server
    • 2.1 登录客户端

    • clickhouse-client --host localhost --port 9000 --user default  
    • host : 指定ip,可省略使用默认值localhost,可缩写为h
      port : 指定端口号,可省略
      user : 登录用户,省缺值为default,可缩写为u
      multiline : 允许终端执行多行命令,可缩写m

    •  2.2 创建库

    • create database if not exists test;
    • 2.3创建表

    • create table if not exists test.t_order
      (
        id Int64 COMMENT '订单id', 
        datetime DateTime COMMENT '订单日期',
        name String COMMENT '商品名称',
        price Decimal32(2) COMMENT '商品价格',
        user_id Int64 COMMENT '用户id'
      ) engine = MergeTree 
      partition by toYYYYMM(datetime)
      order by id;
    • 2.4 数据插入

    • insert into t_order values (1, '2021-03-09 21:42:00', '大力丸', 999.99, 202003090001)

      3.在StarRocks中创建ClickHouse外部表

    • 在StarRocks中创建ClickHouse外部表是以JDBC方式所以第一步,创建JDBC资源:

    • 3.1 创建JDBC资源,语法为:

    • create external resource resource_name
      properties (
      "type"="jdbc",  
      "user"="default",  
      "password"="",   
      "jdbc_uri"="jdbc:clickhouse://host:ip/database_name",  
      "driver_url"="https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2/clickhouse-jdbc-0.3.2-all.jar",  
       "driver_class"="com.clickhouse.jdbc.ClickHouseDriver"
      );

      其中

    • create external resource:为外部资源创建关键字

    • resource_name:JDBC资源名称

    • properties 参数设置

    • type:资源类型

    • user:ClickHouse用户名,本人使用的是Clickhouse部署完成后的默认用户,密码默认为空,如需要更换用户,需要根据你的自身的设置更换用户,设置相应的密码。

    • jdbc_uri:jdbc:clickhouse://host:port/database_name

    • host为你ClickHouse的ip地址,port为你的端口,使用官方驱动的端口默认为8123,使用tcp协议的第三方驱动的默认端口为9000,

    • 本人使用的驱动时官方驱动:下载连接为:

    • https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2/clickhouse-jdbc-0.3.2-all.jar

    • driver_url:驱动类,官方给的默认为:com.clickhouse.jdbc.ClickHouseDriver

    • 3.2 创建外部表:

    • CREATE EXTERNAL TABLE `t_order_3` (
        `id` bigint(20) NULL COMMENT "",
        `dateTime` datetime NULL COMMENT "",
        `name` varchar(65533) NULL COMMENT "",
        `price` decimal128(38, 2) NULL COMMENT "",
        `user_id` bigint(20) NULL COMMENT ""
      ) ENGINE=JDBC 
      COMMENT "JDBC"
      PROPERTIES (
      "resource" = "jdbc_ck2",
      "table" = "t_order"
      );

      在创建外部表时,

    • 1.注意字段类型的对应关系

    • 2.注意使用的resource名称;

    • 3.注意对应的ClickHouse表名称

    • 创建成功后,可以查询一下,检查外部表是否创建成功。

    • 第一次报错:

    • 这是CK默认设置中不允许别的IP访问,需要修改/etc/clickhouse-server/users.xml

    • 可参考博客:http://(12条消息) 关于Clickhouse拒绝远程连接报错的解决方式_Genebrother的博客-CSDN博客_clickhouse 连接被拒绝

    •  本人第一次写博客,有错误请大佬在评论指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值