เกี่ยวข้องกับ Cloud Firestore Enterprise Edition เท่านั้น |
คุณสามารถใช้บริการนำเข้าและส่งออกที่มีการจัดการเพื่อกู้คืนข้อมูลจากการลบโดยไม่ตั้งใจและส่งออกข้อมูลสำหรับการประมวลผลแบบออฟไลน์ คุณส่งออกเอกสารทั้งหมดหรือเฉพาะคอลเล็กชันที่ต้องการได้ ในทำนองเดียวกัน คุณสามารถนำเข้าข้อมูลทั้งหมดจากการส่งออกหรือเฉพาะคอลเล็กชันที่ต้องการก็ได้ ข้อมูลที่ส่งออกจาก Cloud Firestore ที่เข้ากันได้กับฐานข้อมูล MongoDB สามารถนำเข้าไปยัง Cloud Firestore ที่เข้ากันได้กับฐานข้อมูล MongoDB อื่นได้ นอกจากนี้ คุณยังโหลด Cloud Firestore ที่มีการส่งออกที่เข้ากันได้กับ MongoDB ลงใน BigQuery ได้ด้วย
หน้านี้อธิบายวิธีส่งออกและนำเข้า Cloud Firestore ด้วยเอกสารความเข้ากันได้ของ MongoDB โดยใช้
บริการส่งออกและนำเข้าที่มีการจัดการ รวมถึง Cloud Storage บริการส่งออกและนำเข้าที่มีการจัดการซึ่งเข้ากันได้กับ Cloud Firestore และ MongoDB พร้อมให้บริการผ่านเครื่องมือบรรทัดคำสั่ง gcloud
และ API ของ Cloud Firestore ที่เข้ากันได้กับ MongoDB (REST, RPC)
ก่อนเริ่มต้น
ก่อนที่จะใช้บริการส่งออกและนำเข้าที่มีการจัดการได้ คุณต้องทำงานต่อไปนี้ให้เสร็จสมบูรณ์
- เปิดใช้ การเรียกเก็บเงินสำหรับโปรเจ็กต์ Google Cloud เฉพาะGoogle Cloud โปรเจ็กต์ที่เปิดใช้การเรียกเก็บเงินเท่านั้นที่ใช้ฟังก์ชันการส่งออกและนำเข้าได้
- สร้างที่เก็บข้อมูล Cloud Storage สำหรับโปรเจ็กต์ในตำแหน่งที่อยู่ใกล้กับตำแหน่งฐานข้อมูล Cloud Firestore ที่เข้ากันได้กับ MongoDB คุณไม่สามารถใช้ที่เก็บข้อมูลที่ ผู้ขอเป็นผู้ชำระเงินสำหรับการดำเนินการส่งออกและนำเข้า
-
ตรวจสอบว่าบัญชีของคุณมีสิทธิ์ที่จำเป็นสำหรับ Cloud Firestore ที่เข้ากันได้กับ MongoDB และ Cloud Storage หากคุณเป็นเจ้าของโปรเจ็กต์ บัญชีของคุณจะมีสิทธิ์ที่จำเป็น หรือบทบาทต่อไปนี้ จะให้สิทธิ์ที่จำเป็นสำหรับการดำเนินการส่งออกและนำเข้า รวมถึง สิทธิ์เข้าถึง Cloud Storage
- บทบาทความเข้ากันได้ของ Cloud Firestore กับ MongoDB:
Owner
,Cloud Datastore Owner
หรือCloud Datastore Import Export Admin
บทบาทของ Cloud Storage:
Owner
หรือStorage Admin
- บทบาทความเข้ากันได้ของ Cloud Firestore กับ MongoDB:
สิทธิ์ของตัวแทนบริการ
การดำเนินการส่งออกและนำเข้าจะใช้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 ที่มีฐานข้อมูลที่เข้ากันได้กับ MongoDB จากการส่งออกที่มี คอลเล็กชันย่อยจะล้มเหลวเนื่องจาก Cloud Firestore ที่เข้ากันได้กับ MongoDB ไม่รองรับคอลเล็กชันย่อย
การนำเข้าไปยังฐานข้อมูล Cloud Firestore Standard Edition จากการส่งออกที่มี ประเภท BSON จะล้มเหลวเนื่องจาก Cloud Firestore Standard Edition ไม่รองรับประเภท BSON
การนำเข้าไปยังฐานข้อมูล Cloud Firestore ที่เข้ากันได้กับ MongoDB จะนำเข้าข้อมูลจากเนมสเปซที่ไม่ใช่ค่าเริ่มต้นไม่ได้ (Datastore API)
การนำเข้าไปยัง Cloud Firestore ที่มีฐานข้อมูลที่เข้ากันได้กับ MongoDB จากไฟล์ข้อมูลที่มีเนมสเปซที่ไม่ใช่ค่าเริ่มต้น จะได้รับอนุญาตก็ต่อเมื่อการดำเนินการส่งออกมีตัวกรอง
--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 ที่มีความเข้ากันได้กับ MongoDB จะกำหนดชื่อที่ไม่ซ้ำกันให้กับการดำเนินการ คุณใช้ชื่อการดำเนินการเพื่อลบ ยกเลิก หรือตรวจสอบสถานะการดำเนินการได้
ชื่อการดำเนินการจะมีคำนำหน้าเป็น 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 ที่ใช้ร่วมกับ MongoDB อาจละเว้นเมตริกนี้หากประมาณค่าไม่ได้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 ที่เข้ากันได้กับ MongoDB
ไฟล์เอาต์พุตที่จัดเก็บไว้ใน Cloud Storage จะนับรวมในCloud Storageค่าใช้จ่ายในการจัดเก็บข้อมูล
การดำเนินการส่งออกหรือนำเข้าจะไม่ทริกเกอร์การแจ้งเตือนเกี่ยวกับGoogle Cloudงบประมาณจนกว่าจะเสร็จสมบูรณ์ การดำเนินการส่งออกและนำเข้า จะไม่ส่งผลต่อการใช้งานที่แสดงในส่วนการใช้งานของคอนโซล
การดูต้นทุนการส่งออกและนำเข้า
การดำเนินการส่งออกและนำเข้าจะใช้goog-firestoremanaged:exportimport
ป้ายกำกับกับการดำเนินการที่เรียกเก็บเงิน ในหน้ารายงานการเรียกเก็บเงินใน Cloud
คุณสามารถใช้ป้ายกำกับนี้เพื่อดูค่าใช้จ่ายที่เกี่ยวข้องกับการดำเนินการนำเข้าและส่งออกได้
ส่งออกไปยัง BigQuery
คุณโหลดข้อมูลจาก Cloud Firestore ที่มีการส่งออกความเข้ากันได้กับ MongoDB ไปยัง BigQuery ได้
แต่จะทำได้ก็ต่อเมื่อคุณระบุตัวกรอง collection-ids
เท่านั้น ดูการโหลดข้อมูลจาก Cloud Firestore ด้วยการส่งออกที่เข้ากันได้กับ MongoDB
เมื่อโหลด Cloud Firestore ที่มีข้อมูลความเข้ากันได้ของ MongoDB ลงใน BigQuery ระบบจะแสดงประเภทข้อมูล BSON ด้วยประเภทข้อมูล STRING
ขีดจำกัดของคอลัมน์ BigQuery
BigQuery กำหนดขีดจำกัดคอลัมน์ไว้ที่ 10,000 คอลัมน์ต่อตาราง การดำเนินการส่งออก Cloud Firestore ที่เข้ากันได้กับ MongoDB จะสร้างBigQuery สคีมาตารางสำหรับแต่ละคอลเล็กชัน ในสคีมานี้ ชื่อฟิลด์ที่ไม่ซ้ำกันแต่ละชื่อภายในคอลเล็กชันจะกลายเป็นคอลัมน์สคีมา
หากBigQueryสคีมาของคอลเล็กชันมีคอลัมน์เกิน 10,000 รายการ การดำเนินการส่งออก Cloud Firestore ที่เข้ากันได้กับ MongoDB จะพยายามไม่ให้เกินขีดจำกัดของคอลัมน์โดยถือว่าฟิลด์แผนที่เป็นไบต์ หากการแปลงนี้ทำให้จำนวนคอลัมน์ต่ำกว่า 10,000 คอลัมน์ คุณจะโหลดข้อมูลลงใน BigQuery ได้ แต่จะค้นหาฟิลด์ย่อยภายในฟิลด์แผนที่ไม่ได้ หากจำนวนคอลัมน์ยังคงเกิน 10,000 รายการ การดำเนินการส่งออกจะไม่ สร้างBigQueryสคีมาสำหรับคอลเล็กชัน และคุณจะโหลด ข้อมูลลงใน BigQuery ไม่ได้
รูปแบบการส่งออกและไฟล์ข้อมูลเมตา
เอาต์พุตของการส่งออกที่มีการจัดการใช้รูปแบบบันทึก LevelDB
ไฟล์ข้อมูลเมตา
การดำเนินการส่งออกจะสร้างไฟล์ข้อมูลเมตาสำหรับแต่ละคอลเล็กชัน
ที่คุณระบุ โดยปกติแล้วไฟล์ข้อมูลเมตาจะมีชื่อว่า
ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata
ไฟล์ข้อมูลเมตาเป็นบัฟเฟอร์โปรโตคอลและคุณสามารถถอดรหัสได้ด้วยprotoc
โปรแกรมคอมไพเลอร์โปรโตคอล
เช่น คุณสามารถถอดรหัสไฟล์ข้อมูลเมตาเพื่อระบุคอลเล็กชัน
ที่ไฟล์ส่งออกมีได้โดยทำดังนี้
protoc --decode_raw < export0.export_metadata