0Pricing
Cloud & IT Cert Prep · บทเรียน

สตรีม DynamoDB และตารางทั่วโลก

ประมวลผลการเปลี่ยนแปลงระดับรายการแบบเรียลไทม์ด้วย Streams และจำลองข้อมูลข้ามรีเจียนด้วยตารางทั่วโลกเพื่อการอ่านที่หน่วงต่ำทั่วโลก

สตรีม DynamoDB และตารางทั่วโลก เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน

DynamoDB Streams: การตรวจจับการเปลี่ยนแปลงข้อมูล

DynamoDB Streams บันทึกลำดับการแก้ไขระดับรายการในตาราง DynamoDB ตามลำดับเวลา ทุกครั้งที่มีการสร้าง อัปเดต หรือลบรายการ DynamoDB จะเขียนระเบียนสตรีมที่อธิบายการเปลี่ยนแปลงนั้น ระเบียนสตรีมจะพร้อมใช้งานเป็นเวลา 24 ชั่วโมง หลังจากถูกเขียน

Streams เป็นพื้นฐานของสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์ร่วมกับ DynamoDB การใช้งานทั่วไป ได้แก่ การเรียกใช้ฟังก์ชัน Lambda เพื่อประมวลผลแบบเรียลไทม์ การดูแลบันทึกการตรวจสอบ การจำลองข้อมูลไปยังแหล่งจัดเก็บอื่น หรือการทำให้แคชหมดอายุเมื่อข้อมูลเปลี่ยนแปลง

# Enable a DynamoDB Stream on an existing table
aws dynamodb update-table \
  --table-name Orders \
  --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES

ประเภทมุมมองของสตรีม

เมื่อเปิดใช้งานสตรีม คุณจะเลือก StreamViewType ซึ่งกำหนดว่าระเบียนสตรีมแต่ละรายการจะมีข้อมูลใดบ้าง:

  • KEYS_ONLY: มีเฉพาะแอตทริบิวต์คีย์หลักของรายการที่ถูกแก้ไข
  • NEW_IMAGE: รายการทั้งหมดในสภาพหลังการเปลี่ยนแปลง
  • OLD_IMAGE: รายการทั้งหมดในสภาพก่อนการเปลี่ยนแปลง
  • NEW_AND_OLD_IMAGES: สภาพของรายการทั้งก่อนและหลังการเปลี่ยนแปลง

เลือก NEW_AND_OLD_IMAGES สำหรับการตรวจสอบ (เพื่อดูว่าเกิดอะไรเปลี่ยนแปลง) เลือก NEW_IMAGE สำหรับการจำลองข้อมูลหรืออัปเดตแคช และเลือก KEYS_ONLY เมื่อคุณต้องการทราบเพียงว่ารายการใดเปลี่ยนแปลง และจะดึงสถานะปัจจุบันแยกต่างหาก

การประมวลผลสตรีมด้วย Lambda

วิธีที่ใช้บ่อยที่สุดในการรับข้อมูลจาก DynamoDB Stream คือการใช้ AWS Lambda Lambda จะดึงข้อมูลจากสตรีมและเรียกใช้ฟังก์ชันของคุณพร้อมระเบียนสตรีมเป็นชุด Lambda จัดการการดึงข้อมูล การบันทึกจุดตรวจสอบ และการลองใหม่โดยอัตโนมัติ

พารามิเตอร์การกำหนดค่าที่สำคัญ ได้แก่ ขนาดชุดข้อมูล (จำนวนระเบียนต่อการเรียกใช้ สูงสุด 10,000 รายการ) แบ่งชุดข้อมูลเมื่อเกิดข้อผิดพลาด (แบ่งชุดข้อมูลที่ล้มเหลวเพื่อแยกระเบียนที่มีปัญหา) และ ปลายทางเมื่อการประมวลผลล้มเหลว (SQS หรือ SNS สำหรับระเบียนที่ไม่สามารถประมวลผลได้) Lambda จะอ่านข้อมูลจากแต่ละชาร์ดพร้อมกัน ดังนั้นระดับการประมวลผลพร้อมกันจึงเท่ากับจำนวนชาร์ดในสตรีม

