ClickHouse 통합 가이드라인

상태: 실험

이 기능은 실험입니다.

GitLab과 ClickHouse 데이터베이스 간의 통합 설정 방법에 대한 안내.

설정

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

  1. ClickHouse 클러스터를 실행하고 데이터베이스를 구성합니다.
  2. GitLab 연결을 ClickHouse로 구성합니다.
  3. ClickHouse 마이그레이션을 실행합니다.

ClickHouse 실행 및 구성

ClickHouse를 실행하는 가장 간단한 방법은 ClickHouse Cloud를 사용하는 것입니다. 또한 자체 서버에서 ClickHouse를 실행할 수 있습니다. ClickHouse를 자체 관리하는 경우, ClickHouse 호스팅을 위한 권장 사항은 ClickHouse의 설치에 대한 문서를 참조하십시오.

ClickHouse를 호스팅된 서버에서 실행하면, 매월 인스턴스에서 실행되는 빌드 수, 선택한 하드웨어, ClickHouse를 호스팅할 데이터 센터의 선택 등 다양한 데이터 포인트가 리소스 소비에 영향을 미칠 수 있습니다. 그러나 비용은 중요하지 않아야 합니다.

참고: 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;
    

GitLab 연결을 ClickHouse로 구성

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 Secret으로 저장합니다.

    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를 활성화할 수 있습니다.