Score:0

จะซิงค์ข้อมูลเมตาของ GCP Cloud Storage Bucket กับฐานข้อมูลได้อย่างไร

ธง us

ฉันมีวัตถุจำนวนมาก ซึ่งปัจจุบันมีประมาณ 1 ล้านชิ้น จัดเก็บไว้ใน GCP Cloud Storage Bucket มีการเพิ่มวัตถุในอัตรา 1-2 พันต่อวัน ฉันต้องการเรียกใช้การค้นหาอย่างมีประสิทธิภาพเพื่อค้นหาอ็อบเจ็กต์ในบัคเก็ตตามข้อมูลเมตาของอ็อบเจ็กต์เหล่านั้น รวมถึงชื่อไฟล์ที่แก้ไข/ต่อท้าย วันที่สร้าง คลาสพื้นที่เก็บข้อมูล และอื่นๆ

Cloud Storage API อนุญาตให้ค้นหาด้วยคำนำหน้าชื่อไฟล์ (เอกสาร) แต่การเรียกกลับจะใช้เวลาหลายวินาทีกว่าจะเสร็จสิ้น ฉันสามารถทำแบบสอบถาม infix ด้วย gsutil, ชอบ gsutil ls gs://my-bucket/foo-*-bar.txtแต่นี่ช้ากว่านั้นอีก นอกจากนี้ แบบสอบถามเหล่านี้ได้รับการพิจารณา การดำเนินการคลาส Aซึ่งต้องเสียค่าใช้จ่าย

แทนที่จะจัดการกับ Cloud Storage API เพื่อค้นหาที่เก็บข้อมูลของฉัน ฉันคิดว่าฉันสามารถเพิ่มรายการของวัตถุทั้งหมดในที่เก็บข้อมูลของฉันไปยังฐานข้อมูล เช่น Bigtable หรือ SQL ฐานข้อมูลควรซิงค์กับการเปลี่ยนแปลงทั้งหมดที่ทำกับบัคเก็ต อย่างน้อยเมื่อมีการสร้างหรือลบอ็อบเจ็กต์ และในทางที่ดีเมื่อมีการแก้ไข คลาสพื้นที่เก็บข้อมูลเปลี่ยนแปลง ฯลฯ

วิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้คืออะไร?

Score:2
ธง cn

ขั้นตอนแรกคือการออกแบบตารางและคอลัมน์สำหรับฐานข้อมูล กำหนดวิธีจัดเก็บข้อมูลเมตา ออกแบบคำสั่งคิวรีและคำสั่งอัปเดต

จากนั้นใช้ทริกเกอร์ Cloud Storage เพื่อแจ้งบริการที่คุณเขียนเพื่อประมวลผลเหตุการณ์จาก Cloud Storage มักใช้ Cloud Functions และ Cloud Run เพื่อประมวลผลเหตุการณ์ต่างๆ ในการประมวลผลเหตุการณ์ รหัสของคุณจะอัปเดตฐานข้อมูล

ขั้นตอนสุดท้ายหลังจากทริกเกอร์ทำงานอย่างถูกต้องคือสแกนบัคเก็ตทั้งหมดและอัปเดตฐานข้อมูลด้วยข้อมูลเมตาสำหรับออบเจ็กต์ Cloud Storage แต่ละรายการ

คำถามของคุณไม่มีรายละเอียด ควรใช้คำสั่งตัวเลขแทน ฉันมีวัตถุจำนวนมากที่จัดเก็บไว้ใน GCP Cloud Storage Bucket. สำหรับฉันนั่นหมายถึงวัตถุนับสิบล้านอย่างต่ำ คำถามของคุณไม่มีข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้นอย่างรวดเร็วใน Cloud Storage หรือการสืบค้นจริงที่คุณต้องดำเนินการ

โปรดทราบว่า Cloud Storage เป็นเนมสเปซแบบแบน แนวคิดของลำดับชั้น (โฟลเดอร์/ไดเร็กทอรี) ถูกเลียนแบบในซอฟต์แวร์ หากคุณจัดเก็บเนมสเปซในฐานข้อมูลเหมือนกับที่จัดเก็บใน Cloud Storage ประสิทธิภาพอาจไม่ดีขึ้น

ฉันได้ใช้งานการออกแบบประเภทของคุณหลายครั้งสำหรับ AWS, Google Cloud และ Azure เว้นแต่ว่าคุณต้องการความซับซ้อนของระบบที่ขับเคลื่อนด้วยเหตุการณ์จริงๆ ฉันขอแนะนำให้อ่านบัคเก็ตพื้นที่เก็บข้อมูลนานๆ ครั้ง และสร้างสเปรดชีตข้อความง่ายๆ ที่สามารถประมวลผลด้วย grep, awk เป็นต้น

us flag
ขอบคุณสำหรับการตอบกลับ! ฉันแก้ไขคำถามของฉันเพื่อเพิ่มจำนวน Cloud Storage Triggers เป็นโซลูชันที่ใช้งานได้ ฉันแค่หวังว่าจะมีวิธีแก้ปัญหานอกกรอบมากกว่านี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา