Verileri toplu olarak silme

Yalnızca Cloud Firestore Enterprise sürümü için geçerlidir.

Verileri veritabanınızdan silmek için yönetilen toplu silme hizmetini kullanın. Bu özellik, bir veya daha fazla koleksiyon grubuna karşı silme işlemini destekler.

Bu sayfada, yönetilen toplu silme hizmetini kullanarak belgeleri toplu olarak nasıl sileceğiniz açıklanmaktadır. MongoDB uyumluluğu ile Cloud Firestore'un yönetilen toplu silme hizmeti, gcloud komut satırı aracı ve Cloud Firestore REST API aracılığıyla kullanılabilir.

Başlamadan önce

Yönetilen toplu silme hizmetini kullanabilmek için aşağıdaki görevleri tamamlamanız gerekir:

  1. Google Cloud projeniz için faturalandırmayı etkinleştirin. Yalnızca faturalandırma özelliği etkinleştirilmiş Google Cloud projelerde toplu silme işlevi kullanılabilir.
  2. Hesabınızın, MongoDB uyumluluğu ile Cloud Firestore için gerekli izinlere sahip olduğundan emin olun. Proje sahibiyseniz hesabınızda gerekli izinler vardır. Aksi takdirde, aşağıdaki roller toplu silme işlemleri için gerekli izinleri verir:

Projeniz için gcloud oluşturma

Toplu silme işlemlerini Google Cloud Console veya gcloud komut satırı aracı üzerinden başlatabilirsiniz. gcloud aracını kullanmak için komut satırı aracını ayarlayın ve aşağıdaki yöntemlerden birini kullanarak projenize bağlanın:

Verileri toplu olarak silme

Toplu silme işlemi, önce veritabanınızdaki geçerli tüm belgeleri bulur ve bunları toplu olarak siler. Sonuçlar, ilerlemeye bağlı olarak değişse de bu belgelere sorgu göndermeye veya belgeleri okumaya devam edebilirsiniz. Toplu silme işlemi, işlem başladıktan sonra eklenen veya değiştirilen belgeleri silmez.

Belirli koleksiyon gruplarını toplu olarak silme

gcloud

Belirli koleksiyon gruplarını toplu olarak silmek için --collection-ids işaretini kullanın. Bu işlem yalnızca belirtilen kimliklere sahip koleksiyon gruplarını siler.

gcloud 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, MongoDB uyumlu 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 işlem adı belirtirken öneki atlayabilirsiniz.

Tüm toplu silme işlemlerini listeleme

gcloud

Toplu silme işlemleri de dahil olmak üzere, devam eden 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 etme

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üreli bir işlemin durumuyla ilgili istek, workEstimated ve workCompleted metriklerini döndürür. Bu metriklerin her biri hem bayt sayısı hem de belge 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. MongoDB uyumluluğu olan Cloud Firestore, tahmin yapamıyorsa bu metriği atlayabilir.

  • workCompleted, şu ana kadar silinen bayt ve doküman sayısını gösterir. İşlem tamamlandıktan sonra değer, gerçekte işlenen toplam bayt ve belge sayısını gösterir. Bu sayı, workEstimated değerinden daha büyük olabilir.

Kabaca bir ilerleme durumu tahmini için workCompleted değerini workEstimated değerine bölün. Bu tahmin, gecikmeli istatistik toplama işlemine bağlı olduğundan yanlış olabilir.

İşlemi iptal etme

gcloud

Devam eden bir işlemi durdurmak için operations cancel komutunu kullanın:

gcloud firestore operations cancel [OPERATION_NAME]

Çalışan bir işlemi iptal etmek, işlemi geri almaz. İptal edilen toplu silme işlemi, silinen dokümanları kurtarmaz.

İşlem silme

Tamamlanan bir işlemi son işlemler listesinden kaldırmak için gcloud firestore operations delete komutunu kullanın. Çalışan bir işlemi iptal etmek için önceki iptal işlemini kullanın.

gcloud firestore operations delete [OPERATION_NAME]

Toplu silme işlemleriyle ilgili faturalandırma ve fiyatlandırma

Yönetilen toplu silme hizmetini kullanmadan önce Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.

MongoDB uyumluluğu olan Cloud Firestore'un, yapılan gerçek iş üzerinden ücretlendirdiğini unutmayın. İşlem kullanıcı hatası nedeniyle iptal edilirse veya başarısız olursa yapılan ilerleme için sizden ücret alınır. MongoDB uyumlu Cloud Firestore, silme işlemi başladıktan sonra değiştirilen belgeler gibi sonunda silinmeyen belgeler için okuma veya silme ücreti almaz. Maliyet, işlemin tamamlandığı gün ilişkilendirilir.

Toplu silme işlemleri tamamlanana kadar Google Cloud bütçe uyarılarınızı tetiklemez. Benzer şekilde, toplu silme işlemi sırasında gerçekleştirilen okuma ve silme işlemleri, işlem tamamlandıktan sonra ücretsiz katman 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üleme

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.