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

    你可能感兴趣的文章
    mysql 往字段后面加字符串
    查看>>
    mysql 快速自增假数据, 新增假数据,mysql自增假数据
    查看>>
    Mysql 报错 Field 'id' doesn't have a default value
    查看>>
    MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
    查看>>
    mysql 排序id_mysql如何按特定id排序
    查看>>
    Mysql 提示:Communication link failure
    查看>>
    mysql 插入是否成功_PDO mysql:如何知道插入是否成功
    查看>>
    Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
    查看>>
    mysql 数据库备份及ibdata1的瘦身
    查看>>
    MySQL 数据库备份种类以及常用备份工具汇总
    查看>>
    mysql 数据库存储引擎怎么选择?快来看看性能测试吧
    查看>>
    MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
    查看>>
    MySQL 数据库的高可用性分析
    查看>>
    Mysql 数据库重置ID排序
    查看>>
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>