폴더로 코드 애셋 정리
다음 문서에서는 BigQuery 폴더가 작동하는 방식을 설명합니다. 폴더를 사용하여 운영체제에서 사용하는 것과 유사한 계층 구조로 코드 애셋을 정리할 수 있습니다. 예를 들어 각 회계연도에 대한 하위 폴더가 있는 판매 분석용 코드 애셋을 정리하는 폴더를 만들 수 있습니다. 폴더를 사용하여 코드 애셋에 대한 액세스를 관리할 수도 있습니다. 폴더는 Identity and Access Management (IAM) 정책 상속을 제공하며, 이를 사용하여 코드 애셋에 대한 액세스를 보다 효율적으로 제어할 수 있습니다. 정책 상속을 사용하면 하위 폴더와 파일이 상위 폴더의 권한을 상속할 수 있습니다.
BigQuery 폴더는 Dataform으로 구동됩니다.
BigQuery에서 폴더를 사용하는 방법에 대한 자세한 내용은 폴더 만들기 및 관리를 참고하세요.
폴더로 코드 애셋 정리
BigQuery Studio의 파일 창에서 폴더를 사용하여 코드 애셋에 액세스하고 이를 정리할 수 있습니다.
폴더는 표준 파일 시스템 폴더와 마찬가지로 코드 애셋을 정리하기 위한 기본 컨테이너입니다. 상위 폴더 내에 하위 폴더를 만들고 정리할 수 있으며, 코드 애셋을 폴더 안팎으로 이동할 수 있습니다. 폴더에 권한을 부여하면 해당 폴더에 포함된 모든 폴더와 파일에 권한이 전파됩니다.
폴더는 노트북, 저장된 쿼리, 데이터 캔버스, 데이터 준비 파일과 같은 단일 파일 코드 애셋을 정리하는 데만 사용할 수 있습니다.
폴더 유형
BigQuery는 다음과 같은 유형의 폴더를 지원합니다.
사용자 폴더: 각 사용자에게는 사용자 (사용자 이메일 주소)로 표시되는 개인 루트 폴더가 있습니다. 사용자 폴더에는 지정된 프로젝트와 위치에서 생성한 모든 코드 애셋이 포함됩니다. 사용자 폴더에 하위 폴더를 만들어 이러한 코드 애셋을 정리할 수 있습니다. 사용자 폴더의 파일과 폴더는 다른 사용자와 공유하지 않는 한 본인만 액세스할 수 있습니다.
팀 폴더: 팀 폴더는 Google Drive의 공유 드라이브와 마찬가지로 팀 공동작업을 위해 설계되었습니다. 팀 폴더를 사용하여 특정 팀에 속한 코드 애셋을 정리할 수 있습니다. 루트 팀 폴더에 소유자 권한이 있는 사용자만 다른 사용자가 팀 폴더를 사용할 수 있도록 권한을 부여할 수 있습니다.
폴더 코드 리전
폴더와 코드 애셋은 서로 다른 코드 리전에 있을 수 있습니다. 예를 들어 folderA 및 포함된 코드 애셋을 us-west1 리전에, folderB 및 포함된 코드 애셋을 us-central1 리전에 둘 수 있습니다. 파일 창에 보고 있는 지역이 표시됩니다.
IAM 정책 상속
파일 및 폴더 리소스의 IAM 액세스는 계층 구조를 사용합니다. 이 계층 구조를 통해 액세스 정책이 상위 폴더에서 콘텐츠로 상속됩니다.
폴더에 IAM 정책이 설정되면 해당 정책에서 부여한 권한이 폴더의 하위 트리에 있는 모든 파일과 중첩된 하위 폴더에도 적용됩니다. 이로 인한 결과는 다음과 같습니다.
- 권한은 폴더 계층 구조를 통해 상속됩니다. 사용자에게 상위 수준 폴더에 대한 특정 역할이 부여되면 해당 폴더와 하위 폴더에 포함된 모든 리소스에 대해 해당 역할에 포함된 권한을 보유합니다.
- 사용자가 리소스에 대해 갖는 권한은 해당 리소스에 직접 설정된 정책과 경로의 모든 폴더에서 루트까지 상속된 모든 정책으로 구성됩니다.
따라서 폴더 구조 깊숙이 있는 리소스에 대해 작업을 수행하는 데 프로젝트 수준 권한이 필요하지 않습니다. 해당 리소스 경로의 폴더에 대한 적절한 권한만 있으면 됩니다. 예를 들어 하위 폴더에 파일을 만들려면 특정 하위 폴더 또는 최상위 폴더를 포함한 상위 폴더에 필요한 권한이 있어야 합니다.
다음은 파일 및 폴더에 IAM 정책을 적용할 때의 권장사항입니다.
- 권한이 균일하게 필요한 계층 구조의 최상위 폴더에 IAM 정책을 적용합니다. 예를 들어 팀의 디렉터리에 있는 모든 데이터에 액세스해야 하는 경우 개별 프로젝트 하위 폴더 수준이 아닌 팀 폴더 수준에서 필요한 역할을 부여합니다.
- 사용자 또는 서비스가 작업을 수행하는 데 필요한 최소한의 권한 집합을 항상 부여하세요. 더 구체적인 폴더 수준 역할과 권한을 사용할 수 있는 경우 광범위한 역할을 부여하지 마세요.
리소스 생성 시 부여된 IAM 역할
폴더를 만들면 다음 역할이 자동으로 부여됩니다.
- 사용자 루트 노드에 폴더를 만드는 사용자에게는 해당 폴더에 대한 Dataform 관리자 역할(
roles/dataform.admin)이 자동으로 부여됩니다. - 루트 팀 폴더의 생성자에게는 해당 팀 폴더에 대한 Dataform 관리자 역할(
roles/dataform.admin)이 자동으로 부여됩니다.
팀 폴더의 하위 트리 내에서 새 파일이나 폴더를 만들 때 역할이 자동으로 부여되지 않습니다.
사용 중인 리소스
사용자 폴더 또는 팀 폴더가 이동 작업에 적극적으로 참여하는 경우(이동되는 객체 또는 이동의 대상) '사용 중'입니다. 시스템에서는 이동 중에 데이터 무결성을 보장하기 위해 사용 중인 리소스가 다음 작업을 실행하지 못하도록 제한합니다.
- 다른 이동 작업의 객체입니다.
- 다른 이동 작업의 대상입니다.
- 이동 객체의 상위 요소
- 삭제 작업의 객체입니다.
제한사항
BigQuery 폴더에는 다음과 같은 제한사항이 있습니다.
- 폴더는 최대 5개 수준까지 중첩할 수 있습니다.
- 폴더 수가 매우 많으면 (수십만 개) 폴더 작업 시 성능이 저하됩니다. 예를 들어 파일 탐색기를 로드하거나 폴더를 펼칠 때입니다.
- 파일 또는 폴더가 100개를 초과하는 폴더는 이동할 수 없습니다.
위치
BigQuery 폴더는 모든 Dataform 위치에서 지원됩니다.