Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Verileri dışa ve içe aktarma

Verilerin yanlışlıkla silinmesini önlemek ve verileri çevrimdışı işlemek üzere dışa aktarmak için Cloud Firestore tarafından yönetilen dışa aktarma ve içe aktarma hizmetini kullanabilirsiniz. Tüm belgeleri veya yalnızca belirli koleksiyonları dışa aktarabilirsiniz. Aynı şekilde, bir dışa aktarmadaki tüm verileri veya yalnızca belirli koleksiyonları içe aktarabilirsiniz. Bir Cloud Firestore veritabanından dışa aktarılan veriler, başka bir Cloud Firestore veritabanına aktarılabilir. Cloud Firestore dışa aktarımlarını BigQuery'ye de yükleyebilirsiniz .

Bu sayfada, yönetilen dışa aktarma ve içe aktarma hizmetini ve Cloud Storage'ı kullanarak Cloud Firestore belgelerinin nasıl dışa ve içe aktarılacağı açıklanmaktadır. Cloud Firestore tarafından yönetilen dışa aktarma ve içe aktarma hizmeti, gcloud komut satırı aracı ve Cloud Firestore API'si ( REST , RPC ) aracılığıyla kullanılabilir.

Sen başlamadan önce

Yönetilen dışa aktarma ve içe aktarma hizmetini kullanmadan önce aşağıdaki görevleri tamamlamanız gerekir:

  1. Google Cloud projeniz için faturalandırmayı etkinleştirin. Yalnızca faturalandırmanın etkinleştirildiği Google Cloud projeleri dışa aktarma ve içe aktarma işlevini kullanabilir.
  2. Projeniz için Cloud Firestore veritabanı konumunuza yakın bir konumda bir Cloud Storage paketi oluşturun . İhracat ve ithalat işlemleri için Talep Eden Öder paketini kullanamazsınız.
  3. Hesabınızın Cloud Firestore ve Cloud Storage için gerekli izinlere sahip olduğundan emin olun. Proje sahibiyseniz, hesabınız gerekli izinlere sahiptir. Aksi takdirde, aşağıdaki roller, dışa aktarma ve içe aktarma işlemleri ve Cloud Storage'a erişim için gerekli izinleri verir:

Varsayılan hizmet hesabı izinleri

Her Google Cloud projesi otomatik olarak PROJECT_ID @appspot.gserviceaccount.com adında bir varsayılan hizmet hesabı oluşturur. Dışa aktarma ve içe aktarma işlemleri, Bulut Depolama işlemlerini yetkilendirmek için bu hizmet hesabını kullanır.

Projenizin varsayılan hizmet hesabı, bir dışa aktarma veya içe aktarma işleminde kullanılan Bulut Depolama paketine erişim gerektirir. Cloud Storage paketiniz, Cloud Firestore veritabanınızla aynı projedeyse varsayılan hizmet hesabının varsayılan olarak pakete erişimi vardır .

Cloud Storage paketi başka bir projedeyse Cloud Storage paketine varsayılan hizmet hesabına erişim vermelisiniz.

Bulut Depolama paketinin dışa aktarma veya içe aktarma işlemi için kullanılması için hizmet hesabının Storage Admin rolüne ihtiyacı vardır.

App Engine varsayılan hizmet hesabınızı devre dışı bırakır veya silerseniz App Engine uygulamanız Cloud Firestore veritabanınıza erişimi kaybeder. App Engine hizmet hesabınızı devre dışı bıraktıysanız, yeniden etkinleştirebilirsiniz, bkz. bir hizmet hesabını etkinleştirme . App Engine hizmet hesabınızı son 30 gün içinde sildiyseniz, hizmet hesabınızı geri yükleyebilirsiniz, bkz. bir hizmet hesabını silmeyi geri alma .

gcloud için gcloud kurun

Google Cloud Platform Konsolu veya gcloud komut satırı aracı aracılığıyla içe ve dışa aktarma işlemlerini başlatabilirsiniz. gcloud kullanmak için komut satırı aracını kurun ve aşağıdaki yollardan biriyle projenize bağlanın:

Verileri dışa aktar

Dışa aktarma işlemi, veritabanınızdaki belgeleri bir Cloud Storage paketindeki bir dizi dosyaya kopyalar. Dışa aktarmanın, 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şlem çalışırken yapılan değişiklikleri içerebilir.

Tüm belgeleri dışa aktar

Google Bulut Konsolu

  1. Google Cloud Platform Console'da Cloud Firestore İçe/Dışa Aktar sayfasına gidin.

    İçe/Dışa Aktar sayfasına gidin

  2. Dışa Aktar 'ı tıklayın.

  3. Tüm veritabanını dışa aktar seçeneğini tıklayın.

  4. Hedef Seçin altında, bir Bulut Depolama paketinin adını girin veya bir paket seçmek için Gözat düğmesini kullanın.

  5. Dışa Aktar 'ı tıklayın.

Konsol, İçe/Dışa Aktar sayfasına döner. İşlem başarılı bir şekilde başlarsa sayfa, son içe ve dışa aktarma sayfasına bir giriş ekler. Başarısızlık durumunda, sayfa bir hata mesajı görüntüler.

gcloud

Veritabanınızdaki tüm belgeleri dışa aktarmak için [BUCKET_NAME] Bulut Depolama [BUCKET_NAME] adıyla değiştirerek firestore export komutunu kullanın. gcloud aracının işlemin tamamlanmasını beklemesini önlemek için --async bayrağını ekleyin.

gcloud firestore export gs://[BUCKET_NAME]

BUCKET_NAME/my-exports-folder/export-name adından sonra bir dosya öneki ekleyerek dışa aktarmalarınızı düzenleyebilirsiniz, örneğin BUCKET_NAME/my-exports-folder/export-name . Bir dosya öneki sağlamazsanız, yönetilen dışa aktarma hizmeti geçerli zaman damgasına göre bir dosya öneki oluşturur.

Bir dışa aktarma işlemi başlattığınızda, terminalin kapatılması işlemi iptal etmez, bkz. bir işlemi iptal etme .

Belirli koleksiyonları dışa aktar

Google Bulut Konsolu

  1. Google Cloud Platform Console'da Cloud Firestore İçe/Dışa Aktar sayfasına gidin.

    İçe/Dışa Aktar sayfasına gidin

  2. Dışa Aktar 'ı tıklayın.

  3. 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 açılır menüyü kullanın.

  4. Hedef Seçin altında, bir Bulut Depolama paketinin adını girin veya bir paket seçmek için Gözat düğmesini kullanın.

  5. Dışa Aktar 'ı tıklayın.

Konsol, İçe/Dışa Aktar sayfasına döner. İşlem başarılı bir şekilde başlarsa sayfa, son içe ve dışa aktarma sayfasına bir giriş ekler. Başarısızlık durumunda, sayfa bir hata mesajı görüntüler.

gcloud

Belirli koleksiyon gruplarını dışa aktarmak için --collection-ids bayrağını kullanın. İşlem, yalnızca verilen koleksiyon kimliklerine sahip koleksiyon gruplarını dışa aktarır. Koleksiyon grubu, belirtilen koleksiyon kimliğine sahip tüm koleksiyonları ve alt koleksiyonları (herhangi bir yolda) içerir.

gcloud firestore export gs://[BUCKET_NAME] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Verileri içe aktar

Cloud Storage'da dışa aktarma dosyalarınız olduğunda, bu dosyalardaki belgeleri tekrar projenize veya başka bir projeye aktarabilirsiniz. İçe aktarma işlemleriyle ilgili aşağıdaki noktalara dikkat edin:

  • Verileri içe aktardığınızda, gerekli dizinler, veritabanınızın geçerli dizin tanımları kullanılarak güncellenir. Dışa aktarma, dizin tanımlarını içermez.

  • İçe aktarmalar, yeni belge kimlikleri atamaz. İçe aktarmalar, dışa aktarma sırasında yakalanan kimlikleri kullanır. Bir belge içe aktarılırken kimliği, kimlik çakışmalarını önlemek için ayrılmıştır. Aynı kimliğe sahip bir belge zaten varsa, içe aktarma mevcut belgenin üzerine yazar.

  • Veritabanınızdaki bir belge içe aktarma işleminden etkilenmiyorsa, 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üncellemeleri alır.

Bir dışa aktarmadan tüm belgeleri içe aktarma

