저장소 만들기

이 문서에서는 다음 작업을 포함하여 BigQuery에서 저장소를 사용하는 방법을 보여줍니다.

  • 저장소 만들기
  • 저장소 삭제
  • 저장소 공유
  • 선택적으로 BigQuery 저장소를 서드 파티 저장소에 연결

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Enable the APIs

필요한 역할

저장소 및 워크스페이스를 사용하는 데 필요한 권한을 얻으려면 관리자에게 저장소 및 워크스페이스에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 공유 저장소 만들기 및 관리: 코드 소유자 (roles/dataform.codeOwner)
  • 공유 저장소에서 워크스페이스 만들기 및 삭제하기: 코드 편집기 (roles/dataform.codeEditor)
  • 공유 저장소의 워크스페이스에서 파일 만들기, 수정, 버전 관리: Code 편집기 (roles/dataform.codeEditor)
  • 공유 저장소에서 워크스페이스 및 해당 파일 보기: 코드 뷰어 (roles/dataform.codeViewer)
  • 비공개 저장소의 워크스페이스 및 파일과 관련된 모든 작업을 포함하여 비공개 저장소를 만들고 관리합니다. Code Creator (roles/dataform.codeCreator)

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

저장소에 코드 편집자 역할이 있는 주 구성원은 저장소의 모든 워크스페이스를 수정할 수 있습니다.

내가 만든 비공개 저장소는 프로젝트 수준에서 BigQuery 관리자 또는 BigQuery 스튜디오 관리자 역할이 부여된 사용자에게 계속 표시됩니다. 이러한 사용자는 비공개 저장소를 다른 사용자와 공유할 수 있습니다.

저장소 만들기

BigQuery 저장소를 만들려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 저장소 폴더를 클릭합니다.

  3. 편집기에서 저장소 추가를 클릭합니다.

  4. 저장소 만들기 창의 저장소 ID 필드에 고유 ID를 입력합니다.

    ID에는 숫자, 문자, 하이픈, 밑줄만 포함할 수 있습니다.

  5. 리전 드롭다운 목록에서 저장소 및 콘텐츠를 저장할 BigQuery 리전을 선택합니다. 현재 위치에서 가장 가까운 BigQuery 리전을 선택합니다.

    사용 가능한 BigQuery 리전 목록은 BigQuery Studio 위치를 참고하세요. 저장소 리전은 BigQuery 데이터 세트의 위치와 일치하지 않아도 됩니다.

  6. 만들기를 클릭합니다.

서드 파티 저장소에 연결

이 섹션에서는 BigQuery 저장소를 원격 저장소에 연결하는 방법을 보여줍니다. 저장소를 연결한 후 저장소에 포함된 워크스페이스의 파일에 대해 Git 작업을 실행할 수 있습니다. 예를 들어 원격 저장소에서 업데이트를 가져오고 변경사항을 원격 저장소에 푸시합니다.

연결하는 각 원격 저장소에 전용 BigQuery 저장소를 만드는 것이 좋습니다. 매핑을 명확하게 하려면 BigQuery 저장소에 원격 저장소와 유사한 이름을 지정합니다.

HTTPS 또는 SSH를 통해 원격 저장소를 연결할 수 있습니다. 다음 표에는 지원되는 Git 제공업체와 저장소에 사용할 수 있는 연결 방법이 나와 있습니다.

Git 제공업체 연결 방법
Azure DevOps 서비스 SSH
Bitbucket SSH
GitHub SSH 또는 HTTPS
GitLab SSH 또는 HTTPS

SSH를 통해 원격 저장소 연결

SSH를 통해 원격 저장소를 연결하려면 SSH 키와 Secret Manager 보안 비밀을 생성해야 합니다. SSH 키는 공개 SSH 키와 비공개 SSH 키로 구성됩니다. 공개 SSH 키를 Git 제공업체와 공유하고 비공개 SSH 키로 Secret Manager 보안 비밀을 만들어야 합니다. 그런 다음 기본 BigQuery 서비스 계정과 보안 비밀을 공유합니다.

BigQuery는 비공개 SSH 키가 포함된 보안 비밀을 사용하여 Git 제공업체에 로그인하여 사용자를 대신하여 변경사항을 커밋합니다. BigQuery는 사용자의 Google Cloud 이메일 주소를 사용하여 이러한 커밋을 만들어 각 커밋을 알 수 있습니다.

