Verilerin yanlışlıkla silinmesinden kurtulmak ve verileri çevrimdışı işlemek üzere dışa aktarmak için Cloud Firestore yönetilen dışa aktarma ve içe aktarma hizmetini kullanabilirsiniz. Tüm dokümanları veya yalnızca belirli koleksiyon gruplarını dışa aktarabilirsiniz. Aynı şekilde, dışa aktarma işleminden tüm verileri veya yalnızca belirli koleksiyon gruplarını içe aktarabilirsiniz. Bir Cloud Firestore veritabanından dışa aktarılan veriler başka bir Cloud Firestore veritabanına içe aktarılabilir. Dışa aktarılan dosyaları Cloud FirestoreBigQuery'a da yükleyebilirsiniz.
Bu sayfada, yönetilen dışa aktarma ve içe aktarma hizmeti ile Cloud Storage kullanılarak Cloud Firestore dokümanlarının nasıl dışa ve içe aktarılacağı açıklanmaktadır. Cloud Firestore yönetilen dışa aktarma ve içe aktarma hizmeti, gcloud komut satırı aracı ve Cloud Firestore API (REST, RPC) aracılığıyla kullanılabilir.
Başlamadan önce
Yönetilen dışa aktarma ve içe aktarma hizmetini kullanabilmek için aşağıdaki görevleri tamamlamanız gerekir:
- Google Cloud projeniz için faturalandırmayı etkinleştirin. Dışa ve içe aktarma işlevini yalnızca Google Cloud faturalandırma özelliği etkinleştirilmiş projeler kullanabilir.
- Projeniz için Cloud Storage paketini veritabanı Cloud Firestore konumunuza yakın bir yerde oluşturun. Dışa ve içe aktarma işlemleri için Rapid paketi veya istekte bulunanın ödeme yaptığı bir paket kullanamazsınız.
-
Hesabınızın Cloud Firestore ve Cloud Storage için gerekli izinlere sahip olduğundan emin olun. Proje sahibiyseniz hesabınızda gerekli izinler vardır. Aksi takdirde, aşağıdaki roller dışa ve içe aktarma işlemleri için gerekli izinleri ve Cloud Storage erişimini verir:
- Cloud Firestore rolleri:
Owner,Cloud Datastore OwnerveyaCloud Datastore Import Export Admin Cloud Storage rolleri:
OwnerveyaStorage Admin
- Cloud Firestore rolleri:
Hizmet aracısı izinleri
Dışa ve içe aktarma işlemleri, Cloud Firestore hizmet aracısı kullanarak Cloud Storage işlemleri yetkilendirir. Cloud Firestore hizmet aracısı şu adlandırma kuralını kullanır:
- Cloud Firestore hizmet aracısı
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Servis temsilcileri hakkında daha fazla bilgi edinmek için Servis temsilcileri başlıklı makaleyi inceleyin.
Cloud Firestore hizmet aracısının, dışa veya içe aktarma işleminde kullanılan Cloud Storage paketine erişmesi gerekir. Cloud Storage paketi, Cloud Firestore veritabanınızla aynı projede yer alıyorsa Cloud Firestore hizmet aracısı, pakete varsayılan olarak erişebilir.
Cloud Storage paketi başka bir projede bulunuyorsa Cloud Firestore hizmet aracısına Cloud Storage paketine erişim izni vermeniz gerekir.
Hizmet aracısına rol atama
Aşağıdaki rollerden birini atamak için gsutil komut satırı aracını kullanabilirsiniz. Örneğin, Cloud Firestore hizmet aracısına Depolama Alanı Yöneticisi rolünü atamak için aşağıdakileri çalıştırın:
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \ gs://[BUCKET_NAME]
PROJECT_NUMBER kısmını, Cloud Firestore hizmet aracınıza ad vermek için kullanılan proje numaranızla değiştirin. Hizmet aracısı adını görüntülemek için Hizmet aracısı adını görüntüleme başlıklı makaleyi inceleyin.
Alternatif olarak, bu rolü Google Cloud Console'u kullanarak da atayabilirsiniz.
Hizmet aracısı adını görüntüleme
İçe ve dışa aktarma işlemlerinizin istekleri yetkilendirmek için kullandığı hesabı Google Cloud Console'daki İçe/Dışa Aktarma sayfasında görüntüleyebilirsiniz. Veritabanınızın Cloud Firestore hizmet aracısını mı yoksa eski App Engine hizmet hesabını mı kullandığını da görebilirsiniz.
- İçe/dışa aktarma işleri şu şekilde çalıştırılır: etiketinin yanındaki yetkilendirme hesabını görüntüleyin.
Hizmet aracısının, dışa aktarma veya içe aktarma işlemi için kullanılacak Cloud Storage
bucket'ında Storage Admin rolü olması gerekir.
Projeniz için gcloud ayarlama
İçe ve dışa aktarma işlemlerini Google Cloud Console veya gcloud komut satırı aracı üzerinden başlatabilirsiniz. gcloud kullanmak için komut satırı aracını ayarlayın
ve aşağıdaki yöntemlerden birini kullanarak projenize bağlanın:
Cloud Shell kullanarak Google Cloud Console'dan
gcloud'a erişin.gcloud'nın doğru proje için yapılandırıldığından emin olun:gcloud config set project [PROJECT_ID]
Verileri dışa aktarın
Dışa aktarma işlemi, veritabanınızdaki dokümanları bir Cloud Storage paketindeki bir dizi dosyaya kopyalar. Dışa aktarma işleminin, dışa aktarma başlangıç zamanında alınan tam bir veritabanı anlık görüntüsü olmadığını unutmayın. Dışa aktarma işlemi, işlem çalışırken yapılan değişiklikleri içerebilir.
Tüm belgeleri dışa aktarma
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
Dışa aktar'ı tıklayın.
Veritabanının tamamını dışa aktar seçeneğini tıklayın.
Hedef Seçin'in altında bir Cloud Storage paketin adını girin veya Gözat düğmesini kullanarak bir paket seçin.
Dışa aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlatılırsa sayfaya son içe ve dışa aktarma işlemleri sayfasında bir giriş eklenir. Başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
Veritabanınızdaki tüm dokümanları dışa aktarmak için firestore export komutunu kullanın. [BUCKET_NAME] yerine Cloud Storage paketinizin adını girin. gcloud aracının işlemin tamamlanmasını beklemesini önlemek için --async işaretini ekleyin.
gcloud firestore export gs://[BUCKET_NAME] \ --database=[DATABASE]
Aşağıdakini değiştirin:
BUCKET_NAME: Paket adından sonra dosya öneki ekleyerek dışa aktarma işlemlerinizi düzenleyin. Örneğin,BUCKET_NAME/my-exports-folder/export-name. Dosya öneki sağlamazsanız yönetilen dışa aktarma hizmeti, geçerli zaman damgasına göre bir dosya öneki oluşturur.DATABASE: Belgeleri dışa aktarmak istediğiniz veritabanının adı. Varsayılan veritabanı için--database='(default)'simgesini kullanın.
Dışa aktarma işlemini başlattıktan sonra terminali kapatmak işlemi iptal etmez. İşlemi iptal etme başlıklı makaleyi inceleyin.
Belirli koleksiyon gruplarını dışa aktarma
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
Dışa aktar'ı tıklayın.
Bir veya daha fazla koleksiyon grubunu dışa aktar seçeneğini tıklayın. Bir veya daha fazla koleksiyon grubu seçmek için menüyü kullanın.
Hedef Seçin'in altında bir Cloud Storage paketin adını girin veya Gözat düğmesini kullanarak bir paket seçin.
Dışa aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlatılırsa sayfaya son içe ve dışa aktarma işlemleri sayfasında bir giriş eklenir. Başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
Belirli koleksiyon gruplarını dışa aktarmak için --collection-ids işaretini kullanın. İşlem yalnızca belirtilen kimliklere sahip koleksiyon gruplarını dışa aktarır. Koleksiyon grubu, nihai koleksiyon kimliği koleksiyon grubu kimliği olan tüm koleksiyonları ve alt koleksiyonları içerir.
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
Örneğin, foo veritabanında restaurants koleksiyonu tasarlayarak ratings, reviews veya outlets gibi birden fazla alt koleksiyon ekleyebilirsiniz. reviews koleksiyon grubunu dışa aktarmak için grubun açıkça listelenmesi gerekir:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=reviews \ --database='cymbal'
Bunun yerine restaurants belirtilirse reviews alt koleksiyonundaki dokümanlar dışa aktarılmaz.
PITR zaman damgasından dışa aktarma
Veritabanınızı PITR verilerinden Cloud Storage'ya aktarabilirsiniz.
Zaman damgasının son yedi gün içinde tam dakika zaman damgası olduğu PITR verilerini dışa aktarabilirsiniz ancak earliestVersionTime tarihinden önceki verileri dışa aktaramazsınız. Belirtilen zaman damgasında artık veri yoksa dışa aktarma işlemi başarısız olur.
PITR dışa aktarma işlemi, tüm belgelerin dışa aktarılması ve belirli koleksiyon gruplarının dışa aktarılması da dahil olmak üzere tüm filtreleri destekler.
PITR verilerini dışa aktarmadan önce aşağıdaki noktaları göz önünde bulundurun:
- Zaman damgasını RFC 3339 biçiminde belirtin. Örneğin,
2023-05-26T10:20:00.00Z. - Belirttiğiniz zaman damgasının, son yedi gün içinde tam dakika zaman damgası olduğundan ve
earliestVersionTimetarihinden önce olmadığından emin olun. Belirtilen zaman damgasında veri artık mevcut değilse hata oluşturulur. - Başarısız bir PITR dışa aktarma işlemi için sizden ücret alınmaz.
Konsol
-
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları'na gidin - Veritabanları listesinden bir veritabanı seçin.
- Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
- Dışa aktar'ı tıklayın.
- Dışa aktarma kaynağını, veritabanının tamamını veya yalnızca belirli koleksiyon gruplarını dışa aktaracak şekilde yapılandırın.
Dışa aktarılacak veritabanınızın durumunu seçin bölümünde Daha önceki bir zamandan dışa aktar'ı seçin.
Dışa aktarma işleminde kullanılacak bir anlık görüntü zamanı seçin
- Hedef bölümünde bir Cloud Storage paketin adını girin veya Göz at düğmesini kullanarak bir paket seçin.
-
Dışa aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlatılırsa sayfa, son içe ve dışa aktarma işlemleri sayfasına bir giriş ekler. Başarısız olursa sayfada hata mesajı gösterilir.
gcloud
gcloud firestore export komutunu kullanarak veritabanınızı Cloud Storage konumuna PITR verilerinden dışa aktarabilirsiniz.
snapshot-time parametresini kurtarma zaman damgası olarak belirterek veritabanını dışa aktarın. Veritabanını paketinize aktarmak için aşağıdaki komutu çalıştırın.
gcloud firestore export gs://[BUCKET_NAME_PATH] \ --snapshot-time=[PITR_TIMESTAMP]
Burada PITR_TIMESTAMP, dakika ayrıntı düzeyinde bir PITR zaman damgasıdır (örneğin, 2023-05-26T10:20:00.00Z).
Belirli koleksiyon gruplarını dışa aktarmak için --collection-ids işaretini ekleyin.
Verileri içe aktarma
Cloud Storage hizmetinde dışa aktarma dosyalarınız olduğunda bu dosyalardaki belgeleri projenize veya başka bir projeye tekrar aktarabilirsiniz. İçe aktarma işlemleriyle ilgili aşağıdaki noktalara dikkat edin:
Verileri içe aktardığınızda, gerekli dizinler veritabanınızın mevcut dizin tanımları kullanılarak güncellenir. Dışa aktarma işlemi dizin tanımları içermiyor.
İçe aktarma işlemlerinde yeni doküman kimlikleri atanmaz. İçe aktarma işlemlerinde, dışa aktarma sırasında yakalanan kimlikler kullanılır. İçe aktarılan belgelerin kimlik çakışmasını önlemek için kimlikleri ayrılır. Aynı kimliğe sahip bir doküman zaten varsa içe aktarma işlemi mevcut dokümanın üzerine yazar.
Veritabanınızdaki bir doküman içe aktarma işleminden etkilenmezse içe aktarma işleminden sonra veritabanınızda kalır.
İçe aktarma işlemleri Cloud Functions'ı tetiklemez. Anlık görüntü dinleyicileri içe aktarma işlemleriyle ilgili güncellemeler alır.
Dışa aktarma işleminin orijinal çıktı dosyalarında bulunmayan yeni Cloud Firestore belgeleri eklememeli veya içe aktarmadan önce GCS dosyalarından mevcut belgeleri kaldırmamalısınız. Aksi takdirde içe aktarma işlemi başarısız olur.
.overall_export_metadataDosya adı, üst klasörünün adıyla eşleşmelidir:gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadataDışa aktarma işleminden elde edilen çıktı dosyalarını taşırsanız veya kopyalarsanız PARENT_FOLDER_NAME ve
.overall_export_metadatadosya adını aynı tutun.
Dışa aktarılan tüm dokümanları içe aktarma
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
İçe Aktar'ı tıklayın.
Dosya adı alanına, tamamlanmış bir dışa aktarma işleminden elde edilen
.overall_export_metadatadosyasının adını girin. Dosyayı seçmek için Göz at düğmesini kullanabilirsiniz.İçe Aktar'ı tıklayın.
Konsol, İçe/Dışa Aktarma sayfasına döner. İşlem başarıyla başlatılırsa sayfaya son içe ve dışa aktarma işlemleri sayfasında bir giriş eklenir. Başarısız olursa sayfada bir hata mesajı gösterilir.
gcloud
Önceki bir dışa aktarma işlemindeki dokümanları içe aktarmak için firestore import komutunu kullanın.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]
Aşağıdakini değiştirin:
BUCKET_NAME/EXPORT_PREFIX: Dışa aktarılan dosyalarınızın konumu.DATABASE: Veritabanının adı. Varsayılan veritabanı için--database='(default)'simgesini kullanın.
Örneğin:
gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'
Dışa aktarılan dosyalarınızın konumunu Google Cloud Console'daki Cloud Storage tarayıcısında doğrulayabilirsiniz:
Cloud Storage tarayıcısını açın.
İçe aktarma işlemini başlattıktan sonra terminali kapatmak işlemi iptal etmez. İşlemi iptal etme başlıklı makaleyi inceleyin.
Belirli koleksiyon gruplarını içe aktarma
Google Cloud Console
Konsolda belirli koleksiyon gruplarını seçemezsiniz. Bunun yerine gcloud
kullanın.
gcloud
Bir dizi dışa aktarma dosyasından belirli koleksiyon gruplarını içe aktarmak için --collection-ids işaretini kullanın. İşlem yalnızca belirtilen kimliklere sahip koleksiyon gruplarını içe aktarır. Koleksiyon grubu, nihai koleksiyon kimliği koleksiyon grubu kimliği olan tüm koleksiyonları ve alt koleksiyonları içerir. --database işaretini kullanarak veritabanı adını belirtin. Varsayılan veritabanı için --database='(default)' simgesini kullanın.
Yalnızca belirli koleksiyon gruplarının dışa aktarılması, belirli koleksiyon gruplarının içe aktarılmasını destekler. Tüm dokümanların dışa aktarılmasından belirli koleksiyon gruplarını içe aktaramazsınız.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
PITR dışa aktarma işlemini içe aktarma
Dışa aktarılan veritabanınızı içe aktarmak için Tüm dokümanları içe aktarma bölümündeki adımları uygulayın. Veritabanınızda mevcut olan belgelerin üzerine yazılır.
Dışa ve içe aktarma işlemlerini yönetme
Dışa veya içe aktarma işlemi 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/(default)/operations/ 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 dışa ve içe aktarma işlemlerini listeleme
Google Cloud Console
Son dışa aktarma ve içe aktarma işlemlerinin listesini Google Cloud Console'un İçe/Dışa Aktarma sayfasında görebilirsiniz.
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
gcloud
Çalışan ve son tamamlanan tüm dışa ve içe aktarma işlemlerini görmek için operations list komutunu kullanın:
gcloud firestore operations list
İşlem durumunu kontrol etme
Google Cloud Console
Yakın zamanda yapılan bir dışa aktarma veya içe aktarma işleminin durumunu Google Cloud Console'un İçe/Dışa Aktarma sayfasında görüntüleyebilirsiniz.
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
gcloud
Dışa veya içe aktarma 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 öğe 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 tahmin yapamıyorsa bu metriği atlayabilir.workCompleted, şu ana kadar işlenen 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ı,workEstimateddeğerinden daha büyük olabilir.
Kabaca bir ilerleme 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
Google Cloud Console
Devam eden bir dışa aktarma veya içe aktarma işlemini Google Cloud Console'un İçe/Dışa Aktarma sayfasında iptal edebilirsiniz.
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın. Son içe ve dışa aktarma işlemleri tablosunda, şu anda çalışan işlemlerin Tamamlandı sütununda İptal düğmesi bulunur. İşlemi durdurmak için İptal düğmesini tıklayın. İşlem tamamen durduğunda düğme önce İptal ediliyor mesajına, ardından İptal edildi mesajına dönüşür.

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 bir dışa aktarma işlemi, daha önce dışa aktarılan dokümanları Cloud Storage içinde bırakır. İptal edilen bir içe aktarma işlemi ise veritabanınızda yapılan güncellemeleri olduğu gibi bırakır. Kısmen tamamlanmış bir dışa aktarma işlemini içe aktaramazsınız.
İşlem silme
Son işlemler listesinden bir işlemi kaldırmak için gcloud firestore operations delete komutunu kullanın. Bu komut, Cloud Storage içindeki dışa aktarma dosyalarını silmez.
gcloud firestore operations delete [OPERATION_NAME]
Dışa ve içe aktarma işlemleri için faturalandırma ve fiyatlandırma
Yönetilen dışa ve içe aktarma hizmetini kullanmadan önce Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir.
Dışa ve içe aktarma işlemleri, Cloud Firestore fiyatlandırma bölümünde listelenen fiyatlar üzerinden belge okuma ve yazma işlemleri için ücretlendirilir. Dışa aktarma işlemleri, dışa aktarılan her doküman için bir okuma işlemi olarak ücretlendirilir. İçe aktarma işlemleri, içe aktarılan her doküman için bir yazma işlemi olarak değerlendirilir.
Cloud Storage içinde depolanan çıkış dosyaları, Cloud Storage veri depolama alanı maliyetlerinize dahil edilir.
Dışa aktarma veya içe aktarma işlemleri tamamlanana kadar Google Cloudbütçe uyarılarınızı tetiklemez. Dışa ve içe aktarma işlemleri, konsolun kullanım bölümünde gösterilen kullanımı etkilemez.
Dışa ve içe aktarma maliyetlerini görüntüleme
Dışa ve içe aktarma işlemleri, faturalandırılan işlemlere goog-firestoremanaged:exportimport etiketini uygular. Cloud Billing raporları sayfasında, içe ve dışa aktarma işlemleriyle ilgili maliyetleri görüntülemek için bu etiketi kullanabilirsiniz:

BigQuery'ye aktarın
Cloud Firestore dışa aktarma işleminden BigQuery'e veri yükleyebilirsiniz ancak yalnızca collection-ids filtresi belirtmeniz koşuluyla. Cloud Firestore dışa aktarma işlemlerinden veri yükleme başlıklı makaleyi inceleyin.
BigQuery sütun sınırı
BigQuery,tablo başına 10.000 sütun sınırı uygular. Cloud Firestore dışa aktarma işlemleri, her koleksiyon grubu için bir BigQuerytablo şeması oluşturur. Bu şemada, bir koleksiyon grubundaki her benzersiz alan adı bir şema sütunu haline gelir. Bir koleksiyon grubunun BigQuery şeması 10.000 sütunu aşarsa Cloud Firestore dışa aktarma işlemi, harita alanlarını bayt olarak ele alarak sütun sınırının altında kalmaya çalışır. Bu dönüştürme işlemiyle sütun sayısı 10.000'in altına düşerse verileri BigQuery'ya yükleyebilirsiniz ancak harita alanlarındaki alt alanları sorgulayamazsınız. Sütun sayısı hâlâ 10.000'i aşıyorsa dışa aktarma işlemi, koleksiyon grubu için BigQuery şeması oluşturmaz ve verilerini BigQuery'ya yükleyemezsiniz.
Dışa aktarma biçimi ve meta veri dosyaları
Yönetilen dışa aktarma işleminin çıktısında LevelDB günlük biçimi kullanılır.
Meta veri dosyaları
Dışa aktarma işlemi, belirttiğiniz her koleksiyon grubu için bir meta veri dosyası oluşturur. Meta veri dosyaları genellikle ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata olarak adlandırılır.
Meta veri dosyaları protokol arabellekleridir ve bunları protoc protokol derleyicisi ile kodunu çözebilirsiniz.
Örneğin, dışa aktarılan dosyaların hangi koleksiyon gruplarını içerdiğini belirlemek için bir meta veri dosyasının kodunu çözebilirsiniz:
protoc --decode_raw < export0.export_metadata
Hizmet aracısı taşıma
Cloud Firestore, App Engine hizmet hesabını kullanmak yerine içe ve dışa aktarma işlemlerini yetkilendirmek için Cloud Firestore hizmet aracısını kullanır. Hizmet aracısı ve hizmet hesabı aşağıdaki adlandırma kurallarını kullanır:
- Cloud Firestore hizmet aracısı
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Cloud Firestore daha önce Cloud Firestore hizmet aracısı yerine App Engine varsayılan hizmet hesabını kullanıyordu. Veritabanınızda veri içe veya dışa aktarmak için hâlâ App Engine hizmet hesabı kullanılıyorsa Cloud Firestore hizmet aracısını kullanmaya geçmek için bu bölümdeki talimatları uygulamanızı öneririz.
- App Engine hizmet hesabı
PROJECT_ID@appspot.gserviceaccount.com
Cloud Firestore hizmet aracısı, Cloud Firestore'ya özgü olduğundan tercih edilir. App Engine hizmet hesabı birden fazla hizmet tarafından paylaşılıyor.
Yetkilendirme hesabını görüntüleme
Google Cloud Console'daki İçe/Dışa Aktarma sayfasında, içe ve dışa aktarma işlemlerinizin istekleri yetkilendirmek için hangi hesabı kullandığını görebilirsiniz. Veritabanınızın Cloud Firestore hizmet aracısını kullanıp kullanmadığını da görebilirsiniz.
-
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinden gerekli veritabanını seçin.
-
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
- İçe/dışa aktarma işleri şu şekilde çalıştırılır: etiketinin yanındaki yetkilendirme hesabını görüntüleyin.
Projenizde Cloud Firestore hizmet aracısı kullanılmıyorsa aşağıdaki tekniklerden birini kullanarak Cloud Firestore hizmet aracısına geçebilirsiniz:
- Cloud Storage grubu izinlerini kontrol edip güncelleyerek projeyi taşıma (önerilir).
- Kuruluş içindeki tüm projeleri etkileyen kuruluş genelinde bir politika kısıtlaması ekleyin.
Bu tekniklerden ilki, etki kapsamını tek bir Cloud Firestore projesiyle sınırladığı için tercih edilir. İkinci teknik, mevcut Cloud Storage grubu izinlerini taşımadığından tercih edilmez. Ancak kuruluş düzeyinde güvenlik uyumluluğu sunar.
Cloud Storage grubu izinlerini kontrol edip güncelleyerek taşıma
Taşıma işlemi iki adımdan oluşur:
- Cloud Storage grubu izinlerini güncelleyin. Ayrıntılar için aşağıdaki bölüme bakın.
- Cloud Firestore hizmet aracısına taşımayı onaylayın.
Hizmet aracısı paketi izinleri
Başka bir projede Cloud Storage grubu kullanan tüm dışa veya içe aktarma işlemleri için Cloud Firestore hizmet aracısına söz konusu grup için izinler vermeniz gerekir. Örneğin, verileri başka bir projeye taşıyan işlemlerin, söz konusu projedeki bir pakete erişmesi gerekir. Aksi takdirde, bu işlemler Cloud Firestorehizmet aracısına geçiş yapıldıktan sonra başarısız olur.
Aynı proje içinde kalan içe ve dışa aktarma iş akışları için izinlerde değişiklik yapılması gerekmez. Cloud Firestore hizmet aracısı, varsayılan olarak aynı projedeki paketlere erişebilir.
Diğer projelerdeki Cloud Storage paketlerinin izinlerini, service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com hizmet aracısına erişim verecek şekilde güncelleyin. Hizmet aracısına Firestore Service Agent rolünü verin.
Firestore Service Agent rolü, Cloud Storage paketinde okuma ve yazma izinleri verir. Yalnızca okuma veya yalnızca yazma izni vermeniz gerekiyorsa özel rol kullanın.
Aşağıdaki bölümde açıklanan taşıma işlemi, izin güncellemeleri gerektirebilecek Cloud Storage gruplarını belirlemenize yardımcı olur.
Projeyi Firestore hizmet aracısına taşıma
App Engine hizmet hesabından Cloud Firestore hizmet aracısına geçmek için aşağıdaki adımları tamamlayın. Taşıma işlemi tamamlandıktan sonra geri alınamaz.
-
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinden gerekli veritabanını seçin.
-
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
-
Projeniz henüz Cloud Firestore hizmet aracısına taşınmadıysa taşıma işlemini açıklayan bir banner ve Bucket Durumunu Kontrol Et düğmesi görürsünüz. Bir sonraki adım, olası izin hatalarını belirlemenize ve düzeltmenize yardımcı olur.
Paket Durumunu Kontrol Et'i tıklayın.
Taşıma işlemini tamamlama seçeneğinin ve Cloud Storage paketlerinin listesinin yer aldığı bir menü gösterilir. Listenin yüklenmesi birkaç dakika sürebilir.
Bu listede, yakın zamanda içe ve dışa aktarma işlemlerinde kullanılan ancak şu anda Cloud Firestore hizmet aracısına okuma ve yazma izni vermeyen paketler yer alır.
- Projenizin Cloud Firestore hizmet aracısının asıl adını not edin. Hizmet aracısı adı, Erişim verilecek hizmet aracısı etiketinin altında görünür.
-
Listede gelecekteki içe veya dışa aktarma işlemleri için kullanacağınız tüm paketler için aşağıdaki adımları uygulayın:
-
Bu paketin tablo satırında Düzelt'i tıklayın. Bu işlem, söz konusu paketin izinler sayfasını yeni bir sekmede açar.
- Ekle'yi tıklayın.
- Yeni ana hesaplar alanına Cloud Firestore hizmet aracınızın adını girin.
- Bir rol seçin alanında Hizmet Aracıları > Firestore Hizmet Aracı'yı seçin.
- Kaydet'i tıklayın.
- Cloud Firestore İçe/dışa aktarma sayfasının bulunduğu sekmeye dönün.
- Listedeki diğer gruplar için bu adımları tekrarlayın. Listenin tüm sayfalarını görüntülediğinizden emin olun.
-
-
Firestore Hizmet Aracısı'na taşı'yı tıklayın. İzin kontrolleri başarısız olan paketleriniz varsa Taşı'yı tıklayarak taşıma işlemini onaylamanız gerekir.
Taşıma işlemi tamamlandığında bir uyarı gösterilir. Taşıma işlemi geri alınamaz.
Taşıma durumunu görüntüleme
Projenizin taşıma durumunu doğrulamak için:
-
Google Cloud Console'da Veritabanları sayfasına gidin.
- Veritabanları listesinden gerekli veritabanını seçin.
-
Gezinme menüsünde İçe aktar/Dışa aktar'ı tıklayın.
-
İçe/dışa aktarma işleri şu kullanıcı olarak çalıştırılır: etiketinin yanındaki asıl kullanıcıyı bulun.
Asıl sorumlu
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.comise projeniz Cloud Firestore hizmet aracısına taşınmıştır. Taşıma işlemi geri alınamaz.Proje taşınmamışsa sayfanın üst kısmında Check Bucket Status (Paket Durumunu Kontrol Et) düğmesini içeren bir banner gösterilir. Taşıma işlemini tamamlamak için Firestore hizmet aracısına taşıma başlıklı makaleyi inceleyin.
Kuruluş genelinde geçerli bir politika kısıtlaması ekleme
-
Kuruluşunuzun politikasında aşağıdaki kısıtlamayı ayarlayın:
İçe/dışa aktarma için Firestore hizmet aracısı gerektir (
firestore.requireP4SAforImportExport).Bu kısıtlama, içe ve dışa aktarma işlemlerinin istekleri yetkilendirmek için Cloud Firestore hizmet aracısını kullanmasını gerektirir. Bu kısıtlamayı ayarlamak için Kuruluş politikaları oluşturma ve yönetme başlıklı makaleyi inceleyin.
Bu kuruluş politikası kısıtlamasının uygulanması, Cloud Firestore hizmet aracısı için uygun Cloud Storage grubu izinlerini otomatik olarak vermez.
Kısıtlama, içe veya dışa aktarma iş akışlarında izin hatalarına neden olursa varsayılan hizmet hesabını kullanmaya geri dönmek için kısıtlamayı devre dışı bırakabilirsiniz. Bucket izinlerini kontrol edip güncellediktenCloud Storage sonra kısıtlamayı tekrar etkinleştirebilirsiniz.