LoginSignup
2
1

More than 3 years have passed since last update.

[ClickHouse] ローカルで、1分でClickHouseの環境を構築する

Last updated at Posted at 2021-03-26

概要

ClickHouseの性能が良さそうで、aws redshiftより優れているそうですので、ちょっとローカルで環境構築し、使ってみました。情報を忘れないために、このブログで記載します。

ClickHouseとは

ClickHouseは、クエリのオンライン分析処理(OLAP)用の列指向のデータベース管理システム(DBMS)です。

ClickHouseのドキュメント

環境構築

バージョン

OS

macOS

docker

スクリーンショット 2021-03-26 18.20.15.png

ClickHouse

19.1.13

デモのgithub

demo

docker-compose.yml作成

version: '3'
services:
  clickhouse:
    image: yandex/clickhouse-server
    container_name: ck
    ports:
      # httpリクエスト使うport
      - 8123:8123
      # クライアントport
      - 9000:9000
    volumes:
      - type: bind
        source: "./database"
        target: "/var/lib/clickhouse"
      - type: bind
        source: "./config/clickhouse-config.xml"
        target: "/etc/clickhouse-server/config.xml"
      - type: bind
        source: "./config/users.xml"
        target: "/etc/clickhouse-server/users.xml"
    networks:
      clickhouse-net:
        aliases:
          - clickhouse.local.me

  houseclient:
    build: ./houseclient
    container_name: hc
    command: "tail -f /dev/null"
    networks:
      clickhouse-net:
        aliases:
          - houseclient.local.me

  tabix:
    image: spoonest/clickhouse-tabix-web-client
    container_name: tb
    ports:
      - 8888:80
    networks:
      clickhouse-net:
        aliases:
          - houseclient.local.me


networks:
  clickhouse-net:

config/clickhouse-config.xml 作成

ClickHouseのconfig.ymlのファイルコピーペース利用すれば良い

config/users.yml 作成

ClickHouseのusers.ymlのファイルコピーペース利用すれば良い

各ファイル作成し終わったら、ディレクトリのイメージ

├── config               
  ├── clickhouse-config.xml
  ├── users.xml
├── database             (clickhouseのデータベースファイル)
├── docker-compose.yml   (docker-compse.ymlファイル)

tabix、clickhouse-cli、clickhouseなど起動

今回いろんなツールを使ってみようと思い、lighthousetabixclickhouse-cliなども設定しました。詳細はここに記載しました。自分のおすすめはtabixです。

docker-compose up

ClickHouseのメリット

  • 学習コストは低くて、SQLはほぼMySQLと一緒、データのタイプもMySQLと一緒.
  • 素早い
  • データをインサートする時、たくさんデータを集めて、インサートするのは早い。一行ずつインサートなら、逆にパフォマンスはよくないらしい。(これはメリットとはいえないですね。)

ClickHouseのデメリット

  • Transactionはサポートしていない
  • MySQLみたいなupdate・deleteなどサポートしてない
  • aws・gcpにはClickHouseのcloud manangeサービスが提供されていない

use case

log analysis

メモ

  • ClickHouseのデフォルトユーザ名は: defaultで、パスワードはない。clickhouse-cliを叩けば、アクセスできる
docker exec -it hc clickhouse-cli -h clickhouse.local.me -p 8123 -u default

テーブルエンジン編

MergeTree

参考した記事

1: qiitaの記事
2: zhihu
3: wiki
4: ClicHouseのドキュメントサイト
5: 一番分かりやすいMergeTreeの説明

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1