# Add Lambda as a stream trigger via CLI
aws lambda create-event-source-mapping \
  --function-name process-orders-stream \
  --event-source-arn arn:aws:dynamodb:us-east-1:123456789:table/Orders/stream/2026-06-20T00:00:00.000 \
  --starting-position LATEST \
  --batch-size 100 \
  --bisect-batch-on-function-error

กรณีการใช้งานสตรีม

กรณีการใช้งาน DynamoDB Streams ที่พบได้จริงในการสอบ SAA-C03:

  • การจำลองข้อมูลข้ามรีเจียน: Lambda อ่านข้อมูลจากสตรีมและเขียนการเปลี่ยนแปลงไปยังตารางในรีเจียนอื่น (ก่อนที่จะมี Global Tables นี่เป็นรูปแบบมาตรฐาน)
  • การทำให้ ElastiCache หมดอายุ: เมื่อรายการ DynamoDB เปลี่ยนแปลง Lambda จะทำให้คีย์แคชที่เกี่ยวข้องหมดอายุหรืออัปเดตคีย์นั้น
  • การซิงโครไนซ์ดัชนีการค้นหา: ส่งการเปลี่ยนแปลงของรายการไปยัง OpenSearch Service เพื่อเปิดใช้การค้นหาข้อความแบบเต็มในข้อมูล DynamoDB
  • การบันทึกการตรวจสอบ: เขียนการเปลี่ยนแปลงทุกครั้งไปยัง S3 หรือแหล่งจัดเก็บเพื่อการปฏิบัติตามข้อกำหนด
  • ไมโครเซอร์วิสที่ขับเคลื่อนด้วยเหตุการณ์: เรียกใช้บริการปลายทางเมื่อรายการที่ระบุเกิดการเปลี่ยนแปลง

ตาราง Global ของ DynamoDB: คืออะไรและมีประโยชน์อย่างไร

ตาราง Global ของ DynamoDB ให้การจำลองข้อมูลข้ามหลายรีเจียนแบบทำงานได้หลายฝั่งและมีการจัดการเต็มรูปแบบ แต่ละรีเจียนจะมีสำเนาตารางทั้งหมด และสำเนาทั้งหมดสามารถเขียนได้พร้อมกัน การเขียนในรีเจียนใด ๆ จะถูกจำลองแบบอะซิงโครนัสไปยังรีเจียนอื่นทั้งหมดภายในเวลาประมาณ 1 วินาที

ตาราง Global รองรับสถานการณ์สำคัญสองประการ ได้แก่ การอ่านและการเขียนที่มีเวลาแฝงต่ำสำหรับผู้ใช้ที่กระจายอยู่ทั่วโลก (ผู้ใช้แต่ละรายเขียนและอ่านข้อมูลจากรีเจียนที่ใกล้ที่สุด) และการกู้คืนจากภัยพิบัติแบบทำงานได้หลายรีเจียน (แอปพลิเคชันยังคงทำงานในรีเจียนที่เหลืออยู่ได้โดยไม่มีข้อมูลสูญหายหลังจากการจำลองครั้งล่าสุด)

การสร้างตาราง Global

ในการสร้างตาราง Global ขั้นแรกให้สร้างตารางที่เปิดใช้ DynamoDB Streams (NEW_AND_OLD_IMAGES จำเป็นสำหรับการทำงานภายในของตาราง Global) จากนั้นเพิ่มรีเจียนสำเนา AWS จะสร้างตารางสำเนาในแต่ละรีเจียนที่เพิ่ม และเริ่มซิงโครไนซ์ข้อมูลแบบสองทิศทาง

ตาราง Global (เวอร์ชัน 2019.11.21) เป็นมาตรฐานปัจจุบัน และรองรับความจุแบบตามการใช้งานจริงหรือแบบจัดสรรพร้อมการปรับขนาดอัตโนมัติ สำเนาในแต่ละรีเจียนต้องใช้ชื่อตารางเดียวกัน คุณสามารถเพิ่มหรือนำรีเจียนออกจากตาราง Global ได้ทุกเมื่อ

# Create a global table replica in eu-west-1
aws dynamodb create-global-table \
  --global-table-name GlobalOrders \
  --replication-group RegionName=us-east-1 RegionName=eu-west-1

การแก้ไขข้อขัดแย้งในตาราง Global

