ClickHouse 통합 가이드라인

Status: Experiment

이 기능은 실험입니다.

GitLab과 ClickHouse 데이터베이스 간의 통합을 설정하는 방법에 대한 지침입니다.

설정

ClickHouse를 GitLab 데이터 저장소로 설정하려면:

  1. ClickHouse 클러스터를 실행하고 데이터베이스 구성하기.
  2. ClickHouse에 대한 GitLab 연결 구성하기.
  3. ClickHouse 마이그레이션 실행하기.

ClickHouse 실행 및 구성하기

ClickHouse를 실행하는 가장 직관적인 방법은 ClickHouse Cloud입니다.

서버에서 ClickHouse를 실행할 수도 있습니다. ClickHouse에 대한 자체 관리 인스턴스에 대한 권장 사항을 참조하십시오.

호스팅 서버에서 ClickHouse를 실행할 때, 매달 인스턴스에서 실행되는 빌드 수, 선택한 하드웨어, ClickHouse를 호스팅할 데이터 센터 선택 등과 같은 다양한 데이터 포인트가 자원 소비에 영향을 미칠 수 있습니다.

어쨌든 비용은 크지 않아야 합니다.

note
ClickHouse는 GitLab을 위한 보조 데이터 저장소입니다. 특정 데이터만 ClickHouse에 분석 용도로 저장됩니다.

필요한 사용자 및 데이터베이스 객체를 생성하려면:

  1. 보안 비밀번호를 생성하고 저장합니다.
  2. ClickHouse SQL 콘솔에 로그인합니다.
  3. 다음 명령을 실행합니다. PASSWORD_HERE를 생성된 비밀번호로 바꿉니다.

    CREATE DATABASE gitlab_clickhouse_main_production;
    CREATE USER gitlab IDENTIFIED WITH sha256_password BY 'PASSWORD_HERE';
    CREATE ROLE gitlab_app;
    GRANT SELECT, INSERT, ALTER, CREATE, UPDATE, DROP, TRUNCATE, OPTIMIZE ON gitlab_clickhouse_main_production.* TO gitlab_app;
    GRANT SELECT ON information_schema.* TO gitlab_app;
    GRANT gitlab_app TO gitlab;
    

ClickHouse에 대한 GitLab 연결 구성하기

Linux 패키지

GitLab에 ClickHouse 자격 증명을 제공하려면:

  1. /etc/gitlab/gitlab.rb를 편집합니다:

    gitlab_rails['clickhouse_databases']['main']['database'] = 'gitlab_clickhouse_main_production'
    gitlab_rails['clickhouse_databases']['main']['url'] = 'https://example.com/path'
    gitlab_rails['clickhouse_databases']['main']['username'] = 'gitlab'
    gitlab_rails['clickhouse_databases']['main']['password'] = 'PASSWORD_HERE' # 실제 비밀번호로 교체
    
  2. 파일을 저장하고 GitLab을 재구성합니다:

    sudo gitlab-ctl reconfigure
    
Helm 차트 (Kubernetes)
  1. ClickHouse 비밀번호를 Kubernetes 비밀로 저장합니다:

    kubectl create secret generic gitlab-clickhouse-password --from-literal="main_password=PASSWORD_HERE"
    
  2. Helm 값을 내보냅니다:

    helm get values gitlab > gitlab_values.yaml
    
  3. gitlab_values.yaml를 편집합니다:

    global:
      clickhouse:
        enabled: true
        main:
          username: default
          password:
            secret: gitlab-clickhouse-password
            key: main_password
          database: gitlab_clickhouse_main_production
          url: 'http://example.com'
    
  4. 파일을 저장하고 새 값을 적용합니다:

    helm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab
    

연결이 성공적으로 설정되었는지 확인하려면:

  1. Rails 콘솔에 로그인합니다.

  2. 다음을 실행합니다:

    ClickHouse::Client.select('SELECT 1', :main)
    

    성공하면, 명령이 [{"1"=>1}]을 반환합니다.

ClickHouse 마이그레이션 실행

필요한 데이터베이스 객체를 생성하려면 다음을 실행하세요:

sudo gitlab-rake gitlab:clickhouse:migrate

분석을 위한 ClickHouse 활성화

이제 GitLab 인스턴스가 ClickHouse에 연결되었으므로 분석을 위한 ClickHouse 활성화를 통해 ClickHouse 기능을 사용할 수 있습니다.