博客
关于我
【数据库】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/

    你可能感兴趣的文章
    mysql5.7免费下载地址
    查看>>
    mysql5.7命令总结
    查看>>
    mysql5.7安装
    查看>>
    mysql5.7性能调优my.ini
    查看>>
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>
    Mysql8 数据库安装及主从配置 | Spring Cloud 2
    查看>>
    mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
    查看>>
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>