Database Lab과 Postgres.ai
GitLab 내부 사용자가 Database Lab Engine과 postgres.ai를 통해 복제된 프로덕션 데이터 환경에서 데이터베이스 쿼리 성능을 테스트하는 방법을 설명합니다.
GitLab 내부 사용자는 복제된 프로덕션 데이터에서 데이터베이스 쿼리 성능을 테스트하기 위해 Database Lab Engine(DLE)과 postgres.ai 에 접근할 수 있습니다. 일반적인 읽기 전용 프로덕션 복제본과 달리, DLE에서는 행을 생성, 업데이트, 삭제할 수도 있습니다. 또한 프로덕션 데이터의 격리된 복사본에서 추가 인덱스나 칼럼과 같은 스키마 변경 사항의 성능을 테스트할 수 있습니다. 데이터베이스의 새 스냅샷은 일반적으로 4시간마다 생성됩니다. Database Lab 빠른 시작 # 콘솔 방문 . Google로 로그인 을 선택합니다. (GitLab이 아닌 Google SSO를 사용하여 프로젝트에 연결해야 합니다.) 로그인 후 GitLab 조직을 선택하고 사이드바에서 "Joe Bot"을 선택한 다음 "Ask Joe"를 방문합니다. 테스트할 데이터베이스를 선택합니다: GitLab 프로젝트의 대부분의 쿼리는 gitlab-production-main 에 대해 실행됩니다. CI 테이블에 대한 쿼리인 경우 gitlab-production-ci 를 선택합니다. 컨테이너 레지스트리에 대한 쿼리인 경우 gitlab-production-registry 를 선택합니다. 채팅 박스에 explain <쿼리 텍스트> 를 입력하여 플랜을 가져옵니다. Database Lab Engine 접근 # DLE 접근은 다음의 경우에 유용합니다: 데이터베이스 리뷰어 및 유지보수 담당자. 데이터베이스에 큰 영향을 주는 머지 리퀘스트를 작업하는 엔지니어. DLE의 서비스에 접근하려면 다음을 수행할 수 있습니다: Postgres.ai 웹 콘솔에서 쿼리 테스트를 수행합니다. 직원들은 GitLab Google 계정으로 두 서비스 모두에 접근합니다. 쿼리 테스트는 거기서 실행된 쿼리에 대한 EXPLAIN (analyze, buffers) 플랜을 제공합니다. 머지 리퀘스트의 일부로 job을 트리거하여 마이그레이션 테스트를 수행합니다. 프로덕션 복제본 대신 DLE에 직접 psql 접근을 합니다. 승인된 사용자만 사용 가능합니다. psql 접근을 요청하려면 접근 요청 을 제출하세요. 추가 도움이 필요하면 #database Slack 채널을 이용하세요. Database Lab 클론 대신 프로덕션 복제본에 임시로만 접근이 필요한 경우, Teleport를 통한 데이터베이스 콘솔 연결을 위한 런북 절차를 따르세요. 이 절차는 Teleport를 통한 Rails 콘솔 접근 과 유사합니다. 쿼리 테스트 # Database Lab의 쿼리 분석 기능에 다음 방법으로 접근할 수 있습니다: Postgres.ai 웹 콘솔 에서. 자신이 실행한 명령만 표시됩니다. 쿼리 플랜 생성 # 쿼리 플랜은 데이터베이스 리뷰 프로세스의 필수적인 부분입니다. 이 플랜을 통해 주어진 쿼리가 GitLab.com에서 성능을 발휘할 수 있는지 빠르게 판단할 수 있습니다. explain 명령을 실행하면 explain 플랜과 추가 쿼리 분석이 포함된 Postgres.ai 콘솔 링크가 생성됩니다. 예를 들어 EX