คุณสามารถใช้บริการนำเข้าและส่งออกที่มีการจัดการเพื่อกู้คืนข้อมูลจากการลบโดยไม่ตั้งใจและส่งออกข้อมูลสำหรับการประมวลผลแบบออฟไลน์ คุณส่งออกเอกสารทั้งหมดหรือเฉพาะคอลเล็กชันที่ต้องการได้ ในทำนองเดียวกัน คุณสามารถนำเข้าข้อมูลทั้งหมดจากการส่งออกหรือเฉพาะคอลเล็กชันที่ต้องการก็ได้ คุณสามารถนำเข้าข้อมูล ที่ส่งออกจากCloud Firestoreฐานข้อมูลหนึ่งไปยังอีกCloud Firestoreฐานข้อมูลหนึ่งได้ นอกจากนี้ คุณยังโหลด Cloud Firestoreการส่งออกลงใน BigQuery ได้ด้วย
หน้านี้อธิบายวิธีส่งออกและนำเข้าCloud Firestoreเอกสารโดยใช้
บริการส่งออกและนำเข้าที่มีการจัดการและ Cloud Storage
Cloud Firestoreบริการส่งออกและนำเข้าที่จัดการพร้อมให้บริการผ่าน
เครื่องมือบรรทัดคำสั่ง gcloud
และ API Cloud Firestore (REST, RPC)
ก่อนเริ่มต้น
ก่อนที่จะใช้บริการส่งออกและนำเข้าที่มีการจัดการได้ คุณต้องทำงานต่อไปนี้ให้เสร็จสมบูรณ์
- เปิดใช้ การเรียกเก็บเงินสำหรับโปรเจ็กต์ Google Cloud เฉพาะGoogle Cloud โปรเจ็กต์ที่เปิดใช้การเรียกเก็บเงินเท่านั้นที่ใช้ฟังก์ชันการส่งออกและนำเข้าได้
- สร้าง Cloud Storageที่เก็บข้อมูลสำหรับโปรเจ็กต์ในตำแหน่งที่อยู่ใกล้กับตำแหน่ง Cloud Firestoreฐานข้อมูล คุณไม่สามารถใช้ที่เก็บข้อมูลที่ ผู้ขอเป็นผู้ชำระเงินสำหรับการดำเนินการส่งออกและนำเข้า
-
ตรวจสอบว่าบัญชีของคุณมีสิทธิ์ที่จำเป็นสำหรับ Cloud Firestore และ Cloud Storage หากคุณเป็นเจ้าของโปรเจ็กต์ บัญชีของคุณจะมีสิทธิ์ที่จำเป็น หรือบทบาทต่อไปนี้ จะให้สิทธิ์ที่จำเป็นสำหรับการดำเนินการส่งออกและนำเข้า รวมถึง สิทธิ์เข้าถึง Cloud Storage
- บทบาท Cloud Firestore:
Owner,Cloud Datastore OwnerหรือCloud Datastore Import Export Admin บทบาท Cloud Storage
OwnerหรือStorage Admin
- บทบาท Cloud Firestore:
สิทธิ์ของตัวแทนบริการ
การดำเนินการส่งออกและนำเข้าจะใช้Cloud Firestore ตัวแทนบริการเพื่อ ให้สิทธิ์การดำเนินการ Cloud Storage Cloud Firestore ตัวแทนบริการ ใช้รูปแบบการตั้งชื่อต่อไปนี้
- ตัวแทนบริการ Cloud Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแทนบริการได้ที่ตัวแทนบริการ
ไม่ได้Cloud Firestore ตัวแทนบริการต้องมีสิทธิ์เข้าถึงที่เก็บข้อมูล Cloud Storageที่ใช้ในการดำเนินการส่งออกหรือนำเข้า หากที่เก็บข้อมูล Cloud Storageอยู่ในโปรเจ็กต์เดียวกับCloud Firestore ฐานข้อมูล Cloud Firestoreตัวแทนบริการจะเข้าถึงที่เก็บข้อมูลได้โดยค่าเริ่มต้น
หากที่เก็บข้อมูล Cloud Storage อยู่ในโปรเจ็กต์อื่น คุณต้องให้สิทธิ์เข้าถึงที่เก็บข้อมูล Cloud Storage แก่ตัวแทนบริการ Cloud Firestore
มอบหมายบทบาทให้กับตัวแทนบริการ
คุณใช้เครื่องมือบรรทัดคำสั่ง gsutil เพื่อ มอบหมายบทบาทใดบทบาทหนึ่งด้านล่างได้ เช่น หากต้องการมอบหมายบทบาทผู้ดูแลระบบพื้นที่เก็บข้อมูล ให้กับCloud Firestoreตัวแทนบริการ ให้เรียกใช้คำสั่งต่อไปนี้
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \ gs://[BUCKET_NAME]
แทนที่ PROJECT_NUMBER ด้วยหมายเลขโปรเจ็กต์ ซึ่งใช้เพื่อตั้งชื่อตัวแทนบริการ Cloud Firestore หากต้องการดูชื่อตัวแทนบริการ โปรดดูดูชื่อตัวแทนบริการ
หรือจะมอบหมายบทบาทนี้โดยใช้คอนโซล Google Cloud ก็ได้
ดูชื่อตัวแทนบริการ
คุณดูบัญชีที่การดำเนินการนำเข้าและส่งออกใช้เพื่อให้สิทธิ์ คำขอจากหน้านำเข้า/ส่งออกใน Google Cloud Console ได้ นอกจากนี้ คุณยังดูได้ว่าฐานข้อมูลใช้Cloud Firestore ตัวแทนบริการหรือบัญชีบริการApp Engineเดิม
- ดูบัญชีการให้สิทธิ์ข้างป้ายกำกับงานนำเข้า/ส่งออกที่เรียกใช้เป็น
ตัวแทนบริการต้องมีบทบาท Storage Admin สำหรับ Cloud Storage
บัคเก็ตที่จะใช้สำหรับการดำเนินการส่งออกหรือนำเข้า
ตั้งค่า gcloud สำหรับโปรเจ็กต์
คุณเริ่มการดำเนินการนำเข้าและส่งออกได้ผ่านคอนโซล Google Cloud หรือgcloudเครื่องมือบรรทัดคำสั่ง หากต้องการใช้ gcloud ให้ตั้งค่าเครื่องมือบรรทัดคำสั่ง
และเชื่อมต่อกับโปรเจ็กต์ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
เข้าถึง
gcloudจากคอนโซล Google Cloud โดยใช้ Cloud Shellตรวจสอบว่าได้กำหนดค่า
gcloudสำหรับโปรเจ็กต์ที่ถูกต้องแล้ว โดยทำดังนี้gcloud config set project [PROJECT_ID]
นำเข้าข้อมูล
เมื่อมีไฟล์ส่งออกใน Cloud Storage แล้ว คุณจะนำเข้าเอกสารในไฟล์เหล่านั้นกลับไปยังโปรเจ็กต์เดิมหรือโปรเจ็กต์อื่นได้ โปรดทราบประเด็นต่อไปนี้ เกี่ยวกับการดำเนินการนำเข้า
เมื่อนำเข้าข้อมูล ระบบจะอัปเดตดัชนีที่จำเป็นโดยใช้คำจำกัดความดัชนีปัจจุบันของฐานข้อมูล การส่งออกไม่มีคำจำกัดความดัชนี
การนำเข้าจะไม่กำหนดรหัสเอกสารใหม่ การนำเข้าใช้รหัสที่บันทึกไว้ ในเวลาที่ส่งออก ขณะที่นำเข้าเอกสาร ระบบจะสงวนรหัสของเอกสาร เพื่อป้องกันไม่ให้รหัสซ้ำกัน หากมีเอกสารที่มีรหัสเดียวกันอยู่แล้ว การนำเข้าจะเขียนทับเอกสารที่มีอยู่
หากเอกสารในฐานข้อมูลไม่ได้รับผลกระทบจากการนำเข้า เอกสารนั้นจะยังคงอยู่ในฐานข้อมูลหลังจากการนำเข้า
.overall_export_metadataชื่อไฟล์ต้องตรงกับชื่อของโฟลเดอร์หลักgs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadataหากย้ายหรือคัดลอกไฟล์เอาต์พุตของการส่งออก ให้เก็บชื่อไฟล์ PARENT_FOLDER_NAME และ
.overall_export_metadataไว้ให้เหมือนเดิมการนำเข้าไปยังCloud Firestoreฐานข้อมูลจากการส่งออกที่มีคอลเล็กชันย่อยจะล้มเหลวเนื่องจากCloud Firestoreไม่รองรับคอลเล็กชันย่อย
การนำเข้าไปยังฐานข้อมูลรุ่นมาตรฐานของ Cloud Firestore จากการส่งออกที่มี ประเภท BSON จะล้มเหลวเนื่องจากรุ่นมาตรฐานของ Cloud Firestore ไม่รองรับประเภท BSON
การนำเข้าไปยังCloud Firestoreฐานข้อมูลจะนำเข้าข้อมูลจากเนมสเปซที่ไม่ใช่ค่าเริ่มต้น (Datastore API) ไม่ได้
การนำเข้าไปยังCloud Firestoreฐานข้อมูลจากไฟล์ข้อมูลที่มีเนมสเปซที่ไม่ใช่ค่าเริ่มต้น จะได้รับอนุญาตก็ต่อเมื่อการดำเนินการส่งออกมีตัวกรอง
--namespace-idsที่มีเนมสเปซเริ่มต้น ระบบจะนำเข้าเฉพาะข้อมูลจากเนมสเปซเริ่มต้น
นำเข้าเอกสารทั้งหมดจากการส่งออก
Google Cloud Console
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
คลิกนำเข้า
ในช่องชื่อไฟล์ ให้ป้อนชื่อไฟล์ของไฟล์
.overall_export_metadataจากการดำเนินการส่งออกที่เสร็จสมบูรณ์ คุณใช้ปุ่มเรียกดูเพื่อช่วยเลือกไฟล์ได้คลิกนำเข้า
คอนโซลจะกลับไปที่หน้านำเข้า/ส่งออก หากการดำเนินการเริ่มต้นสำเร็จ หน้าเว็บจะเพิ่มรายการไปยังหน้านำเข้าและส่งออกล่าสุด หากไม่สำเร็จ หน้าเว็บจะแสดงข้อความแสดงข้อผิดพลาด
gcloud
ใช้คำสั่ง firestore import เพื่อนำเข้าเอกสารจากการดำเนินการส่งออกก่อนหน้า
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]
แทนที่ค่าต่อไปนี้
BUCKET_NAME/EXPORT_PREFIX: ตำแหน่งของ ไฟล์ที่ส่งออกDATABASE: ชื่อของฐานข้อมูล
เช่น
gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'
คุณยืนยันตำแหน่งของไฟล์ที่ส่งออกได้ใน Cloud Storageเบราว์เซอร์ในคอนโซล Google Cloud โดยทำดังนี้
เมื่อเริ่มการดำเนินการนำเข้าแล้ว การปิดเทอร์มินัลจะไม่ยกเลิกการดำเนินการ โปรดดูยกเลิกการดำเนินการ
นำเข้าคอลเล็กชันที่เฉพาะเจาะจง
Google Cloud Console
คุณเลือกคอลเล็กชันที่เฉพาะเจาะจงในคอนโซลไม่ได้ โปรดใช้ gcloud แทน
gcloud
หากต้องการนำเข้าคอลเล็กชันที่เฉพาะเจาะจงจากชุดไฟล์ส่งออก ให้ใช้แฟล็ก --collection-ids การดำเนินการจะนำเข้าเฉพาะคอลเล็กชันที่มีรหัสคอลเล็กชันที่ระบุเท่านั้น
ระบุชื่อฐานข้อมูลโดยใช้แฟล็ก --database
เฉพาะการส่งออกคอลเล็กชันที่เฉพาะเจาะจงเท่านั้นที่รองรับการนำเข้าคอลเล็กชันที่เฉพาะเจาะจง คุณจะนำเข้าคอลเล็กชันที่เฉพาะเจาะจงจากการส่งออกเอกสารทั้งหมดไม่ได้
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] \ --database=[DATABASE]
นำเข้าจากการส่งออกที่มีข้อมูล PITR
ทำตามขั้นตอนเดียวกับในนำเข้าเอกสารทั้งหมด หรือนำเข้าคอลเล็กชันที่เฉพาะเจาะจงเพื่อนำเข้าข้อมูล PITR หากมีเอกสารอยู่ในฐานข้อมูลแล้ว ระบบจะเขียนทับเอกสารนั้น
ส่งออกข้อมูล
การดำเนินการส่งออกจะคัดลอกเอกสารในฐานข้อมูลไปยังชุดไฟล์ในที่เก็บข้อมูล Cloud Storage โปรดทราบว่าการส่งออกไม่ใช่สแนปชอตฐานข้อมูลที่แน่นอนซึ่งถ่าย ในเวลาเริ่มต้นการส่งออก การส่งออกอาจรวมถึงการเปลี่ยนแปลงที่เกิดขึ้นขณะที่การดำเนินการ กำลังทำงานอยู่
ส่งออกเอกสารทั้งหมด
Google Cloud Console
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
คลิกส่งออก
คลิกตัวเลือกส่งออกทั้งฐานข้อมูล
เลือกส่งออกสถานะปัจจุบันของฐานข้อมูลเพื่อส่งออกข้อมูลปัจจุบัน
ในส่วนปลายทาง ให้ป้อนชื่อที่เก็บข้อมูล Cloud Storage หรือใช้ปุ่มเรียกดูเพื่อเลือกที่เก็บข้อมูล
คลิกส่งออก
คอนโซลจะกลับไปที่หน้านำเข้า/ส่งออก หากการดำเนินการเริ่มต้นสำเร็จ หน้าเว็บจะเพิ่มรายการไปยังหน้านำเข้าและส่งออกล่าสุด หากไม่สำเร็จ หน้าเว็บจะแสดงข้อความแสดงข้อผิดพลาด
gcloud
ใช้คำสั่ง firestore export เพื่อส่งออกเอกสารทั้งหมดในฐานข้อมูล โดยแทนที่ [BUCKET_NAME] ด้วยชื่อที่เก็บข้อมูล Cloud Storage เพิ่มแฟล็ก --async เพื่อป้องกันไม่ให้เครื่องมือ gcloud
รอให้การดำเนินการเสร็จสมบูรณ์
gcloud firestore export gs://[BUCKET_NAME] \ --database=[DATABASE]
แทนที่ค่าต่อไปนี้
BUCKET_NAME: จัดระเบียบการส่งออกโดยเพิ่มคำนำหน้าไฟล์หลังชื่อที่เก็บข้อมูล เช่นBUCKET_NAME/my-exports-folder/export-nameหากคุณไม่ระบุคำนำหน้าไฟล์ บริการส่งออกที่จัดการจะสร้างคำนำหน้าโดยอิงตามการประทับเวลาปัจจุบันDATABASE: ชื่อของฐานข้อมูลที่คุณต้องการส่งออก เอกสาร
เมื่อเริ่มการส่งออกแล้ว การปิดเทอร์มินัลจะไม่ยกเลิกการดำเนินการ โปรดดูยกเลิกการดำเนินการ
ส่งออกคอลเล็กชันที่เฉพาะเจาะจง
Google Cloud Console
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
คลิกส่งออก
คลิกตัวเลือกส่งออกกลุ่มคอลเล็กชันอย่างน้อย 1 กลุ่ม ใช้เมนูแบบเลื่อนลง เพื่อเลือกคอลเล็กชันอย่างน้อย 1 รายการ
เลือกส่งออกสถานะปัจจุบันของฐานข้อมูลเพื่อส่งออกข้อมูลปัจจุบัน
ในส่วนปลายทาง ให้ป้อนชื่อที่เก็บข้อมูล Cloud Storage หรือใช้ปุ่มเรียกดูเพื่อเลือกที่เก็บข้อมูล
คลิกส่งออก
คอนโซลจะกลับไปที่หน้านำเข้า/ส่งออก หากการดำเนินการเริ่มต้นสำเร็จ หน้าเว็บจะเพิ่มรายการไปยังหน้านำเข้าและส่งออกล่าสุด หากไม่สำเร็จ หน้าเว็บจะแสดงข้อความแสดงข้อผิดพลาด
gcloud
หากต้องการส่งออกคอลเล็กชันที่เฉพาะเจาะจง ให้ใช้แฟล็ก --collection-ids การดำเนินการจะส่งออกเฉพาะ
คอลเล็กชันที่มีรหัสคอลเล็กชันที่ระบุเท่านั้น
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2] \ --database=[DATABASE]
เช่น คุณสามารถออกแบบrestaurantsคอลเล็กชันในฐานข้อมูล foo ให้รวมคอลเล็กชันเพิ่มเติม เช่น ratings, reviews หรือ outlets หากต้องการส่งออกคอลเล็กชัน restaurants และ reviews ที่เฉพาะเจาะจง คำสั่งจะมีลักษณะดังนี้
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=restaurants,reviews \ --database='cymbal'
ส่งออกจากการประทับเวลา PITR
คุณสามารถส่งออกฐานข้อมูลไปยัง Cloud Storage จากข้อมูล PITR ได้
คุณสามารถส่งออกข้อมูล PITR ที่การประทับเวลาเป็นแบบเต็มนาทีภายใน 7 วันที่ผ่านมา แต่ไม่เร็วกว่าวันที่ earliestVersionTime หากข้อมูลไม่มี
อยู่อีกต่อไปที่การประทับเวลาที่ระบุ การดำเนินการส่งออกจะล้มเหลว
การดำเนินการส่งออก PITR รองรับตัวกรองทั้งหมด รวมถึงการส่งออกเอกสารทั้งหมดและการส่งออกคอลเล็กชันที่เฉพาะเจาะจง
โปรดทราบประเด็นต่อไปนี้ก่อนส่งออกข้อมูล PITR
- ระบุการประทับเวลาในรูปแบบ RFC 3339 เช่น
2020-09-01T23:59:30.234233Z - ตรวจสอบว่าการประทับเวลาที่คุณระบุเป็นการประทับเวลาแบบเต็มนาที
ภายใน 7 วันที่ผ่านมา แต่ไม่เร็วกว่า
earliestVersionTimeหากไม่มีข้อมูลที่ การประทับเวลาที่ระบุแล้ว ระบบจะสร้างข้อผิดพลาด - ระบบจะไม่เรียกเก็บเงินจากคุณสำหรับการส่งออก PITR ที่ไม่สำเร็จ
คอนโซล
-
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
ไปที่ฐานข้อมูล - เลือกฐานข้อมูลจากรายการฐานข้อมูล
- ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
- คลิกส่งออก
- กําหนดค่าแหล่งที่มาของการส่งออกเพื่อส่งออกทั้งฐานข้อมูลหรือเฉพาะคอลเล็กชันที่ต้องการ
ในส่วนเลือกสถานะของฐานข้อมูลที่จะส่งออก ให้เลือกส่งออกจากจุดก่อนหน้า
เลือกเวลาของสแนปชอตที่จะใช้สำหรับการส่งออก
- ในส่วนปลายทาง ให้ป้อนชื่อCloud Storage ที่เก็บข้อมูล หรือใช้ปุ่มเรียกดูเพื่อเลือกที่เก็บข้อมูล
-
คลิกส่งออก
คอนโซลจะกลับไปที่หน้านำเข้า/ส่งออก หากการดำเนินการเริ่มต้นสำเร็จ หน้าเว็บจะเพิ่มรายการไปยังหน้านำเข้าและส่งออกล่าสุด หากไม่สำเร็จ หน้าเว็บจะแสดงข้อความแสดงข้อผิดพลาด
gcloud
คุณสามารถส่งออกฐานข้อมูลไปยัง Cloud Storage จากข้อมูล PITR ได้โดยใช้คำสั่ง gcloud firestore export
ส่งออกฐานข้อมูลโดยระบุพารามิเตอร์ snapshot-time เป็นการประทับเวลาการกู้คืน เรียกใช้คำสั่งต่อไปนี้เพื่อส่งออกฐานข้อมูลไปยังที่เก็บข้อมูล
gcloud firestore export gs://[BUCKET_NAME_PATH] \ --snapshot-time=[PITR_TIMESTAMP]
โดย PITR_TIMESTAMP คือการประทับเวลา PITR ที่ระดับนาที เช่น 2023-05-26T10:20:00.00Z
เพิ่มแฟล็ก --collection-ids เพื่อส่งออกคอลเล็กชันที่เฉพาะเจาะจง
จัดการการดำเนินการส่งออกและนำเข้า
หลังจากเริ่มการดำเนินการส่งออกหรือนำเข้าแล้ว Cloud Firestore จะกำหนดชื่อที่ไม่ซ้ำกันให้กับการดำเนินการ คุณใช้ชื่อการดำเนินการเพื่อลบ ยกเลิก หรือตรวจสอบสถานะการดำเนินการได้
ชื่อการดำเนินการจะมีคำนำหน้าเป็น projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
เช่น
projects/my-project/databases/my-database/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
อย่างไรก็ตาม คุณสามารถละเว้นคำนำหน้าเมื่อระบุชื่อการดำเนินการสำหรับคำสั่ง describe, cancel และ delete
แสดงการดำเนินการส่งออกและนำเข้าทั้งหมด
Google Cloud Console
คุณดูรายการการดำเนินการส่งออกและนำเข้าล่าสุดได้ในหน้านำเข้า/ส่งออกของคอนโซล Google Cloud
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
gcloud
ใช้คำสั่ง operations list เพื่อดูการดำเนินการส่งออกและนำเข้าทั้งหมดที่กำลังทำงานอยู่และ
ที่เพิ่งเสร็จสมบูรณ์
gcloud firestore operations list
ตรวจสอบสถานะการดำเนินการ
Google Cloud Console
คุณดูสถานะของการดำเนินการส่งออกหรือนำเข้าล่าสุดได้ในหน้านำเข้า/ส่งออกของคอนโซล Google Cloud
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
gcloud
ใช้คำสั่ง operations describe เพื่อแสดงสถานะของการดำเนินการส่งออก
หรือนำเข้า
gcloud firestore operations describe [OPERATION_NAME]
ประเมินเวลาที่ใช้ในการดำเนินการให้เสร็จสมบูรณ์
คำขอสถานะของการดำเนินการที่ใช้เวลานานจะแสดงผลเมตริก
workEstimated และ workCompleted ระบบจะแสดงเมตริกแต่ละรายการเหล่านี้ทั้งใน
จำนวนไบต์และจำนวนเอนทิตี
workEstimatedแสดงจำนวนไบต์และเอกสารทั้งหมดโดยประมาณที่การดำเนินการจะประมวลผล Cloud Firestore อาจละเว้นเมตริกนี้หาก ประมาณค่าไม่ได้workCompletedแสดงจำนวนไบต์และเอกสารที่ประมวลผลแล้วจนถึงตอนนี้ หลังจากดำเนินการเสร็จสมบูรณ์ ค่าจะแสดงจำนวนไบต์และเอกสารทั้งหมดที่ประมวลผลจริง ซึ่งอาจมากกว่าค่าของworkEstimated
นำ workCompleted มาหารด้วย workEstimated เพื่อดูความคืบหน้าโดยประมาณ การประมาณนี้อาจไม่ถูกต้องเนื่องจากขึ้นอยู่กับการรวบรวมสถิติที่ล่าช้า
ยกเลิกการดำเนินการ
Google Cloud Console
คุณยกเลิกการดำเนินการส่งออกหรือนำเข้าที่กำลังทำงานได้ในหน้านำเข้า/ส่งออกของ Google Cloud Console
ในคอนโซล Google Cloud ให้ไปที่หน้าฐานข้อมูล
เลือกฐานข้อมูลที่ต้องการจากรายการฐานข้อมูล
ในเมนูการนำทาง ให้คลิกนำเข้า/ส่งออก
ในตารางการนำเข้าและส่งออกล่าสุด การดำเนินการที่กำลังทำงานอยู่จะมีปุ่มยกเลิกในคอลัมน์เสร็จสมบูรณ์ คลิกปุ่ม ยกเลิกเพื่อหยุดการดำเนินการ ปุ่มจะเปลี่ยนเป็นข้อความกำลังยกเลิก แล้วเปลี่ยนเป็นยกเลิกแล้วเมื่อการดำเนินการหยุดโดยสมบูรณ์

gcloud
ใช้คำสั่ง operations cancel เพื่อหยุดการดำเนินการที่กำลังดำเนินการอยู่
gcloud firestore operations cancel [OPERATION_NAME]
การยกเลิกการดำเนินการที่กำลังทำงานอยู่จะไม่ยกเลิกการดำเนินการ การดำเนินการส่งออกที่ยกเลิกแล้ว จะทำให้เอกสารที่ส่งออกแล้วยังคงอยู่ใน Cloud Storage และการดำเนินการนำเข้าที่ยกเลิกแล้ว จะทำให้การอัปเดตที่ทำกับฐานข้อมูลแล้วยังคงอยู่ คุณ นำเข้าการส่งออกที่ยังไม่เสร็จสมบูรณ์บางส่วนไม่ได้
ลบการดำเนินการ
ใช้คำสั่ง gcloud firestore operations delete เพื่อนำการดำเนินการออกจากรายการการดำเนินการล่าสุด คำสั่งนี้จะไม่ลบ
ไฟล์ที่ส่งออกจาก Cloud Storage
gcloud firestore operations delete [OPERATION_NAME]
การเรียกเก็บเงินและการกำหนดราคาสำหรับการดำเนินการส่งออกและนำเข้า
คุณต้องเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Google Cloud ก่อนจึงจะใช้บริการส่งออกและนำเข้าที่มีการจัดการได้
ระบบจะเรียกเก็บเงินสำหรับการดำเนินการส่งออกและนำเข้า สำหรับหน่วยการอ่านและหน่วยการเขียนตามอัตราที่ระบุไว้ในCloud Firestoreราคา
ไฟล์เอาต์พุตที่จัดเก็บไว้ใน Cloud Storage จะนับรวมในCloud Storageค่าใช้จ่ายในการจัดเก็บข้อมูล
การดำเนินการส่งออกหรือนำเข้าจะไม่ทริกเกอร์การแจ้งเตือนGoogle Cloudงบประมาณจนกว่าจะเสร็จสมบูรณ์ การดำเนินการส่งออกและนำเข้า จะไม่ส่งผลต่อการใช้งานที่แสดงในส่วนการใช้งานของคอนโซล
การดูต้นทุนการส่งออกและนำเข้า
การดำเนินการส่งออกและนำเข้าจะใช้goog-firestoremanaged:exportimport
ป้ายกำกับกับการดำเนินการที่เรียกเก็บเงิน ในหน้ารายงานการเรียกเก็บเงินใน Cloud
คุณสามารถใช้ป้ายกำกับนี้เพื่อดูค่าใช้จ่ายที่เกี่ยวข้องกับการดำเนินการนำเข้าและส่งออกได้

