Datastore 모드 관리형 일괄 삭제 서비스를 사용하여 데이터베이스에서 데이터를 삭제할 수 있습니다. 이 기능은 하나 이상의 종류에 대한 삭제를 지원합니다.
이 페이지에서는 관리형 일괄 삭제 서비스를 사용하여 Datastore 모드의 Firestore 항목을 일괄 삭제하는 방법을 설명합니다. Datastore 모드 관리형 일괄 삭제 서비스는 gcloud
명령줄 도구 및 Datastore 모드 API (REST, RPC)를 통해 사용할 수 있습니다.
시작하기 전에
관리형 일괄 삭제 서비스를 사용하려면 먼저 다음 작업을 완료해야 합니다.
- Google Cloud 프로젝트에 결제를 사용 설정합니다. 결제가 사용 설정된 Google Cloud 프로젝트만 일괄 삭제 기능을 사용할 수 있습니다.
-
계정에 Datastore 모드에 필요한 권한이 있는지 확인합니다. 프로젝트 소유자인 계정에는 필요한 권한이 있습니다. 그렇지 않은 경우 다음 역할은 일괄 삭제 작업에 필요한 권한을 부여합니다.
- Datastore 모드 역할:
Owner
,Cloud Datastore Owner
또는Cloud Datastore Bulk Admin
- Datastore 모드 역할:
프로젝트에 gcloud
설정
Google Cloud 콘솔 또는 gcloud
명령줄 도구를 통해 일괄 삭제 작업을 시작할 수 있습니다. gcloud
를 사용하려면 다음 방법 중 사용하여 명령줄 도구를 설정하고 프로젝트에 연결합니다.
Cloud Shell을 사용하여 Google Cloud 콘솔에서
gcloud
에 액세스합니다.gcloud
가 올바른 프로젝트에 구성되어 있는지 확인합니다.gcloud config set project [PROJECT_ID]
데이터 일괄 삭제
일괄 삭제 작업은 먼저 데이터베이스에서 관련 항목을 모두 찾아 일괄적으로 삭제합니다. 이러한 항목을 계속 쿼리하거나 읽을 수 있지만 진행 상황에 따라 결과가 다를 수 있습니다. 일괄 삭제 시 작업이 시작된 후에 추가되거나 수정된 항목은 삭제되지 않습니다.
특정 종류 일괄 삭제
gcloud
특정 종류를 일괄 삭제하려면 --collection-ids
플래그를 사용합니다. 이 플래그는 Firestore 용어를 사용하지만 컬렉션 그룹 ID는 종류 ID와 동일합니다. 이 작업은 지정된 ID가 있는 종류만 삭제합니다. 종류에는 지정된 종류가 있는 모든 항목 및 중첩된 항목 (모든 경로)이 포함됩니다.
gcloud beta firestore bulk-delete \ --collection-ids=[COLLECTION_GROUP_ID_1_OR_KIND_1],[COLLECTION_GROUP_ID_2_OR_KIND_2],[SUBCOLLECTION_GROUP_ID_1_OR_KIND_3] \ --database=[DATABASE]
일괄 삭제 작업 관리
일괄 삭제 작업을 시작한 후 Datastore 모드는 작업에 고유한 이름을 할당합니다. 이 작업 이름을 사용하면 작업을 삭제 또는 취소하거나 상태를 확인할 수 있습니다.
작업 이름은 다음 예시와 같이 projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
로 시작합니다.
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
describe
, cancel
, delete
명령어에 작업 이름을 지정할 때 프리픽스는 제외할 수 있습니다.
모든 일괄 삭제 작업 나열
gcloud
operations list
명령어를 사용하여 일괄 삭제 작업을 비롯한 모든 실행 중인 작업과 최근에 완료된 작업을 확인합니다.
gcloud firestore operations list
작업 상태 확인
gcloud
operations describe
명령어를 사용하여 일괄 삭제 작업의 상태를 표시합니다.
gcloud firestore operations describe [OPERATION_NAME]
완료 시간 예상
장기 실행 작업의 상태를 요청하면 workEstimated
및 workCompleted
측정항목이 반환됩니다. 이러한 각 측정항목은 바이트 수와 항목 수 단위로 반환됩니다.
workEstimated
는 작업에서 처리할 것으로 예상되는 총 바이트 및 항목 수를 나타냅니다. Datastore 모드가 예상치를 산출하지 못하는 경우 이 측정항목이 생략될 수 있습니다.workCompleted
는 지금까지 삭제된 바이트 및 항목 수를 나타냅니다. 작업이 완료된 후 이 값은 실제로 처리된 총 바이트 및 항목 수를 나타내며workEstimated
값보다 클 수 있습니다.
workCompleted
를 workEstimated
로 나누면 예상 진행도를 대략적으로 추정할 수 있습니다. 이 예상치는 통계 수집이 지연되어 정확하지 않을 수 있습니다.
작업 취소
gcloud
operations cancel
명령어를 사용하면 진행 중인 작업을 중지할 수 있습니다.
gcloud firestore operations cancel [OPERATION_NAME]
실행 중인 작업을 취소해도 이미 진행된 작업은 취소되지 않습니다. 일괄 삭제 작업을 취소해도 삭제된 항목은 복구되지 않습니다.
작업 삭제
gcloud firestore operations delete
명령어를 사용하여 최근 작업 목록에서 완료된 작업을 삭제합니다. 실행 중인 작업을 취소하려면 이전 취소 작업을 사용합니다.
gcloud firestore operations delete [OPERATION_NAME]
일괄 삭제 작업 결제 및 가격 책정
관리형 일괄 삭제 서비스를 사용하기 전에 Google Cloud 프로젝트의 결제를 사용 설정해야 합니다.
일괄 삭제 작업의 경우 Datastore 모드 가격 책정에 나와 있는 요금에 따라 항목 읽기 및 삭제의 요금이 청구됩니다. 일괄 삭제 작업은 찾은 항목당 색인 항목 읽기 1회와 삭제된 항목당 삭제 작업 1회가 발생합니다. 최대 1,000개의 색인 항목을 읽을 때마다 1회의 읽기 작업 요금이 부과됩니다. 예를 들어 1, 500개의 항목을 삭제한 일괄 삭제 작업의 경우 항목 읽기 2회 및 항목 삭제 1, 500회가 청구됩니다.
Datastore 모드는 실제로 수행된 작업에 대해 요금을 청구합니다. 사용자 오류로 인해 작업이 취소되거나 실패한 경우 진행 상황에 따라 요금이 청구됩니다. Datastore 모드는 최종적으로 삭제되지 않은 항목 (예: 삭제 작업이 시작된 후 수정된 항목)에 대해 읽기 또는 삭제 요금을 청구하지 않습니다. 비용은 작업이 완료된 날에 청구됩니다.
일괄 삭제 작업은 완료 후까지 Google Cloud 예산 알림을 트리거하지 않습니다. 마찬가지로 일괄 삭제 작업 중에 수행되는 읽기 및 삭제는 작업 완료 후 무료 할당량/사용량에 반영됩니다. 일괄 삭제 작업은 콘솔의 사용량 섹션에 표시되는 사용량에는 영향을 미치지 않습니다.
일괄 삭제 비용 보기
일괄 삭제 작업은 청구된 작업에 goog-firestoremanaged:bulkdelete
라벨을 적용합니다. Cloud Billing 보고서 페이지에서 이 라벨을 사용하여 일괄 삭제 작업과 관련된 비용을 볼 수 있습니다.
권장사항
쿼리 속도가 느려질 수 있으므로 삭제된 데이터를 건너뛰지 마세요.
기타 옵션
Dataflow는 데이터 처리 워크플로를 개발하고 실행하는 관리형 서비스로, 데이터를 일괄 삭제할 수도 있습니다. Dataflow는 GQL 쿼리에서 선택한 항목을 삭제하는 데 사용할 수 있는 Datastore 삭제 템플릿을 제공합니다.
자세한 내용은 Datastore 일괄 삭제 템플릿 실행에 대한 Dataflow 문서를 참조하세요.
데이터 보관이 필요한 사용 사례의 경우 TTL 정책으로 데이터 보관 관리를 참조하세요.