当前位置:   article > 正文

在StarRocks中建立ClickHouseJDBC外表_starrocks jdbc外表

starrocks jdbc外表

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 添加官方存储库
      1. sudo yum install yum-utils
      2. sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
      3. 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创建表

      1. create table if not exists test.t_order
      2. (
      3. id Int64 COMMENT '订单id',
      4. datetime DateTime COMMENT '订单日期',
      5. name String COMMENT '商品名称',
      6. price Decimal32(2) COMMENT '商品价格',
      7. user_id Int64 COMMENT '用户id'
      8. ) engine = MergeTree
      9. partition by toYYYYMM(datetime)
      10. 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资源,语法为:

      1. create external resource resource_name
      2. properties (
      3. "type"="jdbc",
      4. "user"="default",
      5. "password"="",
      6. "jdbc_uri"="jdbc:clickhouse://host:ip/database_name",
      7. "driver_url"="https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2/clickhouse-jdbc-0.3.2-all.jar",
      8. "driver_class"="com.clickhouse.jdbc.ClickHouseDriver"
      9. );

      其中

    • 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 创建外部表:

      1. CREATE EXTERNAL TABLE `t_order_3` (
      2. `id` bigint(20) NULL COMMENT "",
      3. `dateTime` datetime NULL COMMENT "",
      4. `name` varchar(65533) NULL COMMENT "",
      5. `price` decimal128(38, 2) NULL COMMENT "",
      6. `user_id` bigint(20) NULL COMMENT ""
      7. ) ENGINE=JDBC
      8. COMMENT "JDBC"
      9. PROPERTIES (
      10. "resource" = "jdbc_ck2",
      11. "table" = "t_order"
      12. );

      在创建外部表时,

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

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

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

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

    • 第一次报错:

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/421939
推荐阅读
相关标签
  

闽ICP备14008679号