博客
关于我
【数据库】3分钟,golang 操作 clickhouse (docker)
阅读量:489 次
发布时间:2019-03-06

本文共 2301 字,大约阅读时间需要 7 分钟。

安装 ClickHouse 与 使用

安装 ClickHouse

使用 Docker 安装

  • 拉取镜像:运行以下命令拉取 ClickHouse 的 Docker 镜像。
  • docker pull yandex/clickhouse-server
    1. 配置 Docker环境:首先确保 Docker 服务已经启动。如果 Docker 服务未启动,可以参考以下命令:
    2. sudo service docker startsudo systemctl enable dockersudo systemctl start docker
      1. 运行 ClickHouse 容器:使用以下命令启动 ClickHouse 服务,并将默认端口映射到本地。
      2. docker run -d --name ck-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 yandex/clickhouse-server

        进入容器

        docker exec -it ck-server /bin/bash

        操作说明

        创建数据库与表

      3. 进入 ClickHouse 客户端。
      4. clickhouse-client
        1. 创建数据库和表。以下示例为本地测试数据库。
        2. create database statics engine=Ordinary;use statics;create table mysql_slow_log (    id UInt16,    user_name String,    host String,    sql String,    rows_examined UInt16,    exec_time UInt16,    query_time String,    create_time date) engine=MergeTree(create_time, (id), 8192);
          1. 插入测试数据。
          2. insert into mysql_slow_log    (user_name, host, sql, rows_examined, exec_time, query_time, create_time)values    ('xiaoming', '127.0.0.1', 'select * from music', 3000, 1587021607, '0.333', '2020-04-16 15:32:17');

            Go 语言操作(基于 clickhouse-go

          3. 安装依赖:在项目目录中创建 vendor 目录,并运行以下命令。
          4. govendor fetch github.com/ClickHouse/clickhouse-gogovendor fetch github.com/jmoiron/sqlx
            1. 数据库连接:在 Go 代码中配置数据库连接。
            2. func (slowLog MysqlSlowLogModel) GetAllFromCk(offset int, pageSize int)([]MysqlSlowLogModel, error) {    connect, err := sqlx.Open("clickhouse", "tcp://127.0.0.1:9000?debug=true")    if err != nil {        return nil, errors.New("ck connect failover")    }    var items []MysqlSlowLogModel    sql := "select * from statics.mysql_slow_log"    if offset >= 0 && pageSize > 0 {        sql = fmt.Sprintf("%s limit %d, %d", sql, offset, pageSize)    }    if err := connect.Select(&items, sql); err != nil {        return nil, err    }    return items, nil}

              常见错误及解决方法

              Docker 启动问题

              错误示例:如果出现以下错误。

              Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the Docker daemon running?

              解决方法

              sudo systemctl start dockersudo systemctl enable dockersudo systemctl restart docker

              SSL 读取超时错误

              错误示例:在拉取镜像时可能出现以下错误。

              Error response from daemon: Get net/http: TLS handshake timeout

              解决方法

              git config --global http.postBuffer 524288000

              FAQ

            3. 镜像拉取失败:确保网络环境正常,并尝试换源。
            4. 无法连接数据库:检查端口配置是否正确,确保本地端口 9000 和 8123 已开放。
            5. 性能优化:如需更高性能,建议增大合并树收缩参数。
            6. 接下来操作

    转载地址:http://urndz.baihongyu.com/

    你可能感兴趣的文章
    MyEclipse用(JDBC)连接SQL出现的问题~
    查看>>
    myeclipse的新建severlet不见解决方法
    查看>>
    MyEclipse设置当前行背景颜色、选中单词前景色、背景色
    查看>>
    MyEclipse配置SVN
    查看>>
    MTCNN 人脸检测
    查看>>
    MyEcplise中SpringBoot怎样定制启动banner?
    查看>>
    MyPython
    查看>>
    MTD技术介绍
    查看>>
    MySQL
    查看>>
    MySQL
    查看>>
    mysql
    查看>>
    MTK Android 如何获取系统权限
    查看>>
    MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
    查看>>
    MySQL - ERROR 1406
    查看>>
    mysql - 视图
    查看>>
    MySQL - 解读MySQL事务与锁机制
    查看>>
    mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
    查看>>
    mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>