ส่งออกไปยัง BigQuery
คุณโหลดข้อมูลจากการส่งออก Cloud Firestore ไปยัง BigQuery ได้
แต่จะทำได้ก็ต่อเมื่อคุณระบุตัวกรอง collection-ids เท่านั้น ดูการโหลดข้อมูลจากการส่งออกของ Cloud Firestore
เมื่อโหลดข้อมูล Cloud Firestore ลงใน BigQuery ระบบจะแสดงประเภทข้อมูล BSON ด้วยประเภทข้อมูล STRING
ขีดจำกัดของคอลัมน์ BigQuery
BigQuery กำหนดขีดจำกัดคอลัมน์ไว้ที่ 10,000 คอลัมน์ต่อตาราง Cloud Firestore การดำเนินการส่งออกจะสร้างสคีมาBigQueryตาราง สำหรับแต่ละคอลเล็กชัน ในสคีมานี้ ชื่อฟิลด์ที่ไม่ซ้ำกันแต่ละชื่อภายในคอลเล็กชันจะกลายเป็นคอลัมน์สคีมา
หากสคีมา BigQuery ของคอลเล็กชันมีคอลัมน์เกิน 10,000 คอลัมน์ Cloud Firestore การดำเนินการส่งออกจะพยายามไม่ให้เกินขีดจำกัดของคอลัมน์ โดยถือว่าฟิลด์แผนที่เป็นไบต์ หากการแปลงนี้ทำให้จำนวนคอลัมน์ต่ำกว่า 10,000 คุณจะโหลดข้อมูลลงใน BigQuery ได้ แต่จะค้นหาฟิลด์ย่อยภายในฟิลด์แผนที่ไม่ได้ หากจำนวนคอลัมน์ยังคงเกิน 10,000 รายการ การดำเนินการส่งออกจะไม่ สร้างBigQueryสคีมาสำหรับคอลเล็กชัน และคุณจะโหลด ข้อมูลลงใน BigQuery ไม่ได้
รูปแบบการส่งออกและไฟล์ข้อมูลเมตา
เอาต์พุตของการส่งออกที่มีการจัดการจะใช้รูปแบบบันทึก LevelDB
ไฟล์ข้อมูลเมตา
การดำเนินการส่งออกจะสร้างไฟล์ข้อมูลเมตาสำหรับแต่ละคอลเล็กชัน
ที่คุณระบุ โดยปกติแล้วไฟล์ข้อมูลเมตาจะมีชื่อว่า
ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata
ไฟล์ข้อมูลเมตาเป็นบัฟเฟอร์โปรโตคอลและคุณสามารถถอดรหัสได้ด้วยprotocคอมไพเลอร์โปรโตคอล
เช่น คุณสามารถถอดรหัสไฟล์ข้อมูลเมตาเพื่อระบุคอลเล็กชัน
ที่ไฟล์ส่งออกมีได้โดยทำดังนี้
protoc --decode_raw < export0.export_metadata