Google Bulut Konsolu

  1. Google Cloud Platform Console'da Cloud Firestore İçe/Dışa Aktar sayfasına gidin.

    İçe/Dışa Aktar sayfasına gidin

  2. İçe Aktar'ı tıklayın.

  3. Dosya adı alanına, tamamlanmış bir dışa aktarma .overall_export_metadata bir .overall_export_metadata dosyasının dosya .overall_export_metadata girin. Dosyayı seçmenize yardımcı olması için Gözat düğmesini kullanabilirsiniz.

  4. İçe Aktar'ı tıklayın.

Konsol, İçe/Dışa Aktar sayfasına döner. İşlem başarılı bir şekilde başlarsa sayfa, son içe ve dışa aktarma sayfasına bir giriş ekler. Başarısızlık durumunda, sayfa bir hata mesajı görüntüler.

gcloud

Önceki bir dışa aktarma firestore import belgeleri firestore import için firestore import komutunu kullanın.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/

[BUCKET_NAME] ve [EXPORT_PREFIX] , dışa aktarma dosyalarınızın konumunu gösterir. Örneğin:

gcloud firestore import gs://exports-bucket/2017-05-25T23:54:39_76544/

Dışa aktarma dosyalarınızın konumunu Google Cloud Platform Console'daki Bulut Depolama tarayıcısında onaylayabilirsiniz:

Bulut Depolama tarayıcısını açın

Bir içe aktarma işlemi başlattığınızda, terminalin kapatılması işlemi iptal etmez, bkz. bir işlemi iptal etme .

Belirli koleksiyonları içe aktar

Google Bulut Konsolu

Konsolda belirli koleksiyonları seçemezsiniz. gcloud yerine gcloud kullanın.

gcloud

Bir dizi dışa aktarma dosyasından belirli koleksiyon gruplarını içe aktarmak için --collection-ids bayrağını kullanın. İşlem, yalnızca verilen koleksiyon kimliklerine sahip koleksiyon gruplarını içe aktarır. Koleksiyon grubu, belirtilen koleksiyon kimliğine sahip tüm koleksiyonları ve alt koleksiyonları (herhangi bir yolda) içerir.

Yalnızca belirli koleksiyon gruplarının dışa aktarılması, belirli koleksiyon gruplarının içe aktarılmasını destekler. Tüm belgelerin dışa aktarımından belirli koleksiyonları içe aktaramazsınız.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

İhracat ve ithalat operasyonlarını yönetmek

Bir 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 durumu 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 bir işlem adı belirlerken öneki dışarıda bırakabilirsiniz.

Tüm ihracat ve ithalat işlemlerini listeleyin

Google Bulut Konsolu

Google Cloud Platform Console'un Cloud Firestore İçe/Dışa Aktarma sayfasında en son dışa aktarma ve içe aktarma işlemlerinin bir listesini görüntüleyebilirsiniz.

İçe/Dışa Aktar sayfasına gidin

gcloud

Çalışan ve yakın zamanda tamamlanan tüm dışa aktarma ve içe aktarma işlemlerini görmek için operations list komutunu kullanın:

gcloud firestore operations list

İşlem durumunu kontrol edin

Google Bulut Konsolu

Google Cloud Platform Console'un Cloud Firestore İçe/Dışa Aktarma sayfasında yakın zamanda gerçekleşen bir dışa aktarma veya içe aktarma işleminin durumunu görüntüleyebilirsiniz.

İçe/Dışa Aktar sayfasına gidin

gcloud

Bir dışa aktarma 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 edin

Uzun süredir devam eden bir işlemin durumu için bir istek, workEstimated ve workCompleted metriklerini döndürür. Bu metriklerin her biri hem bayt sayısı hem de varlık 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.

  • workCompleted , o ana kadar işlenen bayt ve belge sayısını gösterir. İşlem tamamlandıktan sonra değer, workEstimated değerinden daha büyük olabilecek, fiilen işlenen toplam bayt ve belge sayısını gösterir.

workCompleted göre workEstimated Kaba bir ilerleme tahmini için tahmini. Bu tahmin, gecikmiş istatistik toplamaya bağlı olduğundan yanlış olabilir.

Bir işlemi iptal et

Google Bulut Konsolu