เนื่องจากตาราง Global อนุญาตให้เขียนข้อมูลในหลายรีเจียนพร้อมกัน จึงอาจเกิดข้อขัดแย้งในการเขียนหากสองรีเจียนอัปเดตรายการเดียวกันในเวลาใกล้เคียงกัน DynamoDB แก้ไขข้อขัดแย้งโดยใช้แนวทางผู้เขียนล่าสุดเป็นผู้ชนะตามการประทับเวลาที่จัดเก็บไว้ในระเบียนสตรีม

ในทางปฏิบัติ การอัปเดตที่ขัดแย้งกันและเกิดขึ้นเกือบพร้อมกันสองรายการจะทำให้รายการหนึ่งชนะ และอีกหนึ่งรายการถูกเขียนทับ แอปพลิเคชันควรได้รับการออกแบบเพื่อหลีกเลี่ยงการเขียนรายการเดียวกันพร้อมกันจากคนละรีเจียน หากเป็นกรณีการใช้งานที่เกิดข้อขัดแย้งบ่อยครั้ง ควรพิจารณากำหนดเส้นทางการเขียนทั้งหมดของผู้ใช้หรือเอนทิตีหนึ่ง ๆ ไปยังรีเจียนหลักเพียงแห่งเดียว

ตาราง Global และข้อควรพิจารณาด้านความจุ

เมื่อใช้ตาราง Global การเขียนในรีเจียนหนึ่งจะถูกจำลองไปยังรีเจียนอื่นทั้งหมดโดยอัตโนมัติ การเขียนที่ถูกจำลองแต่ละครั้งจะใช้ WCU ในรีเจียนปลายทาง หากมี 3 รีเจียน การเขียนหนึ่งครั้งจะมีค่าใช้จ่ายประมาณ 3 เท่าของ WCU เมื่อรวมทุกรีเจียน จึงควรวางแผนความจุให้เหมาะสม

การอ่านในแต่ละรีเจียนจะใช้ RCU ของสำเนาภายในรีเจียนนั้น การอ่านที่มีความสอดคล้องในท้ายที่สุด (ค่าเริ่มต้น) จะใช้ข้อมูลภายในรีเจียน ส่วนการอ่านที่มีความสอดคล้องอย่างเข้มงวดไม่รองรับระหว่างรีเจียน สำหรับแอปพลิเคชันทั่วโลกส่วนใหญ่ ความสอดคล้องในท้ายที่สุดภายในเวลาประมาณ 1 วินาทีระหว่างรีเจียนถือว่ายอมรับได้

ตาราง Global เทียบกับสำเนา Read Replica ข้ามรีเจียนของ RDS

ข้อแตกต่างสำคัญสำหรับการสอบ SAA-C03 คือ ตาราง Global ของ DynamoDB เป็นแบบทำงานได้หลายฝั่ง (ทุกรีเจียนรับทั้งการอ่านและการเขียน) ขณะที่ Read Replica ข้ามรีเจียนของ RDS เป็นแบบอ่านอย่างเดียว (คุณสามารถเลื่อนระดับสำเนาเพื่อให้เขียนได้เท่านั้น ซึ่งจะทำให้การจำลองข้อมูลหยุดลง)

ใช้ตาราง Global ของ DynamoDB เมื่อคุณต้องการการเขียนแบบทำงานได้หลายฝั่งในหลายรีเจียน การเข้าถึงทั่วโลกที่ใช้เวลาต่ำกว่า 100 มิลลิวินาที หรือการกู้คืนจากภัยพิบัติแบบหลายรีเจียนที่มี RPO เป็นศูนย์สำหรับข้อมูลแบบ NoSQL ใช้สำเนาข้ามรีเจียนของ RDS เมื่อคุณต้องการเพิ่มความสามารถในการรองรับการอ่านทั่วโลกสำหรับฐานข้อมูลเชิงสัมพันธ์ หรือมีระบบสำรองสำหรับกู้คืนจากภัยพิบัติที่พร้อมใช้งานและสามารถเลื่อนระดับเพื่อสลับการทำงานได้

รูปแบบสถาปัตยกรรม Streams + Lambda

