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

    你可能感兴趣的文章
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>
    MySQL8,体验不一样的安装方式!
    查看>>
    MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
    查看>>
    Mysql: 对换(替换)两条记录的同一个字段值
    查看>>
    mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
    查看>>
    MYSQL:基础——3N范式的表结构设计
    查看>>
    MYSQL:基础——触发器
    查看>>
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>
    mysqldump 参数--lock-tables浅析
    查看>>
    mysqldump 导出中文乱码
    查看>>
    mysqldump 导出数据库中每张表的前n条
    查看>>
    mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
    查看>>
    Mysqldump参数大全(参数来源于mysql5.5.19源码)
    查看>>
    mysqldump备份时忽略某些表
    查看>>
    mysqldump实现数据备份及灾难恢复
    查看>>
    mysqldump数据库备份无法进行操作只能查询 --single-transaction
    查看>>
    mysqldump的一些用法
    查看>>