博客
关于我
【数据库】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主从复制 master和slave配置的参数大全
    查看>>
    MySQL主从复制几个重要的启动选项
    查看>>
    MySQL主从复制及排错
    查看>>
    mysql主从复制及故障修复
    查看>>
    MySQL主从复制的原理和实践操作
    查看>>
    webpack loader配置全流程详解
    查看>>
    mysql主从复制,读写分离,半同步复制实现
    查看>>
    MySQL主从失败 错误Got fatal error 1236解决方法
    查看>>
    MySQL主从架构与读写分离实战
    查看>>
    MySQL主从篇:死磕主从复制中数据同步原理与优化
    查看>>
    mysql主从配置
    查看>>
    MySQL之2003-Can‘t connect to MySQL server on ‘localhost‘(10038)的解决办法
    查看>>
    MySQL之CRUD
    查看>>
    MySQL之DML
    查看>>
    Mysql之IN 和 Exists 用法
    查看>>
    MYSQL之REPLACE INTO和INSERT … ON DUPLICATE KEY UPDATE用法
    查看>>
    MySQL之SQL语句优化步骤
    查看>>