Veritabanınızdaki verileri silmek için Cloud Firestore yönetilen toplu silme hizmetini kullanabilirsiniz. Bu özellik, bir veya daha fazla koleksiyon grubu için silme işlemini destekler.
Bu sayfada, yönetilen toplu silme hizmetini kullanarak Cloud Firestore dokümanı nasıl toplu olarak sileceğiniz açıklanmaktadır. Cloud Firestore yönetilen toplu silme hizmeti, gcloud
komut satırı aracı ve Cloud Firestore API (REST, RPC) üzerinden kullanılabilir.
Başlamadan önce
Yönetilen toplu silme hizmetini kullanabilmeniz için aşağıdaki görevleri tamamlamanız gerekir:
- Google Cloud projeniz için faturalandırmayı etkinleştirin. Toplu silme işlevi yalnızca faturalandırma özelliği etkinleştirilmiş Google Cloud projelerde kullanılabilir.
-
Hesabınızın Cloud Firestore için gerekli izinlere sahip olduğundan emin olun. Proje sahibiyseniz hesabınız gerekli izinlere sahiptir. Aksi takdirde, aşağıdaki roller toplu silme işlemleri için gerekli izinleri verir:
- Cloud Firestore rolleri:
Owner
,Cloud Datastore Owner
veyaCloud Datastore Bulk Admin
- Cloud Firestore rolleri:
Projeniz için gcloud
'ü ayarlama
Google Cloud Console veya gcloud
komut satırı aracı üzerinden toplu silme işlemleri başlatabilirsiniz. gcloud
kullanmak için komut satırı aracını kurun ve aşağıdaki yöntemlerden birini kullanarak projenize bağlanın:
Cloud Shell kullanarak Google Cloud Console'dan
gcloud
'e erişin.gcloud
öğesinin doğru proje için yapılandırıldığından emin olun:gcloud config set project [PROJECT_ID]
Verileri toplu sil
Toplu silme işlemi, önce veritabanınızdaki tüm geçerli dokümanları bulur ve bunları gruplar halinde siler. Bu belgeleri yine de sorgulayabilir veya okuyabilirsiniz. Ancak sonuçlar kaydedilen ilerlemeye göre değişiklik gösterebilir. Toplu silme, işlem başladıktan sonra eklenen veya değiştirilen dokümanları silmez.
Belirli koleksiyon gruplarını toplu silme
gcloud
Belirli koleksiyon gruplarını toplu olarak silmek için --collection-ids
işaretini kullanın. İşlem yalnızca belirtilen kimliklere sahip koleksiyon gruplarını siler. Koleksiyon grubu, belirtilen koleksiyon gruplarını içeren tüm dokümanları ve iç içe yerleştirilmiş dokümanları (herhangi bir yolda) içerir.
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]
Toplu silme işlemlerini yönetme
Toplu silme işlemini başlattıktan sonra Cloud Firestore, işleme benzersiz bir ad atar. İşlemi silmek, iptal etmek veya durumunu kontrol etmek için işlem adını kullanabilirsiniz.
İşlem adlarının önüne projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
ön eki eklenir. Örneğin:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Ancak describe
, cancel
ve delete
komutları için bir işlem adı belirtirken ön eki çıkarabilirsiniz.
Tüm toplu silme işlemlerini listeleme
gcloud
Toplu silme işlemleri de dahil olmak üzere çalışan ve yakın zamanda tamamlanan tüm işlemleri görmek için operations list
komutunu kullanın:
gcloud firestore operations list
İşlem durumunu kontrol et
gcloud
Toplu silme işleminin durumunu göstermek için operations describe
komutunu kullanın.
gcloud firestore operations describe [OPERATION_NAME]
Tamamlanma süresini tahmin etme
Uzun süren bir işlemin durumuyla ilgili istek, workEstimated
ve workCompleted
metriklerini döndürür. Bu metriklerin her biri hem bayt sayısı hem de doküman sayısı olarak döndürülür:
workEstimated
, bir işlemin işleyeceği tahmini toplam bayt ve belge sayısını gösterir. Cloud Firestore, tahminde bulunamazsa bu metriği atlayabilir.workCompleted
, şu ana kadar silinen bayt ve doküman sayısını gösterir. İşlem tamamlandıktan sonra bu değer, gerçekte işlenen toplam bayt ve belge sayısını gösterir. Bu değer,workEstimated
değerinden daha büyük olabilir.
İlerleme tahmini için workCompleted
değerini workEstimated
değerine bölün. Gecikmeli istatistik toplama işlemine bağlı olduğu için bu tahmin hatalı olabilir.
İşlemi iptal etme
gcloud
Devam eden bir işlemi durdurmak için operations cancel
komutunu kullanın:
gcloud firestore operations cancel [OPERATION_NAME]
Devam eden bir işlemin iptal edilmesi, işlemin geri alınması anlamına gelmez. İptal edilen bir toplu silme işlemi, silinen belgeleri kurtarmaz.
İşlemleri silme
Tamamlanan bir işlemi son işlemler listesinden kaldırmak için gcloud firestore operations delete
komutunu kullanın. Devam eden bir işlemi iptal etmek için önceki iptal işlemini kullanın.
gcloud firestore operations delete [OPERATION_NAME]
Toplu silme işlemleri için faturalandırma ve fiyatlandırma
Yönetilen toplu silme hizmetini kullanmadan önce Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.
Toplu silme işlemleri, doküman okuma ve silme işlemleri için Cloud Firestore fiyatlandırmasında listelenen fiyatlar üzerinden ücretlendirilir. Toplu silme işlemlerinde, bulunan her belge için bir dizin girişi okuma ve silinen her belge için bir silme işlemi uygulanır. 1.000'e kadar dizin girişi okuma işlemi için sizden bir okuma işlemi ücreti alınır. Örneğin, 1.500 dokümanın silindiği toplu silme işlemi için 2 doküman okuma ve 1.500 doküman silme işlemi ücretlendirilir.
Cloud Firestore'ün, yapılan gerçek çalışma için ücret tahsil ettiğini unutmayın. İşlem kullanıcı hatası nedeniyle iptal edilirse veya başarısız olursa, yapılan işlem için ücretlendirilirsiniz. Cloud Firestore, sonunda silinmeyen dokümanlar (örneğin, silme işlemi başladıktan sonra değiştirilen dokümanlar) için okuma veya silme işlemi için ücret almaz. Maliyet, işlemin tamamlandığı gün ilişkilendirilir.
Toplu silme işlemleri tamamlanana kadar Google Cloud bütçe uyarılarınız tetiklenmez. Benzer şekilde, toplu silme işlemi sırasında yapılan okuma ve silme işlemleri, işlem tamamlandıktan sonra ücretsiz kotanıza/kullanımınıza uygulanır. Toplu silme işlemleri, konsolun kullanım bölümünde gösterilen kullanımı etkilemez.
Toplu silme maliyetlerini görüntüle
Toplu silme işlemleri, faturalandırılan işlemlere goog-firestoremanaged:bulkdelete
etiketini uygular. Cloud Faturalandırma raporları sayfasında toplu silme işlemleriyle ilgili maliyetleri görüntülemek için bu etiketi kullanabilirsiniz.
En iyi uygulamalar
Sorguları yavaşlatabilecek silinmiş verileri atlamayın.