รูปแบบสถาปัตยกรรมทั่วไปที่ผสาน Streams และ Lambda:

  • การกระจายข้อมูลออกหลายทาง: Lambda อ่านข้อมูลจากสตรีมและเผยแพร่ไปยัง SNS ซึ่งกระจายต่อไปยังคิว SQS หลายคิวสำหรับผู้รับข้อมูลที่ทำงานแยกจากกัน
  • การรวมข้อมูล: Lambda สะสมการเปลี่ยนแปลงและอัปเดตยอดรวมในตาราง DynamoDB แยกต่างหาก (เช่น จำนวนคำสั่งซื้อรายวัน)
  • แคชแบบเขียนภายหลัง: เมื่อเกิดเหตุการณ์ในสตรีมแต่ละครั้ง Lambda จะอัปเดต ElastiCache เพื่อให้การอ่านสามารถให้บริการจากแคชได้
  • การแจ้งเตือน: สตรีมเรียกใช้ Lambda ซึ่งส่งอีเมลผ่าน SES หรือการแจ้งเตือนแบบพุชผ่าน SNS เมื่อเงื่อนไขที่ระบุเปลี่ยนแปลง

การผสานรวม DynamoDB Kinesis Data Streams

นอกเหนือจาก DynamoDB Streams แล้ว คุณสามารถส่งการเปลี่ยนแปลงในระดับรายการไปยัง Amazon Kinesis Data Stream ได้ วิธีนี้มีประโยชน์เมื่อต้องการเก็บรักษาข้อมูลไว้นานขึ้น (สูงสุด 1 ปี เทียบกับ 24 ชั่วโมงสำหรับ DynamoDB Streams แบบเนทีฟ) ต้องการผู้ใช้ข้อมูลมากขึ้น หรือต้องการผสานรวมกับบริการที่อ่านข้อมูลจาก Kinesis

การผสานรวม Kinesis Data Streams สามารถเปิดใช้งานแยกตามแต่ละตาราง และไม่ได้แทนที่ DynamoDB Streams—คุณสามารถเปิดใช้งานทั้งสองอย่างพร้อมกันได้ ฟีเจอร์นี้เปิดตัวในภายหลัง (ปี 2021) และช่วยขยายกระบวนการส่งต่อเหตุการณ์การเปลี่ยนแปลงของ DynamoDB โดยไม่ต้องเขียนตรรกะการจำลองข้อมูลเอง

# Enable Kinesis Data Streams for a DynamoDB table
aws dynamodb enable-kinesis-streaming-destination \
  --table-name Orders \
  --stream-arn arn:aws:kinesis:us-east-1:123456789:stream/ddb-changes

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้

สรุปบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า DynamoDB Streams บันทึกการเปลี่ยนแปลงในระดับรายการเป็นเวลา 24 ชั่วโมง และผสานรวมกับ Lambda เพื่อประมวลผลแบบขับเคลื่อนด้วยเหตุการณ์ Global Tables รองรับการจำลองข้อมูลแบบหลายแอ็กทีฟข้ามหลาย Region พร้อมการแก้ไขข้อขัดแย้งโดยให้การเขียนครั้งล่าสุดเป็นผล และ การผสานรวม Kinesis Data Streams ช่วยขยายระยะเวลาการเก็บรักษา ให้เกินช่วงเวลา 24 ชั่วโมงของสตรีม บทถัดไป เราจะศึกษา hosted zones ของ Route 53 และประเภทเรกคอร์ด DNS

คำถามที่พบบ่อย

บทเรียน “สตรีม DynamoDB และตารางทั่วโลก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สตรีม DynamoDB และตารางทั่วโลก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สตรีม DynamoDB และตารางทั่วโลก”

ประมวลผลการเปลี่ยนแปลงระดับรายการแบบเรียลไทม์ด้วย Streams และจำลองข้อมูลข้ามรีเจียนด้วยตารางทั่วโลกเพื่อการอ่านที่หน่วงต่ำทั่วโลก คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “สตรีม DynamoDB และตารางทั่วโลก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม

ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตาราง รายการ และคีย์หลัก
  2. ความจุแบบจัดสรรเทียบกับแบบตามต้องการ
  3. ดัชนีรองระดับโลกและดัชนีรองเฉพาะที่
  4. สตรีม DynamoDB และตารางทั่วโลก
← กลับไปที่ Cloud & IT Cert Prep