SSH를 통해 원격 저장소를 BigQuery 저장소에 연결하려면 다음 단계를 따르세요.

  1. Git 제공업체에서 다음을 수행합니다.

    Azure DevOps 서비스

    1. Azure DevOps 서비스에서 비공개 SSH 키를 만듭니다.
    2. Azure DevOps Services 저장소에 공개 SSH 키를 업로드합니다.

    Bitbucket

    1. Bitbucket에서 비공개 SSH 키를 만듭니다.
    2. Bitbucket 저장소에 공개 SSH 키를 업로드합니다.

    GitHub

    1. GitHub에서 기존 SSH 키를 확인합니다.
    2. 기존 SSH 키가 없거나 새 키를 사용하려면 비공개 SSH 키를 만드세요.
    3. GitHub 저장소에 GitHub 공개 SSH 키를 업로드합니다.

    GitLab

    1. GitLab에서 비공개 SSH 키를 만듭니다.
    2. GitLab 저장소에 GitLab 공개 SSH 키를 업로드합니다.
  2. Secret Manager에서 보안 비밀을 만들고 비공개 SSH 키를 보안 비밀 값으로 붙여넣습니다. 비공개 SSH 키는 ~/.ssh/id_ed25519와 유사한 파일에 저장해야 합니다. 나중에 찾을 수 있도록 보안 비밀에 이름을 지정합니다.

  3. 기본 Dataform 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다.

    기본 Dataform 서비스 계정의 형식은 다음과 같습니다.

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  4. 서비스 계정에 roles/secretmanager.secretAccessor 역할을 부여합니다.

  5. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  6. 탐색기 창에서 저장소 폴더를 펼칩니다.

  7. 원격 저장소에 연결할 BigQuery 저장소를 선택합니다.

  8. 편집기에서 구성 탭을 선택합니다.

  9. Git과 연결을 클릭합니다.

  10. 원격 저장소에 연결 창에서 SSH 라디오 버튼을 선택합니다.

  11. 원격 Git 저장소 URL 필드에 .git로 끝나는 원격 Git 저장소 URL을 입력합니다.

    원격 Git 저장소의 URL은 다음 형식 중 하나여야 합니다.

    • 절대 URL: ssh://git@{host_name}[:{port}]/{repository_path}. port는 선택사항입니다.
    • SCP와 같은 URL: git@{host_name}:{repository_path}
  12. 기본 원격 브랜치 이름 필드에 원격 Git 저장소의 기본 브랜치 이름을 입력합니다.

  13. 보안 비밀 드롭다운에서 SSH 비공개 키가 포함된 보안 비밀을 선택합니다.

  14. SSH 공개 호스트 키 값 필드에 Git 제공업체의 공개 호스트 키를 입력합니다.

    Azure DevOps 서비스

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    Azure DevOps Services 공개 호스트 키를 검색하려면 터미널에서 ssh-keyscan -t rsa ssh.dev.azure.com 명령어를 실행합니다.

    Bitbucket

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    Bitbucket 공개 호스트 키를 검색하려면 SSH 구성을 참고하세요.

    GitHub

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    GitHub 공개 호스트 키를 검색하려면 GitHub의 SSH 키 지문을 참고하세요.

    GitLab

    SSH 공개 호스트 키 값은 known_hosts 파일 형식이어야 합니다. 값에는 base64 형식으로 인코딩된 알고리즘과 공개 키가 포함되어야 하지만 다음 형식처럼 호스트 이름이나 IP는 포함되지 않습니다.

    ALGORITHM BASE64_KEY_VALUE
    

    GitLab 공개 호스트 키를 가져오려면 SSH known_hosts 항목을 참고하세요.

  15. 연결을 클릭합니다.

HTTPS를 통해 원격 저장소 연결

HTTPS를 통해 원격 저장소를 연결하려면 개인 액세스 토큰으로 Secret Manager 보안 비밀을 만들고 기본 BigQuery 서비스 계정과 보안 비밀을 공유해야 합니다.

그러면 BigQuery는 액세스 토큰을 사용하여 Git 제공업체에 로그인하여 사용자를 대신하여 변경사항을 커밋합니다. BigQuery는 사용자의 Google Cloud 이메일 주소를 사용하여 이러한 커밋을 만들어 각 커밋을 알 수 있습니다.

HTTPS를 통해 원격 저장소를 BigQuery 저장소에 연결하려면 다음 단계를 따르세요.

  1. Git 제공업체에서 다음을 수행합니다.

    GitHub

    1. GitHub에서 세분화된 개인 액세스 토큰 또는 기본 개인 액세스 토큰을 만듭니다.

      • 세분화된 GitHub 개인 액세스 토큰의 경우 다음을 실행합니다.
      1. 선택한 저장소에만 저장소 액세스를 선택한 다음 연결할 저장소를 선택합니다.

      2. 저장소 콘텐츠에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.

      3. 필요에 맞게 토큰 만료 시간을 설정합니다.

      • 기존 GitHub 개인 액세스 토큰의 경우 다음 단계를 따르세요.
      1. BigQuery에 repo 권한을 부여합니다.

      2. 필요에 맞게 토큰 만료 시간을 설정합니다.

    2. 조직에서 SAML 싱글 사인온(SSO)을 사용하는 경우 토큰을 승인합니다.

    GitLab

    1. GitLab에서 GitLab 개인 액세스 토큰을 만듭니다.

    2. 토큰 이름을 dataform으로 지정합니다. 이는 필수입니다.

    3. BigQuery에 api, read_repository, write_repository 권한을 부여합니다.

    4. 필요에 맞게 토큰 만료 시간을 설정합니다.

  2. Secret Manager에서 원격 저장소의 개인 액세스 토큰이 포함된 보안 비밀을 만듭니다.

  3. 기본 Dataform 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다.

    기본 Dataform 서비스 계정의 형식은 다음과 같습니다.

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  4. 서비스 계정에 roles/secretmanager.secretAccessor 역할을 부여합니다.

  5. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  6. 탐색기 창에서 저장소 폴더를 펼칩니다.

  7. 원격 저장소에 연결할 BigQuery 저장소를 선택합니다.

  8. 편집기에서 구성 탭을 선택합니다.

  9. Git과 연결을 클릭합니다.

  10. 원격 저장소에 연결 창에서 HTTPS 라디오 버튼을 선택합니다.

  11. 원격 Git 저장소 URL 필드에 .git로 끝나는 원격 Git 저장소 URL을 입력합니다.

    원격 Git 저장소 URL에 사용자 이름이나 비밀번호가 포함될 수 없습니다.

  12. 기본 원격 브랜치 이름 필드에 원격 Git 저장소의 기본 브랜치 이름을 입력합니다.

  13. 보안 비밀 드롭다운에서 개인 액세스 토큰이 포함된 보안 비밀을 선택합니다.

  14. 연결을 클릭합니다.

원격 저장소 연결 수정

BigQuery 저장소와 원격 Git 저장소 간의 연결을 수정하려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 저장소 폴더를 펼칩니다.

  3. 연결을 수정할 BigQuery 저장소를 선택합니다.

  4. 편집기에서 구성 탭을 선택합니다.

  5. 저장소 페이지에서 Git 연결 수정을 클릭합니다.

  6. 연결 설정을 수정합니다.

  7. 업데이트를 클릭합니다.

저장소 공유

저장소를 공유하려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 저장소 폴더를 클릭합니다.

  3. Git 저장소 창에서 공유할 저장소를 선택합니다.

  4. 작업 옵션을 클릭한 다음 공유를 클릭합니다.

  5. 공유 권한 창에서 사용자/그룹 추가를 클릭합니다.

  6. 사용자/그룹 추가 창의 새 주 구성원 필드에 사용자 또는 그룹 이름을 하나 이상 입력하고 쉼표로 구분합니다.

  7. 역할 입력란에서 새 주 구성원에게 할당할 역할을 선택합니다.

  8. 저장을 클릭합니다.

저장소 삭제

저장소 및 저장소의 모든 콘텐츠를 삭제하려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 탐색기 창에서 저장소 폴더를 클릭합니다.

  3. Git 저장소 창에서 삭제할 저장소를 선택합니다.

  4. 작업 옵션을 클릭한 다음 삭제를 클릭합니다.

  5. 삭제를 클릭합니다.

다음 단계