Google Cloud Platform Console'un Cloud Firestore İçe/Dışa Aktarma sayfasında devam eden bir dışa aktarma veya içe aktarma işlemini iptal edebilirsiniz.

İçe/Dışa Aktar sayfasına gidin

Son içe ve dışa aktarmalar tablosunda, şu anda yürütülen işlemler, Tamamlandı sütununda bir İptal düğmesi içerir. İşlemi durdurmak için İptal düğmesine tıklayın. Düğme, İptal ediliyor mesajına ve ardından işlem tamamen durduğunda İptal Edildi olarak değişir.

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, Bulut Depolama'da zaten dışa aktarılmış olan belgeleri bırakır ve iptal edilen bir içe aktarma işlemi, veritabanınızda önceden yapılmış güncellemeleri yerinde bırakır. Kısmen tamamlanmış bir dışa aktarmayı içe aktaramazsınız.

Bir işlemi sil

Son işlemler listesinden bir işlemi kaldırmak için gcloud firestore operations delete komutunu kullanın. Bu komut, dışa aktarma dosyalarını Cloud Storage'dan silmez.

gcloud firestore operations delete [OPERATION_NAME]

İhracat ve ithalat işlemleri için faturalandırma ve fiyatlandırma

Yönetilen dışa aktarma ve içe aktarma hizmetini kullanmadan önce Google Cloud projeniz için faturalandırmayı etkinleştirmeniz gerekir. Belge okuma ve yazma işlemleri için dışa aktarma ve içe aktarma işlemleri, Cloud Firestore fiyatlandırmasında listelenen fiyatlar üzerinden ücretlendirilir .

İhracat ve ithalat işlemlerinin maliyetleri harcama limitinize dahil değildir . Dışa aktarma veya içe aktarma işlemleri, tamamlanana kadar Google Cloud bütçe uyarılarınızı tetiklemeyecektir. Benzer şekilde, bir dışa aktarma veya içe aktarma işlemi sırasında gerçekleştirilen okuma ve yazma işlemleri, işlem tamamlandıktan sonra günlük kotanıza uygulanır. Dışa aktarma ve içe aktarma işlemleri, konsolun kullanım bölümünde gösterilen kullanımı etkilemeyecektir.

İhracat ve ithalat maliyetlerini görüntüleme

Dışa aktarma ve içe aktarma işlemleri, faturalandırılan işlemlere goog-firestoremanaged:exportimport etiketini uygular. Bulut Faturalandırma raporları sayfasında , ithalat ve ihracat işlemleriyle ilgili maliyetleri görüntülemek için bu etiketi kullanabilirsiniz:

Filtreler menüsünden goog-firestoremanaged etiketine erişin.

BigQuery'ye aktar

Bir Cloud Firestore dışa aktarımından BigQuery'ye veri yükleyebilirsiniz, ancak bu yalnızca bir collection-ids filtresi belirttiyseniz. Cloud Firestore dışa aktarmalarından veri yükleme konusuna bakın.

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 BigQuery tablosu şeması oluşturur. Bu şemada, bir koleksiyon grubu içindeki her benzersiz alan adı bir şema sütunu olur.

Bir koleksiyon grubunun BigQuery şeması 10.000 sütunu aşarsa Cloud Firestore dışa aktarma işlemi, harita alanlarını bayt olarak değerlendirerek sütun sınırının altında kalmaya çalışır. Bu dönüşüm, sütun sayısını 10.000'in altına getirirse, verileri BigQuery'ye yükleyebilirsiniz ancak harita alanlarındaki alt alanları sorgulayamazsınız. Sütun sayısı yine de 10.000'i aşarsa dışa aktarma işlemi, koleksiyon grubu için bir BigQuery şeması oluşturmaz ve verilerini BigQuery'ye yükleyemezsiniz.

Biçim ve meta veri dosyalarını dışa aktarma

Yönetilen dışa aktarmanın çıktısı, LevelDB günlük biçimini kullanı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ın kodunu protoc protokol derleyicisi ile çözebilirsiniz. Örneğin, dışa aktarma dosyalarının içerdiği koleksiyon gruplarını belirlemek için bir meta veri dosyasının kodunu çözebilirsiniz:

protoc --decode_raw < export0.export_metadata