>> [เล่นเพลง]
RICK Houlihan: สิทธิทั้งหมด
สวัสดีทุกคน.
ชื่อของฉันคือริก Houlihan
ฉันเป็นหลักอาวุโส การแก้ปัญหาที่สถาปนิก AWS
ผมเน้น NoSQL และ เทคโนโลยี DynamoDB
ฉันมาที่นี่ในวันนี้จะพูดคุยกับ คุณเล็กน้อยเกี่ยวกับผู้
>> พื้นหลังของฉันคือ ส่วนใหญ่ในชั้นข้อมูล
ผมใช้เวลาครึ่งหนึ่งของการพัฒนาของฉัน ฐานข้อมูลการเขียนอาชีพ
การเข้าถึงข้อมูลการแก้ปัญหา สำหรับการใช้งานต่างๆ
ฉันได้รับในการทำงานแบบเสมือนเมฆ ประมาณ 20 ปี
ดังนั้นก่อนที่จะมีเมฆเป็นเมฆ เราเคยเรียกว่าคอมพิวเตอร์ยูทิลิตี้
และความคิดที่ถูกมันก็เหมือน PG & E, คุณจ่ายสำหรับสิ่งที่คุณใช้
วันนี้เราเรียกว่าระบบคลาวด์
>> แต่ในช่วงปีที่ผ่านมาฉันได้ทำงาน สำหรับคู่ของ บริษัท
คุณอาจไม่เคยได้ยิน
แต่ผมได้รวบรวมรายชื่อของทางเทคนิค ความสำเร็จผมคิดว่าคุณจะบอกว่า
ฉันมีแปดสิทธิบัตรในระบบคลาวด์ การทำงานแบบเสมือนการออกแบบไมโครโพรเซสเซอร์
การประมวลผลเหตุการณ์ที่ซับซ้อน และพื้นที่อื่น ๆ ได้เป็นอย่างดี
>> ดังนั้นวันนี้ผมเน้นส่วนใหญ่ใน NoSQL เทคโนโลยีและคนรุ่นต่อไป
ฐานข้อมูล
และนั่นคือโดยทั่วไปสิ่งที่ฉันจะ ที่นี่ที่จะพูดคุยกับคุณวันนี้เกี่ยวกับ
ดังนั้นสิ่งที่คุณสามารถคาดหวัง จากเซสชั่นนี้
เราจะผ่านไปสั้น ๆ ประวัติศาสตร์ของการประมวลผลข้อมูล
มันเป็นประโยชน์เสมอ เราเข้าใจที่มาจาก
และทำไมเราที่เรามี
และเราจะพูดคุยเล็ก ๆ น้อย ๆ บิตเกี่ยวกับเทคโนโลยี NoSQL
จากมุมมองพื้นฐาน
>> เราจะได้รับในบางส่วนของ DynamoDB internals
DynamoDB เป็น AWS ไม่มีรสชาติ
มันมีการจัดการอย่างเต็มที่และ เป็นเจ้าภาพแก้ปัญหา NoSQL
และเราจะพูดคุยเล็กน้อยเกี่ยวกับตาราง โครงสร้าง API สำหรับชนิดข้อมูลดัชนี
และบางส่วนของ internals ของเทคโนโลยีที่ DynamoDB
เราจะได้รับในบางส่วนของการออกแบบ รูปแบบและการปฏิบัติที่ดีที่สุด
เราจะพูดคุยเกี่ยวกับวิธีการที่คุณ ใช้เทคโนโลยีนี้สำหรับบางคน
ของการใช้งานในปัจจุบัน
และจากนั้นเราจะพูดคุยนิด ๆ หน่อย ๆ เกี่ยวกับวิวัฒนาการหรือการเกิดขึ้น
ของกระบวนทัศน์ใหม่ในการเขียนโปรแกรม การใช้งานที่เรียกว่าเหตุการณ์ที่ขับเคลื่อนด้วย
และวิธีการเล่นใน DynamoDB ที่ดี
และเราจะปล่อยให้คุณนิด ๆ หน่อย ๆ การอภิปรายสถาปัตยกรรมอ้างอิง
เพื่อให้เราสามารถพูดคุยเกี่ยวกับบางส่วนของ วิธีที่คุณสามารถใช้ DynamoDB
>> ดังนั้นก่อน off-- นี้เป็นคำถาม ฉันได้ยินมากเป็นสิ่งที่เป็นฐานข้อมูล
ผู้คนจำนวนมากคิดว่าพวกเขา รู้ว่าสิ่งที่เป็นฐานข้อมูล
หากคุณ Google คุณจะเห็นนี้
มันเป็นชุดที่มีโครงสร้างของข้อมูลที่จัดขึ้น ในเครื่องคอมพิวเตอร์โดยเฉพาะอย่างยิ่งหนึ่งที่
สามารถเข้าถึงได้ในรูปแบบต่างๆ
ผมคิดว่านั่นเป็นสิ่งที่ดี ความหมายของฐานข้อมูลที่ทันสมัย
แต่ผมไม่ชอบมันเพราะ มันหมายถึงสองสิ่ง
มันแสดงถึงโครงสร้าง
และมันแสดงให้เห็นว่ามันอยู่ในเครื่องคอมพิวเตอร์
และฐานข้อมูลไม่ได้ มักจะอยู่ในคอมพิวเตอร์
ฐานข้อมูลจริงที่มีอยู่ในหลาย ๆ
>> ดังนั้นความหมายที่ดีขึ้นของ ฐานข้อมูลบางอย่างเช่นนี้
ฐานข้อมูลมีการจัด กลไกสำหรับการจัดเก็บการจัดการ
และข้อมูลการเรียก
นี้เป็นจาก About.com
ดังนั้นผมจึงชอบที่นี้เพราะมันพูดถึงจริงๆ เกี่ยวกับฐานข้อมูลเป็นพื้นที่เก็บข้อมูล,
ที่เก็บของ ข้อมูลไม่จำเป็นต้อง
บางสิ่งบางอย่างที่ตั้งอยู่บนคอมพิวเตอร์
และตลอดประวัติศาสตร์เรา ยังไม่เคยมีคอมพิวเตอร์
>> ตอนนี้ถ้าฉันขอค่าเฉลี่ย นักพัฒนาในวันนี้สิ่งที่
ฐานข้อมูลที่เป็นคำตอบที่ฉันได้รับ
ที่ไหนสักแห่งผมสามารถติดสิ่ง
ขวา?
และมันก็เป็นความจริง
แต่มันเป็นโชคร้าย
เนื่องจากฐานข้อมูลที่เป็นจริง รากฐานของ app ที่ทันสมัย
มันเป็นรากฐาน ของทุกโปรแกรม
และวิธีการที่คุณสร้าง ฐานข้อมูลวิธีที่คุณโครงสร้าง
ว่าข้อมูลเป็นไปเพื่อกำหนดวิธีการที่ แอพลิเคชันที่คุณดำเนินการปรับขนาด
>> ดังนั้นจำนวนมากของงานของฉันในวันนี้ คือการจัดการกับสิ่งที่
ที่เกิดขึ้นเมื่อนักพัฒนา ใช้วิธีการนี​​้
และการจัดการกับผลพวง ของโปรแกรมที่
คือตอนนี้ปรับเกินกว่าเดิม ความตั้งใจและความทุกข์ทรมานจากการออกแบบที่ไม่ดี
เพื่อหวังว่าเมื่อคุณ เดินออกไปในวันนี้คุณจะ
มีคู่ของเครื่องมือใน เข็มขัดของคุณที่จะให้คุณ
จากการทำผิดพลาดเดียวกันนั้น
ทั้งหมดขวา
ดังนั้นเรามาพูดคุยเกี่ยวกับนิด ๆ หน่อย ๆ ระยะเวลาของเทคโนโลยีฐานข้อมูล
ฉันคิดว่าฉันอ่าน บทความไม่ได้ว่านานมาแล้ว
และจะพูดอะไรบางอย่างเกี่ยวกับ lines-- มันเป็นคำสั่งของกวีมาก
มันบอกว่าประวัติศาสตร์ ของการประมวลผลข้อมูล
เต็มรูปแบบของลายน้ำสูง ความอุดมสมบูรณ์ของข้อมูล
ตกลง.
ตอนนี้ผมเดาว่าเป็นชนิดของความจริง
แต่ที่จริงผมมองไปที่มีที่เป็น ประวัติศาสตร์ที่เต็มไปจริง
มีลายน้ำของความดันสูงข้อมูล
เพราะอัตราการส่งข้อมูลของ การบริโภคที่ไม่เคยไปลง
มันจะไปถึง
>> และนวัตกรรมที่เกิดขึ้นเมื่อ เราจะเห็นความดันข้อมูลซึ่ง
คือปริมาณของข้อมูลที่เป็น ในตอนนี้ที่เข้ามาในระบบ
และมันก็ไม่สามารถดำเนินการ ได้อย่างมีประสิทธิภาพทั้งในเวลาหรือค่าใช้จ่ายใน
และที่ว่าเมื่อเราเริ่มต้น จะมองที่ความดันข้อมูล
>> ดังนั้นเมื่อเรามองไปที่ ฐานข้อมูลครั้งแรกนี้
เป็นสิ่งหนึ่งที่อยู่ระหว่างหูของเรา
เราทุกคนเกิดมาพร้อมกับมัน
มันเป็นฐานข้อมูลที่ดี
แต่ก็มีความพร้อมสูง
มันเสมอ
คุณจะได้รับมัน
>> แต่มันเป็นผู้ใช้คนเดียว
ฉันไม่สามารถแบ่งปันความคิดของฉันกับคุณ
คุณไม่สามารถได้รับความคิดของฉัน เมื่อคุณต้องการให้พวกเขา
และ abilitiy ของพวกเขาจะไม่ดีดังนั้น
เราลืมสิ่ง
ทุกขณะนี้แล้วหนึ่งของเราใบ และย้ายไปดำรงอยู่อีก
และเราสูญเสียทุกอย่าง ที่อยู่ในฐานข้อมูลนั้น
ดังนั้นนั่นไม่ใช่ทั้งหมดที่ดีที่
>> และนี้ทำงานได้ดีในช่วงเวลา เมื่อเรากลับในวันที่
เมื่อทุกสิ่งที่เราจำเป็นจริงๆต้องรู้คือ ที่เราจะไปในวันพรุ่งนี้
หรือที่เรารวบรวมอาหารที่ดีที่สุด
แต่ในขณะที่เราเริ่มที่จะเติบโตเป็น อารยธรรมและรัฐบาลตั้งขึ้น
ที่จะเข้ามาเป็นอยู่และ ธุรกิจเริ่มต้นที่จะพัฒนาขึ้น
เราเริ่มที่จะตระหนักถึงเรา ต้องน้อยกว่าสิ่งที่
ที่เราสามารถนำมาใส่ในหัวของเรา
ทั้งหมดใช่มั้ย?
>> เราจำเป็นต้องมีระบบของการบันทึก
เราจำเป็นต้องเป็นสถานที่ที่จะสามารถจัดเก็บข้อมูล
ดังนั้นเราจึงเริ่มเขียนเอกสาร สร้างห้องสมุดและเก็บ
เราเริ่มต้นการพัฒนา ระบบบัญชีแยกประเภท
และระบบการนับแยกประเภทที่ วิ่งโลกมานานหลายศตวรรษ
และอาจจะนับพันปีแม้ในขณะที่ เราชนิดของการขยายตัวไปยังจุดที่
ที่โหลดข้อมูลที่ค้นพบ ความสามารถของระบบเหล่านั้น
เพื่อให้สามารถมีมัน
>> และสิ่งนี้เกิดขึ้นจริงในยุค 1880
ขวา?
ใน 1880 สำรวจสำมะโนประชากรของสหรัฐ
นี้เป็นจริงที่เปลี่ยน จุดการประมวลผลข้อมูลที่ทันสมัย
ตรงนี้คือจุดที่ ซึ่งจำนวนของข้อมูล
ที่ถูกเก็บรวบรวมโดย รัฐบาลสหรัฐก็มาถึงจุด
ที่มันต้องใช้เวลาแปดปีในการประมวลผล
>> ตอนนี้แปด years-- เป็น คุณรู้ว่าการสำรวจสำมะโนประชากร
วิ่งทุก 10 years-- จึงเป็น ที่เห็นได้ชัดสวยตามเวลาที่เรา
มี 1890 การสำรวจสำมะโนประชากร จำนวนข้อมูลที่
จะได้รับการประมวลผล โดยรัฐบาล
จะเกิน 10 ปีว่า จะใช้เวลาในการสำรวจสำมะโนประชากรเปิดตัวใหม่
นี่เป็นปัญหา
>> ดังนั้นผู้ชายที่ชื่อเฮอร์แมน Hollerith มาพร้อม
และเขาคิดค้นหมัดบันทึกหน่วย บัตร, เครื่องอ่านบัตรเจาะบัตรหมัด
ตีตารางและการเปรียบเทียบของ กลไกสำหรับเทคโนโลยีนี้
และ บริษัท ที่ว่าเขาเกิดขึ้นที่ เวลาพร้อมกับคู่ของคนอื่น ๆ
จริงกลายเป็นหนึ่งในเสาหลักของที่ บริษัท ขนาดเล็กที่เรารู้ว่าวันนี้เรียกว่าไอบีเอ็ม
>> ดังนั้นไอบีเอ็ม แต่เดิมอยู่ใน ธุรกิจฐานข้อมูล
และที่จริงสิ่งที่พวกเขา
พวกเขาทำการประมวลผลข้อมูล
>> ในฐานะที่เป็นเพื่อให้การขยายตัวของหมัด บัตรซึ่งเป็นกลไกที่มีความคิดสร้างสรรค์
ความสามารถในการใช้ประโยชน์จากการที่ เทคโนโลยีในการสำรวจชุดผลลัพธ์ที่เรียงลำดับ
คุณสามารถเห็นในภาพนี้ มีเรามี little--
มันเป็น small-- เล็ก ๆ น้อย ๆ แต่คุณสามารถดู กลไกกลแยบยลมาก
ที่เรามีสำรับไพ่หมัด
และของคนถ่าย ไขควงเล็ก ๆ น้อย ๆ
และติดผ่าน ช่องและยกมันขึ้นมา
ที่จะได้รับการจับคู่นั้น ผลการเรียงลำดับการตั้งค่า
>> นี่คือการรวม
เราทำเช่นนี้ตลอดเวลา วันนี้ในคอมพิวเตอร์
ที่คุณทำมันได้ในฐานข้อมูล
เราใช้ในการทำด้วยตนเองใช่มั้ย?
คนนำสิ่งเหล่านี้ร่วมกัน
และมันก็งอก ของบัตรเจาะเหล่านี้
เป็นสิ่งที่เราเรียกว่ากลองข้อมูล และวงล้อข้อมูลเทปกระดาษ
>> อุตสาหกรรมการประมวลผลข้อมูลเอา บทเรียนจากผู้เล่นเปียโน
เล่นเปียโนกลับมาที่ เปิดของศตวรรษที่
เคยใช้วงล้อกระดาษที่มีช่อง ในการที่จะบอกว่ากุญแจที่จะเล่น
ดังนั้นเทคโนโลยีที่ถูกนำมาดัดแปลง ในที่สุดในการจัดเก็บข้อมูลดิจิตอล
เพราะพวกเขาสามารถนำข้อมูลที่ บนวงล้อเทปกระดาษเหล่านั้น
>> ขณะนี้เป็นผลมาจากข้อมูล actually-- ถูกวิธี
คุณสามารถเข้าถึงข้อมูลเหล่านี้โดยตรง ขึ้นอยู่กับวิธีการที่คุณเก็บไว้
ดังนั้นถ้าผมใส่ข้อมูลบนเทป ฉันได้เข้าถึงข้อมูลที่เป็นเส้นตรง
ผมต้องม้วนท​​ั้ง เทปการเข้าถึงข้อมูลทั้งหมด
ถ้าผมใส่ข้อมูลในการชก บัตรผมสามารถเข้าถึงได้
เล็ก ๆ น้อย ๆ ในการสุ่ม แฟชั่นอาจจะไม่ได้อย่างรวดเร็ว
>> แต่มีข้อ จำกัด ในวิธีการที่เรา การเข้าถึงข้อมูลตามวิธีการที่ถูกเก็บไว้
และเพื่อให้เรื่องนี้เป็นปัญหาที่เกิดขึ้น ที่จะเข้าสู่ยุค 50
อีกครั้งที่เราสามารถเริ่มต้นที่จะเห็นว่าในขณะที่เรา พัฒนาเทคโนโลยีใหม่ในการประมวลผล
ข้อมูลถูกต้องก็จะเปิดขึ้น ประตูสำหรับการแก้ปัญหาใหม่
สำหรับโปรแกรมใหม่ใหม่ การใช้งานสำหรับข้อมูลที่
และจริงๆการกำกับดูแล อาจจะเป็นเหตุผลที่
เหตุผลที่เราพัฒนาบางส่วนของระบบเหล่านี้
แต่ธุรกิจอย่างรวดเร็วกลายเป็น คนขับรถที่อยู่เบื้องหลังวิวัฒนาการ
ของฐานข้อมูลที่ทันสมัย​​และ ระบบไฟล์ที่ทันสมัย
>> ดังนั้นสิ่งต่อไปที่ ขึ้นมาอยู่ในยุค 50
เป็นระบบไฟล์และ การพัฒนาของการจัดเก็บเข้าถึงแบบสุ่ม
นี้เป็นภาพที่สวยงาม
ตอนนี้ทั้งหมดในทันทีเราสามารถใส่ของเรา ไฟล์ที่ใดก็ได้บนฮาร์ดไดรฟ์เหล่านี้
และเราสามารถเข้าถึงข้อมูลแบบสุ่มนี้
เราสามารถแยกได้ว่า ข้อมูลจากไฟล์
และเราแก้ปัญหาทั้งหมดของโลก ปัญหาเกี่ยวกับการประมวลผลข้อมูล
>> และที่กินเวลาประมาณ 20 หรือ 30 ปีจนวิวัฒนาการ
ของฐานข้อมูลเชิงสัมพันธ์ซึ่ง คือเมื่อตัดสินใจที่โลกเราตอนนี้
จะต้องมีพื้นที่เก็บข้อมูลที่เอาชนะ แผ่กิ่งก้านสาขาของข้อมูลทั่วไฟล์
ระบบที่เราได้สร้างขึ้น ขวา?
ข้อมูลที่มากเกินไปกระจายในมากเกินไป สถานที่ de ซ้ำซ้อนของข้อมูล
และค่าใช้จ่ายในการเก็บรักษาเป็นอย่างมาก
>> ในยุค 70 ทรัพยากรที่มีราคาแพงที่สุด คอมพิวเตอร์ที่มีคือการจัดเก็บข้อมูล
หน่วยประมวลผลที่ได้คือ มองว่าเป็นต้นทุนคงที่
ตอนที่ผมซื้อกล่อง CPU ไม่ทำงานบางอย่าง
มันเป็นไปได้ว่าการปั่น มันเป็นจริงการทำงานหรือไม่
ที่จริงค่าใช้จ่ายที่จม
>> แต่สิ่งที่มีค่าใช้จ่ายฉันเป็น ธุรกิจการจัดเก็บข้อมูล
ถ้าผมจะต้องซื้อดิสก์มากขึ้นต่อไป เดือนที่มีค่าใช้จ่ายจริงที่ฉันต้องจ่ายเงิน
และการเก็บรักษาที่มีราคาแพง
>> ตอนนี้เราไปข้างหน้าอย่างรวดเร็ว 40 ปี และเรามีปัญหาอื่น
คำนวณอยู่ในขณะนี้ ทรัพยากรที่มีราคาแพงที่สุด
การจัดเก็บราคาถูก
ผมหมายความว่าเราสามารถไปได้ทุกที่ เมฆและเราสามารถหาการจัดเก็บราคาถูก
แต่สิ่งที่ผมไม่สามารถหาราคาถูกประมวลผล
>> ดังนั้นวิวัฒนาการของวันนี้ เทคโนโลยีของเทคโนโลยีฐานข้อมูล
จะเน้นจริงๆรอบ ฐานข้อมูลการกระจาย
ที่ไม่ต้องทนทุกข์ทรมานจาก ประเภทเดียวกันของขนาด
ข้อ จำกัด ของฐานข้อมูลเชิงสัมพันธ์
เราจะพูดเล็กน้อยเกี่ยวกับ สิ่งที่จริงหมายถึง
>> แต่หนึ่งในเหตุผลและ คนขับรถที่อยู่เบื้องหลังเรา this--
พูดคุยเกี่ยวกับความดันข้อมูล
ความดันข้อมูลเป็นบางสิ่งบางอย่าง ที่ไดรฟ์นวัตกรรม
และถ้าคุณดูมากกว่า ในช่วงห้าปีที่ผ่านมา
นี้เป็นแผนภูมิว่าข้อมูลที่ โหลดทั่วทั้งองค์กรทั่วไป
ดูเหมือนว่าในช่วงห้าปีที่ผ่านมา
>> และกฎทั่วไปของหัวแม่มือ days-- เหล่านี้ถ้าคุณไป Google--
เป็น 90% ของข้อมูลที่ เราเก็บวันนี้และมันก็เป็น
ที่สร้างขึ้นภายในสองปี
ตกลง.
ตอนนี้ไม่ได้เป็นแนวโน้มที่ใหม่
ซึ่งเป็นเทรนด์ที่ได้รับ ออกไป 100 ปี
นับตั้งแต่เฮอร์แมน Hollerith การพัฒนาบัตรเจาะที่
เราได้รับการสร้างที่เก็บข้อมูล และรวบรวมข้อมูลในอัตราที่เป็นปรากฎการณ์
>> ดังนั้นในช่วง 100 ปีที่ผ่านมา เราได้เห็นแนวโน้มนี้
ที่ไม่ได้ไปเปลี่ยน
ก้าวไปข้างหน้าเรากำลังจะไปดู นี้ถ้าไม่ได้เป็นแนวโน้มเร่ง
และคุณสามารถมองเห็นสิ่งที่ดูเหมือนว่า
>> หากธุรกิจในปี 2010 มีหนึ่ง เทราไบต์ของข้อมูลภายใต้การบริหาร
วันนี้นั่นหมายความว่าพวกเขากำลัง การจัดการ 6.5 เพตาไบต์ของข้อมูล
นั่นคือ 6,500 ครั้งข้อมูลได้มากขึ้น
และฉันรู้ว่านี้
ผมทำงานกับธุรกิจเหล่านี้ทุกวัน
ห้าปีที่ผ่านมาผม จะพูดคุยกับ บริษัท
ที่จะพูดคุยกับผมเกี่ยวกับสิ่งที่เจ็บปวด มันคือการจัดการเทราไบต์ของข้อมูล
และพวกเขาจะพูดคุย กับฉันเกี่ยวกับวิธีการที่เราเห็น
ว่าเรื่องนี้อาจจะ จะเป็น petabyte หรือสอง
ภายในสองสามปีที่ผ่านมา
>> บริษัท เหล่านี้เหมือนกัน วันนี้ผมกำลังประชุมกับ
และพวกเขากำลังพูดกับผมเกี่ยวกับ ปัญหาที่เกิดขึ้นจะต้องมีการจัดการ
นับ 20 เพตาไบต์ของข้อมูล
ดังนั้นการระเบิดของ ข้อมูลในอุตสาหกรรม
คือการขับรถอย่างมาก ความจำเป็นในการแก้ปัญหาที่ดีกว่า
และเป็นฐานข้อมูลเชิงสัมพันธ์ เพียงแค่ไม่ได้อยู่ถึงความต้องการ
>> และเพื่อให้มีเส้น ความสัมพันธ์ระหว่างความดันข้อมูล
และนวัตกรรมทางเทคนิค
ประวัติศาสตร์ได้แสดงให้เราเห็น นี้ว่าเมื่อเวลาผ่านไป
เมื่อใดก็ตามที่ปริมาณของข้อมูลที่ ที่จะต้องมีการประมวลผล
เกินกว่าความจุของระบบ ที่จะดำเนินการในเวลาที่เหมาะสม
หรือในราคาที่เหมาะสม แล้วเทคโนโลยีใหม่
มีการคิดค้นขึ้นมาเพื่อแก้ปัญหาเหล​​่านั้น
ผู้เทคโนโลยีใหม่ ในที่สุดก็เปิดประตู
ถึงชุดของปัญหาอื่นซึ่ง คือการรวบรวมข้อมูลมากยิ่งขึ้น
>> ตอนนี้เราจะไม่หยุดนี้
ขวา?
เราจะไม่หยุดนี้
ทำไม?
เพราะคุณไม่สามารถรู้ทุกอย่าง มีความรู้ในจักรวาล
และตราบใดที่เราเคยมีชีวิตอยู่ ตลอดประวัติศาสตร์ของมนุษย์
เราได้รับแรงผลักดันเสมอที่จะทราบข้อมูลเพิ่มเติม
>> ดังนั้นจึงดูเหมือนว่านิ้วที่เราย้ายทุก ลงเส้นทางของการค้นพบทางวิทยาศาสตร์
เรามีการคูณจำนวนของข้อมูล ที่เราจำเป็นต้องดำเนินการชี้แจง
ในขณะที่เราค้นพบมากขึ้นและมากขึ้น การทำงานเกี่ยวกับด้านในของชีวิต
เกี่ยวกับวิธีการทำงานของจักรวาลประมาณ การขับรถการค้นพบทางวิทยาศาสตร์
และสิ่งประดิษฐ์ที่ ที่เรากำลังทำในวันนี้
ปริมาณของข้อมูลเพียง เพิ่มอย่างต่อเนื่อง
ดังนั้นความสามารถในการจัดการกับ ปัญหานี้เป็นอย่างมาก
>> ดังนั้นหนึ่งในสิ่งที่ เรามองว่าเป็นเหตุผลที่ NoSQL?
NoSQL วิธีแก้ปัญหานี้หรือไม่
ดีฐานข้อมูลเชิงสัมพันธ์ โครงสร้างภาษาแบบสอบถาม
SQL-- ที่จริงโครงสร้างของที่ สัมพันธ์ database-- สิ่งเหล่านี้
การเพิ่มประสิทธิภาพในการจัดเก็บ
>> ย้อนกลับไปในยุค 70 อีกครั้ง ดิสก์ที่มีราคาแพง
การออกกำลังกายการจัดเตรียมการจัดเก็บข้อมูล ในองค์กรเป็นที่ไม่มีที่สิ้นสุด
ฉันรู้.
ฉันอาศัยอยู่มัน
ผมเขียนโปรแกรมควบคุมการจัดเก็บข้อมูลสำหรับ บริษัท SuperServer Enterprised
ย้อนกลับไปในยุค 90
และบรรทัดล่างจะดึงอีก อาร์เรย์จัดเก็บข้อมูลเป็นเพียงสิ่งที่
ที่เกิดขึ้นทุกวันในองค์กร
และมันก็ไม่เคยหยุด
การจัดเก็บข้อมูลที่สูงขึ้นความหนาแน่นของความต้องการ สำหรับการจัดเก็บความหนาแน่นสูง
และสำหรับการจัดเก็บมีประสิทธิภาพมากขึ้น devices-- ก็ไม่เคยหยุด
>> และ NoSQL เป็นเทคโนโลยีที่ดี เพราะมัน normalizes ข้อมูล
มัน de-ซ้ำข้อมูล
มันทำให้ข้อมูลในโครงสร้างที่ คือไม่เชื่อเรื่องพระเจ้ากับรูปแบบการเข้าถึงทุก
การใช้งานหลายสามารถตีว่า ฐานข้อมูล SQL เรียกเฉพาะกิจแบบสอบถาม
และได้รับข้อมูลในรูปทรงที่ว่าพวกเขา ต้องดำเนินการสำหรับงานของพวกเขา
ที่เสียงที่ยอดเยี่ยม
แต่บรรทัดล่างเป็นกับใด ๆ ระบบถ้ามันไม่เชื่อเรื่องพระเจ้าทุกอย่าง
มันเป็นอะไรที่ดีที่สุดสำหรับ
ตกลง?
>> และนั่นคือสิ่งที่เราได้รับด้วย ฐานข้อมูลเชิงสัมพันธ์
มันเหมาะสำหรับการจัดเก็บข้อมูล
มันเป็นเรื่องปกติ
มันเป็นความสัมพันธ์
สนับสนุนคำสั่งเฉพาะกิจ
และมันและเครื่องชั่งน้ำหนักในแนวตั้ง
>> ถ้าฉันจะต้องได้รับฐานข้อมูล SQL ที่ใหญ่กว่า หรือฐานข้อมูล SQL มีประสิทธิภาพมากขึ้น
ผมไปซื้อชิ้นส่วนที่ใหญ่กว่าเหล็ก
ตกลง?
ผมเคยทำงานกับลูกค้าจำนวนมาก ที่ได้รับการผ่านการอัพเกรดที่สำคัญ
ในโครงสร้างพื้นฐาน SQL ของพวกเขาเท่านั้น เพื่อหาหกเดือนต่อมา
พวกเขากำลังตีผนังอีกครั้ง
และคำตอบจาก Oracle หรือ MSSQL หรือใครอื่นจะได้รับกล่องที่ใหญ่กว่า
ดีไม่ช้าก็เร็วคุณจะไม่สามารถซื้อ กล่องที่ใหญ่กว่าและที่ปัญหาที่แท้จริง
เราจำเป็นต้องเปลี่ยนแปลงสิ่งที่จริง
เพื่อที่จะทำงานนี้หรือไม่?
มันทำงานได้ดีครับ การวิเคราะห์ปริมาณงาน OLAP ชนิด
และที่จริงที่เป็น SQL
ตอนนี้ก็ใช้ในวันนี้ออนไลน์จำนวนมาก การประมวลผลการทำธุรกรรมประเภท
การใช้งาน
และมันก็ทำงานได้ดีที่ ระดับของการใช้ประโยชน์บางอย่าง
แต่มันก็ไม่ได้ขนาด วิธีการที่ NoSQL ไม่
และเราจะพูดคุยเล็ก ๆ น้อย ๆ บิตเกี่ยวกับสาเหตุที่เป็น
>> ตอนนี้ NoSQL ในมืออื่น ๆ มีการเพิ่มประสิทธิภาพมากขึ้นสำหรับการคำนวณ
ตกลง?
มันไม่ได้เป็นไปไม่เชื่อเรื่องพระเจ้า รูปแบบการเข้าถึง
คือสิ่งที่เราเรียก de-ปกติ โครงสร้างหรือโครงสร้างแบบลำดับชั้น
ข้อมูลในฐานข้อมูลเชิงสัมพันธ์คือ ร่วมกันจากหลายตาราง
การผลิตมุมมองที่คุณต้องการ
ข้อมูลในฐานข้อมูล NoSQL ถูกเก็บไว้ในเอกสารที่
มีโครงสร้างลำดับชั้น
ข้อมูลทั้งหมดที่จะเป็นปกติ ร่วมกันในการผลิตเห็นว่า
ถูกเก็บไว้ในเอกสารฉบับเดียว
และเราจะพูดคุยเล็กน้อยเกี่ยวกับ วิธีการที่ทำงานในคู่ของแผนภูมิ
>> แต่ความคิดที่นี่คือที่ที่คุณเก็บ ข้อมูลของคุณในขณะที่มุมมอง instantiated เหล่านี้
ตกลง?
คุณขนาดในแนวนอน
ขวา?
ถ้าผมต้องการที่จะเพิ่ม ขนาดของกลุ่ม NoSQL ของฉัน
ฉันไม่ต้องการที่จะได้รับกล่องที่ใหญ่กว่า
ฉันจะได้รับกล่องอื่น
และฉันกลุ่มเหล่านั้นเข้าด้วยกัน และฉันสามารถ Shard ข้อมูลว่า
เราจะพูดเล็กน้อยเกี่ยวกับ สิ่งที่ sharding คือการเป็น
สามารถที่จะปรับขนาดของฐานข้อมูลที่ ในอุปกรณ์ทางกายภาพหลาย
และลบอุปสรรคที่ ต้องการให้ฉันขนาดในแนวตั้ง
>> ดังนั้นจึงสร้างจริงๆสำหรับออนไลน์ การประมวลผลธุรกรรมและขนาด
มีความแตกต่างที่ยิ่งใหญ่คือ นี่ระหว่างการรายงานใช่มั้ย?
รายงานผมไม่ทราบ คำถามที่ผมจะถาม
ขวา?
Reporting-- ถ้าใครบางคนจาก ฝ่ายการตลาดของฉัน
ต้องการที่จะ just-- จำนวนของลูกค้าของฉัน มีลักษณะนี้โดยเฉพาะที่
ซื้อใน day-- นี้ผมไม่ทราบ สิ่งที่พวกเขากำลังแบบสอบถามจะถาม
ดังนั้นผมจึงจำเป็นต้องมีความเชื่อเรื่องพระเจ้า
>> ขณะนี้ในออนไลน์ แอพลิเคชันการทำธุรกรรม
ฉันรู้ว่าสิ่งที่คำถามที่ฉันขอ
ฉันสร้างพลิเคชันสำหรับ ขั้นตอนการทำงานที่เฉพาะเจาะจงมาก
ตกลง?
ดังนั้นถ้าผมเพิ่มประสิทธิภาพข้อมูล การจัดเก็บที่จะสนับสนุนกระบวนการทำงานนั้น
มันเป็นไปได้เร็วขึ้น
และที่ว่าทำไม NoSQL สามารถ จริงๆเร่งส่งมอบ
ประเภทของบริการเหล่านั้น
ทั้งหมดขวา
>> ดังนั้นเรากำลังจะได้รับใน นิด ๆ หน่อย ๆ ของทฤษฎีที่นี่
และบางส่วนของคุณตาของคุณ อาจย้อนกลับไปนิด ๆ หน่อย ๆ
แต่ฉันจะพยายามที่จะให้มัน ระดับสูงที่สุดเท่าที่จะทำได้
ดังนั้นถ้าคุณอยู่ในโครงการ การจัดการที่มี
สร้างที่เรียกว่า สามเหลี่ยม จำกัด
ตกลง.
สามเหลี่ยมของคำสั่ง constrains คุณไม่สามารถมีทุกอย่างตลอดเวลา
ไม่สามารถมีพายและกินมันเกินไป
ดังนั้นในการบริหารจัดการโครงการที่สามเหลี่ยม ข้อ จำกัด คือคุณสามารถมีได้ในราคาถูก
คุณสามารถมีได้อย่างรวดเร็ว หรือคุณสามารถมีได้ดี
เลือกสอง
เพราะคุณไม่สามารถมีทั้งสาม
ขวา?
ตกลง.
>> ดังนั้นคุณได้ยินเกี่ยวกับเรื่องนี้มาก
มันเป็นข้อ จำกัด ที่สาม สามเหลี่ยม จำกัด สาม
หรือสามเหลี่ยมเหล็ก oftentimes-- เมื่อคุณพูดคุยกับผู้จัดการโครงการ,
พวกเขาจะพูดคุยเกี่ยวกับเรื่องนี้
ตอนนี้มีฐานข้อมูล สามเหลี่ยมเหล็กของตัวเอง
และสามเหลี่ยมเหล็กของข้อมูล คือสิ่งที่เราเรียกว่าทฤษฎีบท CAP
ตกลง?
>> CAP สั่งทฤษฎีบท วิธีการใช้งานฐานข้อมูล
ภายใต้เงื่อนไขที่เฉพาะเจาะจงมาก
และเราจะพูดคุยเกี่ยวกับ สิ่งที่เป็นเงื่อนไขที่ว่า
แต่สามจุดของรูปสามเหลี่ยม เพื่อที่จะพูดเป็น C สม่ำเสมอ
ตกลง?
ดังนั้นใน CAP สอดคล้องหมายความว่าทุก ลูกค้าที่สามารถเข้าถึงฐานข้อมูล
มักจะมีมาก มุมมองที่สอดคล้องของข้อมูล
ไม่มีใครอยากเห็นสองสิ่งที่แตกต่าง
ตกลง?
ถ้าผมเห็นฐานข้อมูล ฉันเห็นมุมมองเดียวกัน
เป็นพันธมิตรของฉันที่เห็น ฐานข้อมูลเดียวกัน
นั่นคือความมั่นคง
>> มีจำหน่ายหมายความว่าถ้า ฐานข้อมูลออนไลน์ถ้ามันสามารถเข้าถึงได้,
ว่าลูกค้าทุกคนจะเสมอ สามารถอ่านและเขียน
ตกลง?
เพื่อให้ลูกค้าทุก สามารถอ่านฐานข้อมูล
ก็จะสามารถอ่าน ข้อมูลและเขียนข้อมูล
และถ้าเป็นกรณีที่ มันเป็นระบบที่มีอยู่
>> และจุดที่สามเป็นสิ่งที่ เราเรียกความอดทนพาร์ทิชัน
ตกลง?
หมายถึงความอดทนพาร์ทิชัน ว่าระบบทำงานได้ดี
แม้จะมีเครือข่ายทางกายภาพ พาร์ทิชันระหว่างโหนด
ตกลง?
ดังนั้นโหนดในคลัสเตอร์ไม่สามารถ พูดคุยกับแต่ละอื่น ๆ สิ่งที่เกิดขึ้น?
ทั้งหมดขวา
>> ฐานข้อมูลเชิงสัมพันธ์ดังนั้น choose-- คุณสามารถเลือกสองเหล่านี้
ตกลง.
ฐานข้อมูลเชิงสัมพันธ์เพื่อให้เลือก เพื่อให้สอดคล้องและสามารถใช้ได้
ถ้าพาร์ทิชันที่เกิดขึ้นระหว่าง DataNodes ในการจัดเก็บข้อมูล
เกิดปัญหาฐานข้อมูล
ขวา?
มันก็จะไปลง
ตกลง.
>> และนี่คือเหตุผลที่พวกเขามี เติบโตไปพร้อมกับกล่องที่ใหญ่กว่า
ขวา?
เพราะมี no-- ปกติกลุ่ม ฐานข้อมูลมีไม่มากมากของพวกเขา
ที่ทำงานแบบนั้น
แต่ฐานข้อมูลส่วนใหญ่ขนาด แนวตั้งภายในกล่องเดียว
เพราะพวกเขาจะต้อง สอดคล้องและสามารถใช้ได้
ถ้าพาร์ทิชันจะถูกฉีด แล้วคุณจะต้องให้ทางเลือก
คุณต้องให้เลือกระหว่าง เป็นที่สอดคล้องกันและสามารถใช้ได้
>> และนั่นคือสิ่งที่ทำฐานข้อมูล NoSQL
ทั้งหมดขวา
ดังนั้นฐานข้อมูล NoSQL มัน มาในสองรสชาติ
เรา have-- ดีก็ มาในรสชาติหลาย
แต่มันก็มาพร้อมกับสองขั้นพื้นฐาน characteristics-- สิ่งที่
เราจะเรียกฐานข้อมูล CP หรือ สอดคล้องและความอดทนพาร์ทิชัน
ระบบ.
พวกเหล่านี้ให้ทางเลือกที่ว่าเมื่อ โหนดสูญเสียการติดต่อกับแต่ละอื่น ๆ
เราไม่ได้ไปเพื่อให้ คนที่จะเขียนใด ๆ เพิ่มเติม
ตกลง?
>> จนกระทั่งพาร์ติชันที่ถูกลบออก เขียนเข้าถึงถูกบล็อก
นั่นหมายความว่าพวกเขาจะไม่สามารถใช้ได้
พวกเขากำลังที่สอดคล้องกัน
เมื่อเราเห็นว่า พาร์ทิชันฉีดเอง
ตอนนี้เรามีความสอดคล้องกัน เพราะเราไม่ได้ไป
เพื่อให้การเปลี่ยนแปลงข้อมูลในสอง ด้านข้างของพาร์ทิชันอิสระ
ของกันและกัน.
เราจะต้อง กอบกู้การสื่อสาร
ก่อนการปรับปรุงใด ๆ ข้อมูลที่ได้รับอนุญาต
ตกลง?
>> รสชาติที่ต่อไปจะมีระบบ AP, หรือที่มีอยู่และแบ่งพาร์ติชัน
ระบบความอดทน
คนพวกนี้ไม่สนใจ
ขวา?
โหนดใด ๆ ที่ได้รับ เขียนเราจะใช้มัน
ดังนั้นฉันจำลองข้อมูลของฉัน ข้ามโหนดหลาย
โหนดเหล่านี้จะได้รับลูกค้าลูกค้ามา ในกล่าวว่าฉันจะเขียนข้อมูลบางส่วน
โหนดกล่าวว่าไม่มีปัญหา
โหนดถั​​ดจากเขาได้รับ เขียนในบันทึกเดียวกัน
เขาจะบอกว่าไม่มีปัญหา
ที่ไหนสักแห่งกลับมาที่ปลายด้านหลัง ข้อมูลที่จะทำซ้ำ
และแล้วคนที่จะตระหนักถึง UH-Oh, ระบบพวกเขาจะตระหนักถึง UH​​-โอ้
มีการการปรับปรุงไปยังทั้งสองฝ่าย
พวกเราทำอะไร?
และสิ่งที่พวกเขาทำแล้ว ที่พวกเขาทำสิ่งที่
ช่วยให้พวกเขาในการแก้ไขข้อมูลที่รัฐ
และเราจะพูดคุยเกี่ยวกับ ว่าในแผนภูมิต่อไป
>> สิ่งที่จะชี้ให้เห็นที่นี่
และฉันจะไม่ได้รับมากเกินไป มากเป็นแบบนี้เพราะนี้
ได้รับในทฤษฎีข้อมูลลึก
แต่มีการทำธุรกรรม กรอบที่
วิ่งในระบบความสัมพันธ์ที่ ช่วยให้ผมที่จะทำให้การปรับปรุงได้อย่างปลอดภัย
ไปยังหน่วยงานหลายแห่งในฐานข้อมูล
และการปรับปรุงเหล่านั้นจะเกิดขึ้นได้ ทั้งหมดในครั้งเดียวหรือไม่ทั้งหมด
และนี่คือที่เรียกว่าการทำธุรกรรมกรด
ตกลง?
>> กรดจะช่วยให้เรา atomicity สม่ำเสมอ การแยกและความทนทาน
ตกลง?
นั่นหมายความว่าอะตอมการทำธุรกรรมทั้งหมด การปรับปรุงของฉันเกิดขึ้นอย่างใดอย่างหนึ่งหรือพวกเขาไม่ได้
สอดคล้องหมายความว่า ฐานข้อมูลจะเสมอ
จะนำเข้ามาที่สอดคล้องกัน รัฐหลังจากการปรับปรุง
ฉันไม่เคยจะออกจากฐานข้อมูลในที่ รัฐที่ไม่ดีหลังจากใช้การปรับปรุง
ตกลง?
>> ดังนั้นจึงเป็นที่แตกต่างกันเล็ก ๆ น้อย ๆ กว่าสอดคล้อง CAP
สอดคล้อง CAP หมายถึงทั้งหมดของฉัน ลูกค้าสามารถดูข้อมูล
สอดคล้องกรดหมายความว่าเมื่อ การทำธุรกรรมที่ทำข้อมูลที่ดี
ความสัมพันธ์ของฉันเป็นสิ่งที่ดีทั้งหมด
ฉันจะไม่ลบแถวผู้ปกครอง และออกจากพวงของเด็กเด็กกำพร้า
ในบางตารางอื่น ๆ
มันไม่สามารถเกิดขึ้นได้หากฉันที่สอดคล้องกัน ในการทำธุรกรรมกรด
>> แยกหมายความว่าการทำธุรกรรม มักจะเกิดขึ้นหนึ่งหลังจากที่อื่น
ผลลัพธ์ที่ได้จากข้อมูล จะมีสภาพเดียวกัน
ราวกับว่ารายการดังกล่าว ที่ถูกออกพร้อมกัน
กำลังดำเนินการเป็นลำดับ
ดังนั้นจึงเป็นที่เห็นพ้องด้วย การควบคุมในฐานข้อมูล
ดังนั้นโดยทั่วไปผมไม่สามารถที่เพิ่มขึ้น ค่าเดียวกันสองครั้งสองการดำเนินงาน
>> แต่ถ้าผมบอกว่าจะเพิ่ม 1 ค่านี้ และสองรายการมาใน
และพยายามที่จะทำมันเป็นอย่างใดอย่างหนึ่ง จะได้รับมีครั้งแรก
และอีกคนหนึ่งของ จะได้รับหลังจากที่มี
ดังนั้นในท้ายที่สุดผมเพิ่มอีกสอง
คุณจะเห็นสิ่งที่ฉันหมายความว่าอย่างไร
ตกลง.
>> ความคงทนตรงไปตรงสวย
เมื่อการทำธุรกรรม เป็นที่ยอมรับมัน
จะต้องมีแม้กระทั่ง ถ้าระบบล่ม
เมื่อระบบที่กู้ที่ การทำธุรกรรมที่มีความมุ่งมั่น
เป็นจริงจะต้องมี
เพื่อให้การค้ำประกัน ของการทำธุรกรรมกรด
ผู้ที่มีการค้ำประกันที่ดีงาม ที่จะมีในฐานข้อมูล
แต่พวกเขามาที่ค่าใช้จ่ายที่
ขวา?
>> เพราะปัญหาที่เกิดขึ้น กรอบนี้
ถ้ามีพาร์ทิชันในข้อมูลที่ ชุดผมต้องตัดสินใจ
ฉันจะต้องอนุญาตให้ การปรับปรุงในด้านใดด้านหนึ่งหรืออื่น ๆ
และถ้าเกิดว่า แล้วฉันไม่ไป
เพื่อให้สามารถที่จะรักษา ลักษณะเหล่านั้น
พวกเขาจะไม่สอดคล้องกัน
พวกเขาจะไม่ถูกแยกออก
ซึ่งเป็นที่ที่หยุดพักลง สำหรับฐานข้อมูลเชิงสัมพันธ์
นี่คือเหตุผลที่เชิงสัมพันธ์ ฐานข้อมูลขนาดในแนวตั้ง
>> ในทางกลับกันเรามี สิ่งที่เรียกว่าเทคโนโลยีฐาน
และเหล่านี้เป็นฐานข้อมูล NoSQL ของคุณ
ทั้งหมดขวา
ดังนั้นเราจึงมีซีพีของเราฐานข้อมูล AP
และเหล่านี้คือสิ่งที่คุณเรียกโดยทั่วไป สามารถใช้ได้รัฐอ่อนที่สุด
ที่สอดคล้องกัน
ตกลง?
>> ที่มีอยู่โดยทั่วไปเพราะ พวกเขากำลังใจกว้างพาร์ทิชัน
พวกเขามักจะเป็น มีแม้ถ้ามี
พาร์ทิชันเครือข่ายระหว่างโหนด
ถ้าฉันสามารถพูดคุยกับโหนดผม จะสามารถอ่านข้อมูล
ตกลง?
ผมอาจจะไม่เสมอสามารถที่จะเขียน ข้อมูลหากฉันเป็นแพลตฟอร์มที่สอดคล้องกัน
แต่ฉันจะสามารถอ่านข้อมูล
>> รัฐอ่อนบ่งชี้ ว่าเมื่อผมอ่านข้อมูลที่
มันอาจจะไม่เป็นเช่นเดียวกับโหนดอื่น ๆ
หากสิทธิที่ออกในโหนด ที่อื่นในคลัสเตอร์
และมันก็ยังไม่ได้จำลองแบบข้าม กลุ่ม แต่เมื่อผมอ่านที่ข้อมูล
รัฐที่อาจจะไม่สอดคล้อง
แต่มันจะเป็น ที่สอดคล้องกันในที่สุด
หมายความว่าเมื่อมีการเขียน จะทำให้ระบบ
มันจะทำซ้ำทั่วโหนด
และในที่สุดรัฐ จะถูกนำเข้ามาในการสั่งซื้อ
และมันจะเป็นสถานะที่สอดคล้องกัน
>> ตอนนี้ทฤษฎีบท CAP จริงๆ เล่นเพียงหนึ่งในเงื่อนไข
เงื่อนไขนั่นคือเมื่อเกิดเหตุการณ์นี้
เพราะเมื่อใดก็ตามที่มันดำเนินงานใน โหมดปกติมีพาร์ทิชันไม่
ทุกอย่างสอดคล้องและสามารถใช้ได้
คุณจะต้องกังวลเกี่ยวกับ CAP เมื่อเรามีพาร์ติชันที่
ดังนั้นผู้ที่เป็นของหายาก
แต่วิธีการที่ระบบตอบสนองเมื่อบรรดา สิ่งที่เกิดขึ้นกำหนดประเภทของระบบ
เราจัดการกับ
>> ดังนั้นลองมาดูสิ่งที่ ที่ดูเหมือนว่าสำหรับระบบ AP
ตกลง?
ระบบ AP มาในสองรสชาติ
พวกเขามาในรสชาติที่มี ต้นแบบต้นแบบ 100% สามารถใช้ได้ตลอดเวลา
และพวกเขามาใน รสชาติอื่น ๆ ซึ่งกล่าวว่า
คุณรู้ว่าฉันจะต้องกังวล เกี่ยวกับสิ่งที่แบ่งพาร์ทิชันนี้
เมื่อพาร์ทิชันที่เกิดขึ้นจริงที่เกิดขึ้น
มิฉะนั้นมีจะเป็นหลัก โหนดที่จะใช้สิทธิ
ตกลง?
>> ดังนั้นหากเราสิ่งที่ต้องการคาสซานดรา
คาสซานดราจะเป็นหลัก ต้นแบบให้ฉันเขียนไปยังโหนดใด ๆ
ดังนั้นสิ่งที่เกิดขึ้น?
ดังนั้นผมจึงมีวัตถุที่อยู่ในที่ ฐานข้อมูลที่มีอยู่ในสองโหนด
ขอเรียกวัตถ​​ุเอสว่า ดังนั้นเราจึงมีรัฐเอส
เรามีการดำเนินการบางอย่าง ใน S ที่มีอย่างต่อเนื่อง
คาสซานดราช่วยให้ฉันไป เขียนถึงโหนดหลาย
ดังนั้นสมมติว่าฉันจะได้รับ เขียนเพื่อสองโหนด
ดีสิ่งที่จบลงด้วยการเกิดขึ้นคือ ที่เราเรียกว่าเหตุการณ์แบ่ง
อาจไม่เป็น พาร์ทิชันเครือข่ายทางกายภาพ
แต่เพราะการออกแบบ ของระบบก็
จริงแบ่งเป็นเร็ว ๆ นี้ ที่ฉันได้รับการเขียนเกี่ยวกับสองโหนด
มันไม่ได้บังคับให้ฉัน เขียนทั้งหมดผ่านทางหนึ่งโหนด
ผมเขียนในสองโหนด
ตกลง?
>> ดังนั้นตอนนี้ฉันมีสองรัฐ
ตกลง?
สิ่งที่จะเกิดขึ้น คือไม่ช้าก็เร็ว
มีจะเป็นเหตุการณ์จำลองแบบ
มีจะเป็นสิ่งที่เรา เรียกว่ากู้พาร์ทิชันที่
เป็นที่ที่ทั้งสอง รัฐกลับมาอยู่ด้วยกัน
และมีจะเป็นอัลกอริทึม ที่ทำงานอยู่ภายในฐานข้อมูล
ตัดสินใจว่าจะทำอย่างไร
ตกลง?
โดยค่าเริ่มต้นการปรับปรุงครั้งล่าสุด ชนะในที่สุดระบบ AP
จึงมีมักจะเป็น ขั้นตอนวิธีการเริ่มต้นสิ่งที่
ที่พวกเขาเรียกโทรกลับ ฟังก์ชั่นบางอย่างที่
จะถูกเรียกว่าเมื่อสภาพนี้ มีการตรวจพบจะดำเนินการตรรกะบาง
ที่จะแก้ปัญหาความขัดแย้งที่
ตกลง?
การเรียกกลับเริ่มต้นและการเริ่มต้น จำแนกในส่วนฐานข้อมูล AP
มีการคาดเดาสิ่งที่ประทับชนะ
นี่คือการปรับปรุงครั้งล่าสุด
ฉันจะใส่ในการปรับปรุงที่มี
ผมอาจจะถ่ายโอนข้อมูลบันทึกนี้ที่ฉัน ทิ้งออกไปบันทึกการกู้คืน
เพื่อให้ผู้ใช้สามารถกลับมาในภายหลัง และพูดว่าเดี๋ยวก่อนมีการปะทะกัน
เกิดอะไรขึ้น?
จริงและคุณสามารถถ่ายโอนข้อมูลบันทึกของ การชนกันทั้งหมดและ rollbacks
และดูสิ่งที่เกิดขึ้น
>> ขณะนี้เป็นผู้ใช้คุณยังสามารถ รวมถึงตรรกะโทรกลับเข้าที่
เพื่อให้คุณสามารถเปลี่ยนที่ การดำเนินการเรียกกลับ
คุณสามารถพูดได้เดี๋ยวก่อนฉันต้องการ เพื่อ remediate ข้อมูลนี้
และฉันต้องการที่จะลองและ รวมทั้งสองบันทึก
แต่นั่นขึ้นอยู่กับคุณ
ฐานข้อมูลไม่ทราบวิธีการ ทำได้โดยการเริ่มต้น ส่วนใหญ่เวลาที่
สิ่งเดียวที่ฐานข้อมูล รู้วิธีการที่จะทำคือการพูดว่า
อันนี้เป็นบันทึกที่ผ่านมา
นั่นเป็นหนึ่งที่จะชนะ และนั่นคือค่าฉันจะใส่
เมื่อกู้พาร์ทิชันที่ และการจำลองแบบเกิดขึ้น
เรามีรัฐของเราที่ คือตอนนี้ S ที่สำคัญซึ่งเป็น
รัฐผสานของวัตถุเหล่านั้นทั้งหมด
ดังนั้นระบบ AP มีนี้
ระบบ CP ไม่จำเป็นต้อง ที่จะต้องกังวลเกี่ยวกับเรื่องนี้
เพราะทันทีที่พาร์ทิชันมา ลงเล่นพวกเขาเพียงแค่หยุดการ
เขียน
ตกลง?
เพื่อให้ง่ายมากที่จะ จัดการกับการที่สอดคล้องกัน
เมื่อคุณไม่ได้รับการปรับปรุงใด ๆ
นั่นคือกับระบบ CP ทำ
ทั้งหมดขวา
>> ดังนั้นขอพูดคุยเล็ก ๆ น้อย ๆ รูปแบบเล็กน้อยเกี่ยวกับการเข้าถึง
เมื่อเราพูดถึง NoSQL มัน ทั้งหมดเกี่ยวกับรูปแบบการเข้าถึง
ตอนนี้ SQL เป็นเฉพาะกิจแบบสอบถาม
มันเป็นร้านค้าสัมพันธ์
เราไม่ต้องกังวล เกี่ยวกับรูปแบบการเข้าถึง
ผมเขียนแบบสอบถามที่ซับซ้อนมาก
มันจะไปและได้รับข้อมูล
นั่นคือสิ่งที่มีลักษณะนี้ เช่นการฟื้นฟู
>> ดังนั้นในโครงสร้างนี้โดยเฉพาะอย่างยิ่ง เรากำลังมองหาที่แคตตาล็อกผลิตภัณฑ์
ฉันมีความแตกต่างของผลิตภัณฑ์
ผมมีหนังสือ
ฉันมีอัลบั้ม
ฉันมีวิดีโอ
ความสัมพันธ์ระหว่างผลิตภัณฑ์ และคนใดคนหนึ่งของหนังสือเหล่านี้, อัลบั้ม,
และตารางวิดีโอเป็น 1: 1
ทั้งหมดใช่มั้ย?
ฉันมีรหัสผลิตภัณฑ์ และสอดคล้อง ID
หนังสือเล่ม, อัลบั้มหรือวิดีโอ
ตกลง?
นั่นเป็น 1: 1 ความสัมพันธ์ ข้ามตารางเหล่านั้น
>> ตอนนี้สิ่งที่พวกเขา books-- มีคุณสมบัติเป็นราก
ไม่มีปัญหา.
นั่นวิเศษมาก
หนึ่งต่อหนึ่งความสัมพันธ์ของฉันได้รับทั้งหมด ข้อมูลที่ฉันต้องการที่จะอธิบายหนังสือที่
อัลบั้ม Albums-- มีแทร็ค
นี่คือสิ่งที่เราเรียกว่าหนึ่งไปยังหลาย ๆ
ทุกอัลบั้มอาจมีหลายแทร็ค
ดังนั้นสำหรับการติดตามทุก อัลบั้มที่ผมจะได้มี
บันทึกในตารางเด็กคนนี้อีก
ดังนั้นผมจึงสร้างระเบียนหนึ่ง ในตารางอัลบั้มของฉัน
ฉันจะสร้างหลายระเบียน ในตารางแทร็ค
ความสัมพันธ์แบบหนึ่งต่อหลาย
>> ความสัมพันธ์นี้คือสิ่งที่ ที่เราเรียกว่าหลายต่อหลายคน
ตกลง?
คุณจะเห็นว่านักแสดงอาจจะ ในภาพยนตร์หลายวิดีโอจำนวนมาก
ดังนั้นสิ่งที่เราทำคือเราใส่การทำแผนที่นี้ ตารางระหว่างเหล่านั้นซึ่งมันก็
แผนที่ ID นักแสดงกับวิดีโอประจำตัวประชาชน
ตอนนี้ฉันสามารถสร้างแบบสอบถามร่วม วิดีโอผ่านวิดีโอกับนักแสดงนักแสดง,
และมันทำให้ผมมีรายการที่ดีของ ภาพยนตร์ทั้งหมดและนักแสดงทั้งหมด
ที่อยู่ในหนังเรื่องนี้ว่า
>> ตกลง.
ดังนั้นที่นี่เราไป
One-to-One เป็นระดับบนสุด ความสัมพันธ์; แบบหนึ่งต่อหลาย
อัลบั้มเพลง; หลายต่อหลายคน
เหล่านี้เป็นสามระดับบนสุด ความสัมพันธ์ในฐานข้อมูลใด ๆ
ถ้าคุณรู้ว่าวิธีการเหล่านั้น ความสัมพันธ์การทำงานร่วมกัน
แล้วคุณจะรู้มาก เกี่ยวกับฐานข้อมูลแล้ว
ดังนั้น NoSQL ทำงานแตกต่างกันเล็กน้อย
ลองคิดเกี่ยวกับการที่สองสิ่งที่มัน ดูเหมือนว่าจะไปรับสินค้าทั้งหมดของฉัน
>> ในร้านค้าสัมพันธ์ฉัน ต้องการที่จะได้รับผลิตภัณฑ์ของฉัน
อยู่ในรายชื่อของผลิตภัณฑ์ทั้งหมดของฉัน
นั่นเป็นจำนวนมากของแบบสอบถาม
ผมได้รับการสอบถามสำหรับหนังสือทุกเล่มของฉัน
ผมได้รับการสอบถามจากอัลบั้มของฉัน
และผมได้รับการสอบถามสำหรับวิดีโอทั้งหมดของฉัน
และฉันได้ที่จะนำมัน ทั้งหมดเข้าด้วยกันในรายการ
และให้บริการได้กลับขึ้นไป แอพลิเคชันที่ร้องขอ
>> ที่จะได้รับหนังสือของฉันฉันเข้าร่วม ผลิตภัณฑ์และหนังสือ
ที่จะได้รับอัลบั้มของฉันฉันได้รับที่จะเข้าร่วม ผลิตภัณฑ์อัลบั้มและเพลง
และเพื่อให้ได้วิดีโอของฉันฉันมี ผลิตภัณฑ์ที่จะเข้าร่วมในการวิดีโอ,
เข้าร่วมผ่านวิดีโอดารา และนำมาในนักแสดง
เพื่อให้เป็นสามคำสั่ง
คำสั่งที่ซับซ้อนมาก ประกอบชุดผลอย่างใดอย่างหนึ่ง
>> ที่น้อยกว่าที่ดีที่สุด
นี่คือเหตุผลที่เมื่อเราพูด เกี่ยวกับโครงสร้างข้อมูลที่
สร้างขึ้นเพื่อเป็นที่จะไม่เชื่อเรื่องพระเจ้าเข้าถึง pattern-- กันดีว่าเป็นเรื่องใหญ่
และคุณสามารถเห็นนี้เป็นจริง วิธีที่ดีที่เราได้จัดข้อมูล
และคุณรู้ว่าสิ่งที่?
ฉันมีเพียงหนึ่งระเบียนสำหรับนักแสดง
>> ที่เย็น
ฉันได้ deduplicated นักแสดงทั้งหมดของฉัน และฉันเก็บรักษาความสัมพันธ์ของฉัน
ในตารางการทำแผนที่นี้
แต่ได้รับข้อมูล ออกมีราคาแพง
ฉันส่งซีพียูทั่วระบบ ร่วมงานกับโครงสร้างข้อมูลเหล่านี้ร่วมกัน
เพื่อให้สามารถที่จะดึงข้อมูลที่กลับมา
>> ดังนั้นฉันจะได้รับรอบที่?
ใน NoSQL มันเป็นเรื่องของ รวมไม่ฟื้นฟู
ดังนั้นเราจึงอยากจะบอกว่าเราต้องการที่จะ สนับสนุนรูปแบบการเข้าถึง
หากรูปแบบการเข้าถึง เพื่อการใช้งานที่
ฉันต้องการที่จะได้รับผลิตภัณฑ์ทั้งหมดของฉัน
ขอนำผลิตภัณฑ์ทั้งหมดในหนึ่งตาราง
ถ้าผมจะนำผลิตภัณฑ์ทั้งหมดในหนึ่งตาราง ฉันสามารถเลือกผลิตภัณฑ์ทั้งหมด
จากตารางที่ผมได้รับมันทั้งหมด
ดีฉันจะทำเช่นนั้น?
ดีใน NoSQL ไม่มี โครงสร้างตาราง
เราจะพูดเล็กน้อยเกี่ยวกับ วิธีการทำงานนี้ในไดนาโม DB
แต่คุณไม่ได้เหมือนกัน คุณลักษณะและคุณสมบัติเดียวกัน
ในทุกแถวเดียวในทุกๆ รายการเช่นที่คุณทำในตาราง SQL
และสิ่งนี้จะช่วยให้ฉัน ที่จะทำคือสิ่งต่างๆมากมาย
และให้ฉันมีความยืดหยุ่นมาก
โดยเฉพาะในกรณีนี้ผม มีเอกสารผลิตภัณฑ์ของฉัน
และในการนี​​้โดยเฉพาะ ตัวอย่างเช่นทุกอย่าง
เป็นเอกสารในตารางผลิตภัณฑ์
และผลิตภัณฑ์สำหรับหนังสืออาจจะ มีบัตรประจำตัวที่ระบุประเภทหนังสือ
และการประยุกต์ใช้ จะเปลี่ยนใน ID ที่
>> ในระดับโปรแกรมประยุกต์ที่ฉันจะ ที่จะบอกว่าโอ้สิ่งที่ประเภทบันทึกนี้คืออะไร?
โอ้ก็บันทึกหนังสือ
บันทึกหนังสือมีคุณสมบัติเหล่านี้
ผมขอสร้างวัตถุหนังสือ
ดังนั้นฉันจะเติม วัตถุหนังสือกับรายการนี​​้
รายการถัดมาและ กล่าวว่าสิ่งที่รายการนี​​้?
ดีรายการนี​​้เป็นอัลบั้ม
โอ้ฉันมีความแตกต่างกันทั้ง ประจำการประมวลผลสำหรับการที่
เพราะมันเป็นอัลบั้ม
คุณจะเห็นสิ่งที่ฉันหมายความว่าอย่างไร
>> ดังนั้นการประยุกต์ใช้ tier-- ฉัน เพียงแค่เลือกระเบียนทั้งหมดเหล่านี้
พวกเขาทั้งหมดเริ่มต้นมา
พวกเขาอาจจะทุกประเภทที่แตกต่างกัน
และมันก็เป็นตรรกะของโปรแกรมประยุกต์ ที่สลับข้ามประเภทที่
และตัดสินใจวิธีการดำเนินการให้
>> อีกครั้งดังนั้นเราเพิ่มประสิทธิภาพ คีมาสำหรับรูปแบบการเข้าถึง
เรากำลังทำมันโดย ยุบตารางเหล่านั้น
เรากำลังโดยทั่วไปการ โครงสร้างเหล่านี้ปกติ
และเรากำลังสร้าง โครงสร้างลำดับชั้น
ภายในแต่ละระเบียนเหล่านี้ ฉันจะไปดูคุณสมบัติอาร์เรย์
>> ภายในเอกสารสำหรับอัลบั้มนี้ ฉันเห็นอาร์เรย์ของแทร็ค
แทร็คที่ตอนนี้ become-- มัน พื้นโต๊ะเด็กคนนี้ว่า
อยู่ที่นี่ในโครงสร้างนี้
เพื่อให้คุณสามารถทำเช่นนี้ใน DynamoDB
คุณสามารถทำเช่นนี้ใน MongoDB
คุณสามารถทำเช่นนี้ในฐานข้อมูลใด ๆ NoSQL
สร้างประเภทเหล่านี้ โครงสร้างข้อมูลแบบลำดับชั้น
ที่ช่วยให้คุณสามารถดึงข้อมูล ได้อย่างรวดเร็วเพราะตอนนี้ฉัน
ไม่ได้มีเพื่อให้สอดคล้อง
เมื่อฉันแทรกแถวลงไปในเพลงได้ ตารางหรือแถวลงในตารางอัลบัมที่
ฉันมีเพื่อให้สอดคล้องกับสคีมาที่
ฉันต้องมีแอตทริบิวต์หรือที่ สถานที่ให้บริการที่กำหนดไว้ในตารางที่
ทุกหนึ่งของพวกเขา เมื่อฉันแทรกแถวที่
กรณีที่ไม่อยู่ใน NoSQL
>> ฉันจะมีที่แตกต่างกันโดยสิ้นเชิง คุณสมบัติในเอกสารทุก
ที่ผมใส่ลงในคอลเลกชัน
ดังนั้นกลไกที่มีประสิทธิภาพมาก
และมันก็เป็นวิธีการที่คุณจริงๆ เพิ่มประสิทธิภาพของระบบ
เพราะตอนนี้แบบสอบถามที่แทน ของการเข้าร่วมตารางทั้งหมดเหล่านี้
และการดำเนินงานครึ่งโหลคำสั่ง ที่จะดึงกลับข้อมูลที่ฉันต้องการที่
ผมดำเนินการอย่างใดอย่างหนึ่งแบบสอบถาม
และฉันทำซ้ำ ในชุดผล
มันจะช่วยให้คุณมีความคิด ของการใช้พลังงานของ NoSQL
ฉันจะชนิดของที่นี่ไปด้านข้าง และพูดคุยนิด ๆ หน่อย ๆ เกี่ยวกับเรื่องนี้
นี้เป็นชนิดอื่น ๆ ของ ตลาดหรือ technology--
การตลาดของเทคโนโลยี ประเภทของการสนทนา
แต่มันเป็นสิ่งสำคัญที่จะเข้าใจ เพราะถ้าเรามองไปที่ด้านบน
ที่นี่ที่แผนภูมินี้ สิ่งที่เรากำลังมองหาที่
คือสิ่งที่เราเรียกว่า โค้ง hype เทคโนโลยี
และสิ่งที่หมายถึงนี้คือ สิ่งใหม่ ๆ เข้ามาในเล่น
คนคิดว่ามันเป็นเรื่องใหญ่
ฉันได้รับการแก้ไขปัญหาของฉันทั้งหมด
>> ซึ่งอาจเป็นที่สิ้นสุด ทั้งหมดเป็นสิ่งที่ทุกอย่าง
และพวกเขาเริ่มใช้มัน
และพวกเขากล่าวว่าสิ่งนี้ไม่ได้ทำงาน
นี้ไม่ถูกต้อง
สิ่งที่ดีกว่าเดิม
และพวกเขาจะกลับไปทำ สิ่งที่ทางพวกเขา
และแล้วในที่สุด พวกเขาไปคุณรู้อะไรไหม
สิ่งนี้จะไม่เลวร้าย
โอ้ว่าวิธีการทำงาน
และเมื่อพวกเขาคิดว่ามัน ผลงานที่พวกเขาเริ่มได้รับที่ดีกว่า
>> และสิ่งที่ตลกเกี่ยวกับเรื่องนี้ คือชนิดของมันเส้นขึ้นกับสิ่งที่
ที่เราเรียกว่าเส้นโค้งการยอมรับเทคโนโลยี
ดังนั้นสิ่งที่เกิดขึ้นคือเรามี บางทริกเกอร์เทคโนโลยีการจัดเรียง
ในกรณีที่ฐานข้อมูล มันเป็นความดันข้อมูล
เราได้พูดคุยเกี่ยวกับจุดน้ำสูง ข้อมูลของความดันตลอดระยะเวลา
เมื่อความดันฮิตข้อมูลบางอย่าง จุดที่ทริกเกอร์เทคโนโลยี
>> มันเริ่มแพงเกินไป
มันต้องใช้เวลานานเกินไปในการประมวลผลข้อมูล
เราจำเป็นต้องมีสิ่งที่ดีกว่า
คุณจะได้รับนวัตกรรม ออกมีวิ่งไปรอบ ๆ
พยายามที่จะหาสิ่งที่แก้ปัญหา
อะไรคือความคิดใหม่ได้หรือไม่
>> อะไรต่อไปดีที่สุด วิธีการที่จะทำสิ่งนี้หรือไม่?
และพวกเขามากับสิ่งที่
และคนที่มีอาการปวดจริง คนที่ขอบเลือดที่
พวกเขาจะกระโดดทั่วมัน เพราะพวกเขาต้องการคำตอบ
ตอนนี้สิ่งที่หลีกเลี่ยงไม่ได้และ happens-- มันเกิดขึ้นในขณะนี้ใน NoSQL
ฉันเห็นมันตลอดเวลา
>> สิ่งที่หลีกเลี่ยงไม่ได้ที่เกิดขึ้นคือ ผู้คนเริ่มใช้เครื่องมือใหม่
แบบเดียวกับที่พวกเขาใช้เครื่องมือเก่า
และพวกเขาพบว่ามัน ไม่ได้ทำงานให้ดี
ผมจำไม่ได้ว่าผมเป็นใคร พูดคุยกับก่อนหน้านี้ในวันนี้
แต่มันก็เหมือนเมื่อ ทะลุทะลวงถูกคิดค้น
คนไม่แกว่งมันมากกว่า หัวของพวกเขาที่จะทุบคอนกรีต
>> แต่นั่นคือสิ่งที่เป็น ที่เกิดขึ้นกับ NoSQL ในวันนี้
ถ้าคุณเดินเข้าไปในร้านค้าส่วนใหญ่ พวกเขากำลังพยายามที่จะเป็นร้านค้า NoSQL
สิ่งที่พวกเขากำลังทำคือการ พวกเขากำลังใช้ NoSQL,
และพวกเขากำลังโหลด เต็มรูปแบบของสคีสัมพันธ์
เนื่องจากว่าเป็นวิธีที่ พวกเขาออกแบบฐานข้อมูล
และพวกเขากำลังสงสัยว่าทำไม มันไม่ได้ดำเนินการเป็นอย่างดี?
Boy, สิ่งนี้มีกลิ่นเหม็น
ผมต้องรักษาทั้งหมดของฉัน ร่วม in-- ก็เหมือนไม่มี
รักษาร่วม?
คุณจะมาร่วมงานกับข้อมูลทำไม?
คุณไม่ได้เข้าร่วมในข้อมูล NoSQL
คุณรวมมัน
>> ดังนั้นหากคุณต้องการที่จะหลีกเลี่ยงปัญหานี้ได้เรียนรู้ ว่าเครื่องมือการทำงานก่อนที่จะ
เริ่มใช้มัน
อย่าพยายามและใช้เครื่องมือใหม่ แบบเดียวกับที่คุณใช้เครื่องมือเก่า
คุณกำลังจะมีประสบการณ์ที่ไม่ดี
และทุกครั้งเดียว นั่นคือสิ่งนี้เป็นเรื่องเกี่ยว
เมื่อเราเริ่มต้นขึ้นมาที่นี่ มันเป็นเพราะคนที่คิดออก
วิธีการใช้เครื่องมือ
>> พวกเขาทำในสิ่งเดียวกันเมื่อ ฐานข้อมูลเชิงสัมพันธ์ที่ถูกคิดค้น
และพวกเขาก็เปลี่ยนระบบไฟล์
พวกเขาพยายามที่จะสร้างระบบไฟล์ กับฐานข้อมูลเชิงสัมพันธ์
เพราะนั่นคือสิ่งที่ผู้คนเข้าใจ
มันไม่ได้ทำงาน
ดังนั้นการทำความเข้าใจปฏิบัติที่ดีที่สุด ของเทคโนโลยีที่คุณกำลังทำงานกับ
มีขนาดใหญ่มาก
สำคัญมาก.
>> ดังนั้นเรากำลังจะได้รับใน DynamoDB
DynamoDB เป็นของ AWS อย่างเต็มที่ที่มีการจัดการแพลตฟอร์ม NoSQL
อะไรที่มีการจัดการอย่างเต็มที่หมายความว่าอย่างไร
มันหมายความว่าคุณไม่จำเป็นต้อง จริงๆกังวลเกี่ยวกับอะไร
>> คุณมาที่คุณบอก เราผมต้องตาราง
มันต้องมีความจุมากขนาดนี้
คุณกดปุ่มและการให้เรา โครงสร้างพื้นฐานที่อยู่เบื้องหลังฉาก
ตอนนี้เป็นอย่างมาก
>> เพราะเมื่อคุณพูดคุย เกี่ยวกับการปรับฐานข้อมูล
NoSQL กลุ่มข้อมูล ขนาดทำงานเพตาไบต์,
ทำงานนับล้าน การทำธุรกรรมต่อวินาที
สิ่งเหล่านี้เป็นกลุ่มเล็ก ๆ ไม่ได้
เรากำลังพูดถึงหลายพันกรณี
ผู้จัดการพันกรณี แม้กระทั่งกรณีเสมือน
เป็นความเจ็บปวดจริงในก้น
ผมหมายถึงคิดเกี่ยวกับเวลาทุก แพทช์ระบบปฏิบัติการออกมา
หรือรุ่นใหม่ของฐานข้อมูล
นั่นหมายความว่าอย่างไร ในการดำเนินงานให้กับคุณ?
ซึ่งหมายความว่าคุณได้ 1,200 เซิร์ฟเวอร์ที่ต้องมีการปรับปรุง
ตอนนี้แม้จะมีระบบอัตโนมัติ ที่สามารถใช้เวลานาน
ที่สามารถทำให้เกิดจำนวนมาก อาการปวดหัวในการดำเนินงาน
เพราะผมอาจจะมีการให้บริการลง
>> ขณะที่ผมปรับปรุงฐานข้อมูลเหล่านี้ผม อาจจะใช้งานสีเขียวสีฟ้า
ที่ฉันปรับใช้และอัพเกรดครึ่งหนึ่งของฉัน โหนดแล้วอัพเกรดอีกครึ่งหนึ่ง
ใช้เวลาเหล่านั้นลง
ดังนั้นการจัดการโครงสร้างพื้นฐาน ขนาดเป็นความเจ็บปวดอย่างมาก
และ AWS เอาความเจ็บปวดที่ออกมาจากมัน
และฐานข้อมูล NoSQL สามารถ จะเจ็บปวดเป็นพิเศษ
เพราะวิธีที่พวกเขาขนาด
>> ขนาดในแนวนอน
ถ้าคุณต้องการที่จะได้รับใหญ่ NoSQL ฐานข้อมูลที่คุณจะซื้อโหนดเพิ่มเติม
โหนดที่คุณจะซื้อทุกคนเป็น อีกปวดหัวในการดำเนินงาน
ดังนั้นขอให้คนอื่นทำเพื่อคุณ
AWS สามารถทำเช่นนั้น
>> เราสนับสนุนค่าคีย์เอกสาร
ตอนนี้เราไม่ได้ไปมากเกินไป เข้ามาในชาร์ตอื่น ๆ
มีจำนวนมากที่แตกต่างกันคือ รสชาติของ NoSQL
พวกเขากำลังชนิดของการได้รับทั้งหมด munged ร่วมกันที่จุดนี้
คุณสามารถดู DynamoDB และบอกว่าใช่ เราทั้งสองเอกสารและค่าคีย์
เก็บจุดนี้
และคุณสามารถยืนยันคุณสมบัติ หนึ่งในช่วงอื่น ๆ
ให้ฉันจำนวนมากนี้เป็นจริงหก หนึ่งครึ่งโหลของอื่น ๆ
ทุกคนของเทคโนโลยีเหล่านี้เป็น เทคโนโลยีที่ดีและเป็นทางออกที่ดี
ฉันจะไม่พูด MongoDB จะดีกว่าหรือ เลวร้ายยิ่งกว่าที่นอนแล้วคาสซานดรา
แล้วไดนาโมหรือในทางกลับกัน
ผมหมายถึงเหล่านี้เป็นเพียงตัวเลือก
>> มันรวดเร็วและก็ ที่สอดคล้องกันในระดับใด
ดังนั้นนี้เป็นหนึ่งในที่ใหญ่ที่สุด คุณจะได้รับโบนัสกับ AWS
ด้วย DynamoDB คือความสามารถใน ที่จะได้รับหลักเดียวต่ำ
มิลลิวินาทีแฝงในระดับใด
นั่นคือเป้าหมายการออกแบบของระบบ
และเรามีลูกค้าที่มีการทำ ล้านรายการต่อวินาที
>> ตอนนี้ฉันจะไปถึงบางส่วนของผู้ กรณีการใช้งานในไม่กี่นาทีที่นี่
การเข้าถึงแบบบูรณาการ control-- เรามีสิ่งที่เราเรียกว่า
รหัสประจำตัวการจัดการการเข้าถึงหรือ IAM
มันแทรกซึมระบบทุก บริการ AWS ทุกคนที่เสนอ
DynamoDB จะไม่มีข้อยกเว้น
คุณสามารถควบคุมการเข้าถึง กับตาราง DynamoDB
ในทุกบัญชีของคุณโดย AWS การกำหนดบทบาทและสิทธิ์การเข้าถึง
ในโครงสร้างพื้นฐาน IAM
>> และมันก็เป็นองค์ประกอบที่สำคัญและสำคัญในการ สิ่งที่เราเรียกเหตุการณ์การเขียนโปรแกรมขับเคลื่อน
ตอนนี้เป็นกระบวนทัศน์ใหม่
>> ผู้ชม: วิธีอัตราที่แท้จริงของคุณ บวกกับเชิงลบเท็จ
ในระบบการควบคุมการเข้าถึงของคุณ?
RICK Houlihan: บวกทรู เมื่อเทียบกับเชิงลบเท็จ?
ผู้ชม: สิ่งที่กลับมา คุณควรจะกลับมา?
เมื่อเทียบกับครั้งในขณะที่มัน ไม่ได้กลับมาเมื่อมันควรจะตรวจสอบ?
>> RICK Houlihan: ผมไม่สามารถบอกคุณได้ว่า
หากมีความล้มเหลวใด ๆ ใด ๆ ในนั้น
ฉันไม่ได้เป็นคนที่จะถาม คำถามที่โดยเฉพาะอย่างยิ่ง
แต่นั่นเป็นคำถามที่ดี
ผมจะมีความอยากรู้อยากเห็นที่จะรู้ว่า ที่ตัวเองจริง
>> และอื่น ๆ แล้วอีกครั้งกระบวนทัศน์ใหม่ คือการเขียนโปรแกรมขับเคลื่อนเหตุการณ์
นี่คือความคิดที่คุณสามารถ ปรับใช้งานที่ซับซ้อนที่
สามารถทำงานได้มากขนาดที่สูงมาก โดยไม่ต้องมีโครงสร้างพื้นฐานใด ๆ
โดยไม่ต้องได้รับการแก้ไขใด ๆ โครงสร้างพื้นฐานใด ๆ
และเราจะพูดคุยนิด ๆ หน่อย ๆ เกี่ยวกับสิ่งที่หมายถึงการที่เรา
ที่จะได้รับในคู่ต่อไปของชาร์ต
>> สิ่งแรกที่เราจะทำ คือเราจะพูดคุยเกี่ยวกับตาราง
ชนิดข้อมูล API สำหรับการไดนาโม
และสิ่งแรกที่คุณจะ แจ้งให้ทราบเมื่อคุณมองไปที่นี้
ถ้าคุณคุ้นเคยกับฐานข้อมูลใด ๆ ฐานข้อมูลจริงๆมีสองชนิดของ API
ฉันเรียกมันว่า
หรือสองชุดของ API
หนึ่งในนั้นจะเป็น การบริหาร API
>> สิ่งที่พวกเขาดูแล ฟังก์ชั่นของฐานข้อมูล
การกำหนดค่าของเครื่องมือการจัดเก็บ การตั้งค่าและเพิ่มตาราง
การสร้างฐานข้อมูล แคตตาล็อกและกรณี
เหล่านี้ things-- ใน DynamoDB คุณ มีสั้นมากรายการสั้น
>> ดังนั้นในฐานข้อมูลอื่น ๆ คุณอาจเห็นหลายสิบ
คำสั่งของผู้ดูแลระบบ คำสั่งสำหรับการกำหนดค่า
เหล่านี้ตัวเลือกเพิ่มเติม
ใน DynamoDB คุณไม่จำเป็นต้องเหล่านั้นเพราะ คุณไม่ได้กำหนดค่าระบบที่เราทำ
ดังนั้นสิ่งเดียวที่คุณต้องทำคือ บอกฉันว่าตารางขนาดฉันจะต้อง
ดังนั้นคุณจะได้รับมาก ชุด จำกัด ของคำสั่ง
>> คุณจะได้รับการปรับปรุงสร้างตาราง, ตาราง ลบ Table และอธิบายตาราง
เหล่านี้คือสิ่งเดียว ที่คุณต้องการสำหรับ DynamoDB
คุณไม่จำเป็นต้องจัดเก็บข้อมูล การตั้งค่าเครื่องมือ
ฉันไม่จำเป็นต้องกังวลเกี่ยวกับการจำลองแบบ
ฉันไม่จำเป็นต้องกังวลเกี่ยวกับ sharding
>> ผมไม่จำเป็นต้องกังวล ใด ๆ เกี่ยวกับเรื่องนี้
เราทำทุกอย่างให้คุณ
เพื่อให้เป็นจำนวนมากของค่าใช้จ่าย ที่ยกห่างจากจานของคุณ
แล้วเรามีผู้ประกอบการ CRUD
CRUD เป็นสิ่งที่สิ่งที่เรา โทรในฐานข้อมูลที่
สร้างปรับปรุงลบผู้ประกอบการ
เหล่านี้เป็นเรื่องปกติของคุณ ดำเนินงานฐานข้อมูล
สิ่งที่ต้องการวางรายการที่ได้รับรายการการปรับปรุง รายการลบรายการแบบสอบถามชุดสแกน
หากคุณต้องการที่จะสแกนทั้งตาราง
ดึงทุกอย่างออกจากตาราง
หนึ่งในสิ่งที่ดีเกี่ยวกับ DynamoDB มันช่วยให้การสแกนแบบคู่ขนาน
ดังนั้นคุณสามารถแจ้งให้เราทราบว่าหลาย หัวข้อที่คุณต้องการที่จะทำงานในการสแกนที่
และเราสามารถเรียกใช้กระทู้เหล่านั้น
เราสามารถหมุนที่สแกนขึ้น ข้ามหลายหัวข้อ
เพื่อให้คุณสามารถสแกนทั้งตาราง พื้นที่มากอย่างรวดเร็วใน DynamoDB
>> API ที่เราได้เป็นอื่น ๆ สิ่งที่เราเรียกกระแส API ของเรา
เราจะไม่มากเกินไปที่จะพูดคุย เกี่ยวกับเรื่องนี้มากในขณะนี้
ฉันมีเนื้อหาบางส่วนในภายหลัง ในสำรับเกี่ยวกับเรื่องนี้
แต่กระแสจริงๆ running-- คิดว่ามันเป็นเวลาที่สั่งซื้อ
และบันทึกการเปลี่ยนแปลงพาร์ทิชัน
ทุกอย่างที่เกิดขึ้นใน ตารางแสดงบนกระแส
>> ทุกคนเขียนถึงโต๊ะ ปรากฏขึ้นบนกระแส
คุณสามารถอ่านกระแสนั้นและ คุณสามารถทำสิ่งกับมัน
เราจะพูดคุยเกี่ยวกับสิ่งที่ ชนิดของสิ่งที่คุณ
จะทำอย่างไรกับสิ่งที่ต้องการการจำลองแบบ การสร้างดัชนีรอง
ทุกชนิดของเย็นจริงๆ สิ่งที่คุณสามารถทำกับที่
>> ข้อมูลประเภท
ใน DynamoDB เราสนับสนุนที่สำคัญทั้ง มูลค่าและเอกสารชนิดข้อมูล
ที่ด้านซ้ายมือของหน้าจอ ที่นี่เรามีประเภทพื้นฐานของเรา
ประเภทค่าที่สำคัญ
เหล่านี้เป็นเงื่อนไข ตัวเลขและไบนารี
>> ดังนั้นเพียงแค่สามประเภทพื้นฐาน
และจากนั้นคุณสามารถมีชุดของคนเหล่านั้น
หนึ่งในสิ่งที่ดีเกี่ยวกับ NoSQL คือ คุณสามารถมีอาร์เรย์คุณสมบัติ
และด้วย DynamoDB คุณสามารถมีอาร์เรย์ ของประเภทพื้นฐานเป็นทรัพย์สินราก
>> แล้วมีประเภทเอกสาร
วิธีการหลายคนมีความคุ้นเคยกับ JSON?
พวกคุณคุ้นเคยกับ JSON มาก?
มันเป็นพื้น JavaScript, วัตถุสัญกรณ์
จะช่วยให้คุณโดยทั่วไป กำหนดโครงสร้างลำดับชั้น
>> คุณสามารถจัดเก็บเอกสาร JSON บน DynamoDB ใช้ส่วนประกอบที่พบบ่อย
หรือกลุ่มอาคารที่มีอยู่ มากที่สุดในการเขียนโปรแกรมภาษา
ดังนั้นถ้าคุณมี Java คุณ กำลังมองหาที่แผนที่และรายชื่อ
ฉันสามารถสร้างวัตถุที่แผนที่พื้นที่
แผนที่เป็นค่าคีย์ เก็บไว้เป็นคุณสมบัติ
และมันอาจจะมีรายชื่อของ ค่าภายในคุณสมบัติเหล่านั้น
คุณสามารถจัดเก็บที่ซับซ้อนนี้ โครงสร้างลำดับชั้น
เป็นคุณลักษณะที่เดียว ของรายการ DynamoDB
>> ดังนั้นตารางใน DynamoDB ชอบมากที่สุด ฐานข้อมูล NoSQL ตารางมีรายการ
ใน MongoDB ที่คุณต้องการ เรียกเอกสารเหล่านี้
และมันจะเป็นฐานที่นอน
นอกจากนี้ยังมีฐานข้อมูลเอกสาร
คุณเรียกเอกสารเหล่านี้
เอกสารหรือรายการที่มีแอตทริบิวต์
คุณลักษณะที่สามารถอยู่ได้หรือ ไม่ได้อยู่ในรายการ
ใน DynamoDB มี หนึ่งคุณลักษณะที่จำเป็น
เช่นเดียวกับในฐานข้อมูลเชิงสัมพันธ์ คุณมีคีย์หลักในตาราง
>> DynamoDB มีสิ่งที่เราเรียกสำคัญกัญชา
แฮสำคัญต้องไม่ซ้ำกัน
ดังนั้นเมื่อผมกำหนดตารางแฮช, โดยทั่วไปสิ่งที่ฉันพูด
เป็นรายการที่ทุกคนจะมีคีย์กัญชา
และที่สำคัญกัญชาทุกคนจะต้องไม่ซ้ำกัน
>> ทุกรายการที่กำหนดไว้ โดยกุญแจกัญชาที่ไม่ซ้ำกัน
และมีเพียงสามารถเป็นหนึ่งใน
นี้เป็น OK แต่อาจเกิด สิ่งที่ผู้คนต้องการ
คือพวกเขาต้องการคือกัญชานี้ กุญแจสำคัญในการทำนิด ๆ หน่อย ๆ
มากกว่าเพียงแค่เป็นตัวระบุที่ไม่ซ้ำกัน
บ่อยครั้งที่เราต้องการใช้ว่ากุญแจสำคัญในกัญชา เป็นระดับบนถังรวม
และวิธีการที่เราทำอย่างนั้นคือการ เพิ่มสิ่งที่เราเรียกช่วงที่สำคัญ
>> ดังนั้นถ้ามันกัญชาเพียง ตารางนี้ต้องไม่ซ้ำกัน
ถ้ามันเป็นตารางแฮชและช่วงที่ การรวมกันของกัญชาและช่วง
ต้องไม่ซ้ำกัน
ดังนั้นคิดเกี่ยวกับมันด้วยวิธีนี้
ถ้าผมมีฟอรั่ม
และรูปแบบที่มีหัวข้อก็มี โพสต์และมีการตอบสนอง
>> ดังนั้นผมจึงอาจมีกัญชา ที่สำคัญซึ่งเป็น ID หัวข้อ
และผมอาจจะมีความสำคัญช่วง ซึ่งเป็นรหัสการตอบสนอง
วิธีการที่ถ้าผมต้องการที่จะได้รับทั้งหมด สำหรับหัวข้อการตอบสนองโดยเฉพาะอย่างยิ่ง
ฉันเพียงแค่สามารถสอบถามกัญชา
ฉันสามารถเพียงแค่พูดให้ฉันทั้งหมด รายการที่มีกัญชานี้
และฉันจะได้รับทุกคำถาม หรือโพสต์ในหัวข้อเฉพาะที่
เหล่านี้รวมระดับบนสุด มีความสำคัญมาก
พวกเขาสนับสนุนการเข้าถึงหลัก รูปแบบของการประยุกต์ใช้
โดยทั่วไปนี้ คือสิ่งที่เราต้องการจะทำ
เราต้องการที่ table-- ในขณะที่คุณโหลดตาราง
เราต้องการที่จะจัดโครงสร้างข้อมูล ภายในตารางในลักษณะดังกล่าว
ว่าโปรแกรมสามารถมาก ได้อย่างรวดเร็วดึงผลลัพธ์เหล่านั้น
และอาจเกิดวิธีการที่จะทำคือ ในการรักษารวมเหล่านี้ในขณะที่เรา
ใส่ข้อมูล
โดยทั่วไปเรากำลังแพร่กระจายข้อมูล ลงไปในถังสดใสที่มาใน
>> คีย์ช่วงอนุญาตให้กัญชา me-- คีย์จะต้องมีความเท่าเทียมกัน
เมื่อผมสอบถามกัญชา, ผมต้องบอกว่า ให้ฉันกัญชาที่เท่ากับนี้
เมื่อผมสอบถามช่วงที่ผม สามารถพูดให้ฉันช่วง
ที่ใช้ชนิดของใด ๆ ผู้ประกอบการมากมายที่เราสนับสนุน
ให้ฉันทุกรายการสำหรับกัญชา
มันเป็นความเท่าเทียมกันมากขึ้นกว่า น้อยกว่าไม่ได้เริ่มต้นด้วย
ที่ไม่ได้อยู่ระหว่างทั้งสองค่า?
ดังนั้นเหล่านี้ประเภทของคำสั่งช่วง ที่เรากำลังสนใจอยู่เสมอ
ตอนนี้สิ่งหนึ่งที่เกี่ยวกับข้อมูลเมื่อ คุณมองไปที่การเข้าถึงข้อมูลเมื่อ
คุณสามารถเข้าถึงข้อมูลที่เป็น เสมอเกี่ยวกับการรวม
มันเสมอเกี่ยวกับการบันทึก ที่เกี่ยวข้องกับเรื่องนี้
ให้ฉันทุกอย่างที่นี่ that's-- ทั้งหมด การทำธุรกรรมบนบัตรเครดิตนี้
เดือนที่ผ่านมา
นั่นคือการรวม
>> เกือบทุกอย่างที่คุณทำใน ฐานข้อมูลเป็นชนิดของการรวมบางส่วน
ดังนั้นความสามารถในการที่จะสามารถที่จะกำหนด ถังเหล่านี้และทำให้คุณมีช่วงเหล่านี้
แอตทริบิวต์จะสามารถที่จะสอบถามเกี่ยวกับ คำสั่งที่อุดมไปด้วยผู้สนับสนุนจำนวนมาก
หลายแอพลิเคชันหลายรูปแบบการเข้าถึง
>> ดังนั้นสิ่งที่สำคัญอื่น ๆ กัญชา ไม่สามารถจะทำให้เรากลไก
เพื่อให้สามารถที่จะแพร่กระจายข้อมูลที่อยู่รอบ ๆ
ฐานข้อมูล NoSQL ทำงานที่ดีที่สุด เมื่อข้อมูลที่เป็นอย่างเท่าเทียมกัน
กระจายทั่วคลัสเตอร์
วิธีการหลายคนคุ้นเคย มีขั้นตอนวิธีการ hashing?
เมื่อฉันพูดว่ากัญชาและ hashing-- เพราะขั้นตอนวิธี hashing
เป็นวิธีการของความสามารถในการสร้าง ค่าสุ่มจากมูลค่าใดก็ตาม
ดังนั้นในกรณีนี้โดยเฉพาะที่ ขั้นตอนวิธีการที่เราใช้กัญชาเป็น ND 5 based
>> และถ้าฉันมีประชาชนและนี้ เป็นกุญแจสำคัญในกัญชาของฉันฉันมี 1, 2, 3
เมื่อผมใช้วิธีกัญชา, มันจะกลับมาและพูดว่า
ดี 1 เท่ากับ 7B 2 เท่ากับ 48, 3 เท่ากับซีดี
พวกเขากำลังกระจายไปทั่วพื้นที่ที่สำคัญ
และทำไมคุณทำเช่นนี้?
เพราะนั่นทำให้แน่ใจว่าฉันสามารถ ใส่ระเบียนทั่วโหนดหลาย
>> ถ้าผมทำเช่นนี้ เพิ่มขึ้น, 1, 2, 3
และผมก็มีช่วงกัญชาที่ วิ่งในกรณีนี้โดยเฉพาะ
พื้นที่กัญชาขนาดเล็ก มันเริ่มต้นตั้งแต่ 00 ถึง FF,
แล้วบันทึกกำลังจะมาใน และพวกเขากำลังจะไปที่ 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12
เกิดอะไรขึ้น?
แทรกทุกคนเป็นไปโหนดเดียวกัน
คุณจะเห็นสิ่งที่ฉันหมายความว่าอย่างไร
>> เพราะเมื่อฉันแบ่งพื้นที่ เราก็ขยายระเบียนเหล่านี้ข้าม
และพาร์ทิชันฉันฉันจะบอกว่า พาร์ทิชันที่ 1 มีพื้นที่สำคัญที่ 0-54
พาร์ทิชัน 2 เป็น 55-89
พาร์ทิชัน 3 เป็น AA ถึง FF
ดังนั้นถ้าผมใช้เส้นตรงการเพิ่ม รหัสคุณจะเห็นสิ่งที่เกิดขึ้น
1, 2, 3, 4, 5, 6, ตลอดทางถึง 54
ดังนั้นในขณะที่ผมกำลังตอก บันทึกลงในระบบ
ทุกอย่างจบลงไปหนึ่งโหนด
>> ที่ไม่ดี
นั่นคือ antipattern
ใน MongoDB พวกเขามีปัญหานี้ ถ้าคุณไม่ได้ใช้คีย์กัญชา
MongoDB ให้คุณเลือก ของ hashing ค่าคีย์
คุณควรทำเช่นนั้นถ้า คุณกำลังใช้กัญชา incrementing
ที่สำคัญใน MongoDB, หรือคุณจะเป็น เขียนเก่งทุกหนึ่งโหนด
และคุณจะถูก จำกัด ผ่านการเขียนของคุณไม่ดี
>> ผู้ชม: คือ A9 169 ในทศนิยม?
>> RICK Houlihan: ใช่มัน บางรอบมี
A9, ผมไม่ทราบว่า
คุณจะต้องได้รับไบนารีของฉัน เครื่องคิดเลขทศนิยม
สมองของฉันไม่ทำงานเช่นนั้น
ผู้ชม: เพ​​ียงหนึ่งอย่างรวดเร็ว ความคิดเห็น Mongo ของคุณ
ดังนั้นวัตถุ ID ที่มา กำเนิดกับ Mongo ทำเช่นนั้น?
RICK Houlihan: มันทำเช่นนั้น?
ถ้าคุณระบุว่า
ด้วย MongoDB, คุณมีตัวเลือก
คุณสามารถ specify-- เอกสารทุกคนใน MongoDB จะต้องมีขีด ID
นั่นคือค่าไม่ซ้ำกัน
>> ใน MongoDB คุณสามารถระบุ ว่าจะสับหรือไม่
พวกเขาเพียงแค่ให้คุณเลือก
ถ้าคุณรู้ว่ามันเป็น สุ่มไม่มีปัญหา
คุณไม่จำเป็นต้องที่จะทำ
ถ้าคุณรู้ว่ามันไม่ได้เป็นแบบสุ่มที่ มัน incrementing แล้วทำแฮช
>> ตอนนี้สิ่งที่เกี่ยวกับ hashing เมื่อคุณสับ
value-- และนี่คือ ทำไมคีย์กัญชาอยู่เสมอ
คำสั่งที่ไม่ซ้ำกันเพราะผมได้เปลี่ยน ค่าตอนนี้ฉันไม่สามารถทำแบบสอบถามช่วง
ฉันไม่สามารถพูดนี้ ระหว่างนี้หรือว่า
เพราะค่าแฮชไม่ได้ไป จะเทียบเท่ากับมูลค่าที่เกิดขึ้นจริง
ดังนั้นเมื่อคุณสับที่ ที่สำคัญเท่าเทียมกันก็เพียง
นี่คือเหตุผลที่ในคีย์กัญชา DynamoDB คำสั่งอยู่เสมอเท่าเทียมกันเท่านั้น
>> ดังนั้นตอนนี้อยู่ในช่วง key-- เมื่อฉันเพิ่มคีย์ช่วงนั้น
บันทึกช่วงที่สำคัญเหล่านั้นทั้งหมดมาและ พวกเขาได้รับการจัดเก็บไว้ในพาร์ทิชันเดียวกัน
ดังนั้นพวกเขาจึงมีความได้อย่างรวดเร็วง่ายดาย เรียกคืนเพราะเป็นกัญชา,
นี้เป็นช่วง
และคุณจะเห็นทุกอย่าง กับกัญชาเดียวกัน
ได้รับการจัดเก็บไว้ในพื้นที่พาร์ติชันเดียวกัน
คุณสามารถใช้คีย์ช่วงที่จะช่วยให้ ค้นหาข้อมูลของคุณใกล้กับแม่ของมัน
ดังนั้นสิ่งที่ฉันทำจริงๆที่นี่?
นี้เป็นหนึ่งถึงความสัมพันธ์มาก
ความสัมพันธ์ระหว่างสำคัญกัญชา และที่สำคัญช่วงหนึ่งที่หลาย ๆ
ฉันจะมีปุ่มกัญชาหลาย
ฉันสามารถมีช่วงหลาย กุญแจสำคัญภายในกัญชาทุก
>> กัญชากำหนดผู้ปกครอง กำหนดช่วงเด็ก
ดังนั้นคุณจะเห็นมีอะนาล็อกที่นี่ ระหว่างการสร้างความสัมพันธ์
และประเภทเดียวกันของ สร้างใน NoSQL
คนที่พูดคุยเกี่ยวกับ NoSQL เป็น nonrelational
มันไม่ได้ nonrelational
ข้อมูลมักจะมีความสัมพันธ์
ความสัมพันธ์เหล่านั้นเพียง รูปแบบที่แตกต่างกันมีการ
พูดคุยเล็ก ๆ น้อย ๆ บิตเกี่ยวกับความทนทาน
เมื่อคุณเขียนถึง DynamoDB เขียน มักจะสามทางจำลองแบบ
หมายความว่าเรามีสามของอาริโซน่า
อาริโซน่าเป็นโซนมีจำหน่าย
คุณสามารถคิดว่าความพร้อม โซนเป็นศูนย์ข้อมูล
หรือคอลเลกชันของศูนย์ข้อมูล
สิ่งเหล่านี้ทางภูมิศาสตร์ ที่แยกจากกัน
ข้ามโซนความผิดที่แตกต่างกันทั่ว สายส่งไฟฟ้​​าที่แตกต่างกันและที่ราบน้ำท่วมถึง
ความล้มเหลวในอาริโซน่าไม่ได้ จะใช้เวลาลงอีก
พวกเขาจะเชื่อมโยงไปยัง ร่วมกับเส้นใยสีดำ
มันสนับสนุนหนึ่งย่อย 1 มิลลิวินาทีแฝงระหว่าง AZS
ดังนั้นข้อมูลเวลาจริงซ้ำ มีความสามารถในหลาย AZS
>> และอาจเกิดการใช้งานหลายอาริโซน่า ตอบสนองความต้องการใช้งานสูง
มากที่สุดขององค์กร
ดังนั้น DynamoDB จะถูกกระจายไป ทั่วทั้งสาม AZS โดยค่าเริ่มต้น
เราเพียงจะความรู้ในการเขียน เมื่อสองสามโหนดกลับมา
และพูดว่าใช่ผมได้รับมัน
ว่าเป็นเพราะเหตุใด
เพราะในด้านการอ่านเราเท่านั้น จะให้ข้อมูลกลับเมื่อ
ที่เราได้รับจากสองโหนด
>> ถ้าฉันจำลองทั่ว สามและฉันอ่านจากสอง
ผมรับประกันเสมอ ที่จะมีอย่างน้อยหนึ่ง
ของผู้ที่อ่านจะเป็น สำเนาปัจจุบันมากที่สุดของข้อมูล
นั่นคือสิ่งที่ทำให้ DynamoDB ที่สอดคล้องกัน
ตอนนี้คุณสามารถเลือกที่จะเปิด สอดคล้องผู้อ่านออก
ซึ่งในกรณีนี้ผมจะพูดว่า ผมจะอ่านจากหนึ่งโหนด
และผมก็ไม่สามารถรับประกันได้ว่ามันจะ จะเป็นข้อมูลที่เป็นปัจจุบันมากที่สุด
>> ดังนั้นหากจะมาเขียนใน มันไม่ได้จำลองแบบยัง
คุณกำลังจะได้รับสำเนาที่
นั่นคือการอ่านที่สอดคล้องกันในที่สุด
และสิ่งที่เป็นครึ่งหนึ่งของค่าใช้จ่าย
ดังนั้นนี่คือสิ่งที่จะคิดเกี่ยวกับ
เมื่อคุณกำลังอ่านออก DynamoDB และ คุณกำลังตั้งค่าความจุอ่านของคุณ
หน่วยถ้าคุณเลือกในที่สุด สอดคล้องอ่านก็มากราคาถูก,
มันเป็นเรื่องของครึ่งค่าใช้จ่าย
>> และดังนั้นจึงช่วยคุณประหยัดเงิน
แต่นั่นเป็นทางเลือกของคุณ
ถ้าคุณต้องการที่สอดคล้องอ่านหรือ การอ่านที่สอดคล้องกันในที่สุด
นั่นคือสิ่งที่คุณสามารถเลือก
>> พูดคุยเกี่ยวกับการจัดทำดัชนี
ดังนั้นเราจึงบอกว่า รวมระดับบนสุด
เรามีคีย์กัญชาและ เรามีช่วงที่ปุ่ม
นั่นเป็นเรื่องดี
และที่อยู่ในตารางหลักที่ฉัน ที่สำคัญมีกัญชาหนึ่งผมได้ที่สำคัญช่วงหนึ่ง
>> นั่นหมายความว่าอย่างไร?
ฉันมีหนึ่งแอตทริบิวต์ที่ฉัน สามารถเรียกใช้คำสั่งที่อุดมไปด้วยกับ
มันเป็นช่วงที่สำคัญ
คุณลักษณะอื่น ๆ ใน item-- ว่า ฉันสามารถกรองคุณลักษณะเหล่านั้น
แต่ฉันไม่สามารถทำสิ่งที่ต้องการมัน เริ่มต้นด้วยการหรือมีค่ามากกว่า
>> ฉันจะทำอย่างไร
ฉันจะสร้างดัชนี
มีสองประเภทคือ ดัชนีใน DynamoDB
ดัชนีเป็นจริง มุมมองของตารางอีก
และดัชนีรองท้องถิ่น
>> คนแรกที่เราจะพูดคุยเกี่ยวกับ
ดังนั้น secondaries ท้องถิ่นพึ่ง บนพาร์ติชันเดียวกับข้อมูล
และเป็นเช่นนี้พวกเขาอยู่ใน โหนดทางกายภาพเดียวกัน
พวกเขาเป็นสิ่งที่เราเรียกที่สอดคล้องกัน
ความหมายที่พวกเขาจะได้รับทราบ เขียนพร้อมกับโต๊ะ
เมื่อเขียนมาใน เราจะเขียนผ่านดัชนี
เราจะเขียนถึงโต๊ะ และจากนั้นเราจะได้รับทราบ
เพื่อให้สอดคล้อง
เมื่อเขียนได้รับ ได้รับการยอมรับจากตาราง
ก็รับประกันว่า ดัชนีรองท้องถิ่น
จะมีวิสัยทัศน์เดียวกันของข้อมูล
แต่สิ่งที่พวกเขาช่วยให้คุณทำคือ กำหนดช่วงกุญแจสำรอง
>> ต้องใช้กัญชาเดียวกัน ที่สำคัญเป็นตารางหลัก
เพราะพวกเขาจะร่วมอยู่ใน พาร์ทิชันเดียวกันและพวกเขากำลังที่สอดคล้องกัน
แต่ผมสามารถสร้างดัชนี ด้วยปุ่มช่วงที่แตกต่างกัน
ดังนั้นตัวอย่างเช่นถ้าผมมีผู้ผลิต ที่มีตารางส่วนดิบมา
และชิ้นส่วนวัตถุดิบมาและ พวกเขากำลังรวบรวมโดยการชุมนุม
และอาจจะมีการเรียกคืน
>> ส่วนหนึ่งส่วนใดที่ทำตามนี้ ผู้ผลิตหลังจากวันนี้
ฉันต้องการที่จะดึงจากบรรทัดของฉัน
ฉันสามารถหมุนดัชนี ที่จะมอง
รวมภายในวันที่ การผลิตส่วนหนึ่งโดยเฉพาะอย่างยิ่งที่
ดังนั้นถ้าตารางระดับบนสุดของฉันคือ ถกแล้วโดยผู้ผลิต
บางทีมันอาจจะถูกจัดในส่วนของ ID ผม สามารถสร้างดัชนีปิดตารางที่
เป็นแฮชโดยผู้ผลิตและ ตั้งแต่ในวันที่ผลิต
และวิธีการที่ฉันจะพูดอะไรที่ ถูกผลิตขึ้นระหว่างวันที่เหล่านี้
ฉันต้องการที่จะดึงจากบรรทัด
เพื่อให้เป็นดัชนีรองท้องถิ่น
>> เหล่านี้มีผลกระทบจาก การ จำกัด พื้นที่ที่สำคัญของกัญชา
เพราะพวกเขาร่วมอยู่ การจัดเก็บข้อมูลบนโหนดเดียวกัน
พวกเขา จำกัด คีย์กัญชา พื้นที่ถึง 10 กิกะไบต์
DynamoDB ใต้ ตารางพาร์ทิชันจะ
ตารางของคุณทุก 10 กิกะไบต์
เมื่อคุณใส่ 10 กิ๊กของข้อมูลในเรา ไป [PHH] และเราเพิ่มโหนดอื่น
>> เราจะไม่แยก LSI ข้ามหลายพาร์ติชัน
เราจะแบ่งตาราง
แต่เราจะไม่แยก LSI
ดังนั้นนั่นเป็นสิ่งที่ สำคัญที่จะเข้าใจ
คือถ้าคุณกำลังทำมาก มากรวมมีขนาดใหญ่มาก
แล้วคุณจะถูก จำกัด ถึง 10 กิกะไบต์ใน LSIs ของคุณ
>> หากเป็นกรณีที่เราสามารถ ใช้ secondaries ทั่วโลก
secondaries ทั่วโลก จริงๆตารางอื่น
พวกเขามีอยู่อย่างสมบูรณ์ออกไป ด้านของตารางหลักของคุณ
และพวกเขาให้ฉันไปหา โครงสร้างที่แตกต่างกันอย่างสิ้นเชิง
ดังนั้นคิดว่ามันเป็นข้อมูลที่จะถูกแทรก เป็นสองตารางที่แตกต่างโครงสร้าง
ในสองวิธีที่แตกต่างกัน
>> ฉันสามารถกำหนดทั้งหมด กัญชาที่สำคัญที่แตกต่างกัน
ฉันสามารถกำหนดทั้งหมด ที่สำคัญช่วงที่แตกต่างกัน
และผมสามารถทำงานนี้ เป็นอิสระอย่างสมบูรณ์
เป็นเรื่องของความเป็นจริงที่ฉันได้ การจัดเตรียมความสามารถในการอ่านของฉัน
และความสามารถในการเขียนของฉัน ดัชนีรองทั่วโลก
เป็นอิสระอย่างสมบูรณ์ ของตารางหลักของฉัน
ถ้าผมกำหนดดัชนีที่ผมบอก มันเท่าไหร่ที่อ่านและเขียน
กำลังการผลิตก็จะต้องใช้
>> และนั่นคือที่แยกต่างหาก จากตารางหลักของฉัน
ตอนนี้ทั้งสองดัชนีช่วยให้เราสามารถ ไม่เพียง แต่กำหนดคีย์กัญชาและช่วง
แต่พวกเขาช่วยให้เราสามารถ ค่าเพิ่มเติมโครงการ
ดังนั้นถ้าผมต้องการที่จะอ่านออกดัชนี และฉันต้องการที่จะได้รับชุดของข้อมูลบางส่วน
ฉันไม่ต้องการที่จะกลับไปหลัก ตารางที่จะได้รับคุณลักษณะเพิ่มเติม
ฉันสามารถฉายภาพเหล่านั้นเพิ่มเติม แอตทริบิวต์ลงในตาราง
เพื่อสนับสนุนรูปแบบการเข้าถึง
ฉันรู้ว่าเราอาจจะได้รับกำลังเป็นบางส่วน จริงๆ really-- ได้รับเป็นวัชพืช
ที่นี่ในบางส่วนของสิ่งนี้
ตอนนี้ผมได้รับที่จะลอยออกจากนี้
>> ผู้ชม: [ไม่ได้ยิน] ที่สำคัญ --table หมายเป็นกัญชาหรือไม่?
กัญชาเดิม?
แผ่นหลาย?
>> RICK Houlihan: ใช่
ใช่.
กุญแจสำคัญในตารางโดยทั่วไป ชี้กลับไปที่รายการ
ดังนั้นดัชนีเป็นตัวชี้กลับไปที่ รายการที่เดิมบนโต๊ะ
ตอนนี้คุณสามารถเลือกที่จะสร้าง ดัชนีที่สำคัญมีเพียงโต๊ะ
และไม่มีคุณสมบัติอื่น ๆ
และทำไมผมอาจจะทำเช่นนั้น?
ดีบางทีฉันอาจจะมีรายการที่มีขนาดใหญ่มาก
>> ผมจะต้องรู้ which-- รูปแบบการเข้าถึงของฉันอาจจะบอกว่า
รายการที่มีสถานที่ให้บริการนี​​้หรือไม่?
ไม่จำเป็นต้องกลับไปที่รายการ
ฉันเพียงแค่ต้องรู้ รายการที่มีมัน
เพื่อให้คุณสามารถสร้างดัชนี ที่สำคัญมีเพียงโต๊ะ
>> แต่นั่นคือสิ่งที่เป็นหลัก ดัชนีในฐานข้อมูลสำหรับ
มันสำหรับความสามารถในการได้อย่างรวดเร็ว ระบุที่บันทึก,
แถวที่ รายการในตารางมี
คุณสมบัติที่ฉันค้นหา
>> จีซิสดังนั้นวิธีการที่พวกเขาทำงานอย่างไร
จีซิสพื้นไม่ตรงกัน
การปรับปรุงที่เข้ามาในตาราง ตารางถ่ายทอดสดการปรับปรุงแล้ว
ทั้งหมดของจีซิสของคุณ
นี่คือเหตุผลที่จีซิสมี ที่สอดคล้องกันในที่สุด
>> มันเป็นสิ่งสำคัญที่จะทราบว่า เมื่อคุณกำลังสร้างจีซิส,
และคุณเข้าใจว่าคุณกำลังสร้าง ขนาดของ aggregation-- อื่น
ตอนนี้ขอบอกว่าเป็นตัวอย่างที่ดี ที่นี่เป็นผู้ผลิต
ผมคิดว่าผมอาจจะมีการพูดคุยเกี่ยวกับ ผู้ผลิตอุปกรณ์ทางการแพทย์
ผลิตอุปกรณ์ทางการแพทย์ อาจเกิดการมีส่วนต่อเนื่อง
ส่วนที่เข้าไป เปลี่ยนสะโพกทั้งหมด
มีหมายเลขเล็ก ๆ น้อย ๆ เกี่ยวกับพวกเขา
และพวกเขาจะมีล้านและ ล้านและพันล้านส่วน
ในอุปกรณ์ทั้งหมดที่พวกเขาเรือ
ดีที่พวกเขาต้องการที่จะรวมอยู่ภายใต้ ขนาดที่แตกต่างกันทุกส่วน
ในการชุมนุมทั้งหมด ชิ้นส่วนที่ทำ
บนเส้นบางทั้งหมด ส่วนที่มา
จากผู้ผลิตบางอย่าง ในวันที่กำหนด
และรวมตัวเหล่านี้บางครั้ง ได้รับการขึ้นเป็นพันล้าน
>> ดังนั้นผมจึงทำงานร่วมกับบางส่วนของ คนเหล่านี้ที่กำลังทุกข์ทรมาน
เพราะพวกเขากำลังสร้าง เหล่านี้รวม ginormous
ดัชนีรองของพวกเขา
พวกเขาอาจจะมีส่วนดิบ ตารางที่มาเป็นกัญชาเท่านั้น
ส่วนทุกคนมีหมายเลขที่ไม่ซ้ำ
ผมใช้หมายเลขเป็นกัญชา
มันสวย.
ตารางข้อมูลดิบของฉันคือการแพร่กระจาย ทั่วทั้งพื้นที่ที่สำคัญ
ของฉัน [? เขียน ?] [? การบริโภค?] เป็นที่น่ากลัว
ผมใช้ข้อมูลจำนวนมาก
แล้วสิ่งที่พวกเขาทำคือพวกเขาสร้าง GSI
และผมบอกว่าคุณรู้ว่าสิ่งที่ฉันต้องการที่จะเห็น ทุกส่วนของผู้ผลิตนี้
ดีทั้งหมดในทันทีที่ฉัน การพันล้านแถว
และสิ่งที่พวกเขาลง โหนดหนึ่งเพราะเมื่อ
ผมรวมเป็น ID เป็นผู้ผลิตกัญชา,
และเป็นส่วนหนึ่งจำนวนเป็นช่วง แล้วทั้งหมดในทันทีฉัน
วางล้านชิ้นส่วนเป็นสิ่งที่ ผู้ผลิตนี้ได้ส่งมอบให้ฉัน
>> ที่สามารถทำให้เกิดเป็นจำนวนมาก ของความดันใน GSI,
อีกครั้งเพราะฉันตอกหนึ่งโหนด
ฉันวางเหล่านี้ทั้งหมด แทรกเป็นหนึ่งโหนด
และนั่นเป็นกรณีที่มีปัญหาการใช้งานจริง
ตอนนี้ผมได้รับการออกแบบที่ดี รูปแบบสำหรับวิธีที่คุณหลีกเลี่ยงการที่
และนั่นคือหนึ่งในปัญหาที่เกิดขึ้น ที่ผมเคยทำงานด้วย
แต่สิ่งที่เกิดขึ้นเป็น GSI อาจ ได้มีความสามารถในการเขียนพอ
เพื่อให้สามารถที่จะผลักดันให้ทุกคน แถวเป็นโหนดเดียว
และสิ่งที่เกิดขึ้นแล้วคือ หลักตารางลูกค้า
ตารางหลักจะได้รับการผ่อนคันเร่ง เพราะ GSI ไม่สามารถให้ทัน
ดังนั้นอัตราการแทรกของฉันจะ ตกอยู่ในตารางหลัก
เป็น GSI ของฉันพยายามที่จะให้ทัน
>> สิทธิทั้งหมดเพื่อ GSI ของ LSI ของ ที่หนึ่งที่ฉันควรใช้?
ของ LSI มีความสอดคล้องกัน
GSI ของมีความสอดคล้องกันในที่สุด
ถ้าที่ตกลงผมขอแนะนำให้ใช้ GSI ที่พวกเขากำลังมีความยืดหยุ่นมาก
LSI สามารถสร้างแบบจำลองเป็น GSI
และถ้าขนาดของข้อมูลต่อคีย์กัญชาใน คอลเลกชันของคุณเกิน 10 กิกะไบต์
แล้วคุณจะต้องการที่จะใช้ GSI เพราะมันเป็นเพียงวงเงินยาก
>> ทั้งหมดขวาเพื่อปรับ
กำลังการผลิตไฟฟ้าใน DB คุณ สามารถจัดหา [ไม่ได้ยิน]
ทางเข้าในตาราง
เรามีลูกค้าที่มี เตรียม 60 billion--
กำลังทำ 60000000000 ร้องขออย่างสม่ำเสมอ ทำงานที่กว่าล้านร้องขอ
ต่อที่สองในตารางของเรา
มีจริงๆไม่มี ขีด จำกัด ทางทฤษฎีเท่าใด
และวิธีการที่รวดเร็วตาราง สามารถทำงานในไดนาโม DB
มีบางนุ่ม ข้อ จำกัด ในบัญชีของคุณ
ที่เราใส่อยู่ในนั้นดังนั้น ที่คุณไม่ไปบ้า
หากคุณต้องการมากกว่า ที่ไม่ได้เป็นปัญหา
คุณมาบอกเรา
เราจะเปิดขึ้นหน้าปัด
>> ทุกบัญชีจะถูก จำกัด บางระดับ ในการให้บริการทุกเพียงแค่ปิดค้างคาว
ดังนั้นคนที่ไม่ได้ไปบ้า ได้รับตัวเองเป็นปัญหา
ไม่ จำกัด ขนาด
คุณสามารถใส่หมายเลขใด ของรายการบนโต๊ะ
ขนาดของรายการคือ จำกัด อยู่ที่ 400 กิโลไบต์แต่ละ
ที่จะเป็นรายการที่ไม่ได้คุณลักษณะ
ดังนั้นผลรวมของคุณลักษณะทั้งหมด ถูก จำกัด ไว้ที่ 400 กิโลไบต์
และหลังจากนั้นอีกเรามี ปัญหาที่เล็ก ๆ น้อย ๆ LSI
ที่มีขีด จำกัด กิกะไบต์ 10 ต่อกัญชา
ผู้ชม: จำนวนขนาดเล็กฉันหายไป สิ่งที่คุณกำลังบอกฉันว่า is--
ผู้ชม: โอ้ 400 กิโลไบต์ เป็นขนาดสูงสุดต่อรายการ
ดังนั้นรายการที่มีคุณลักษณะทั้งหมด
ดังนั้น 400 k เป็นขนาดรวม ของรายการที่ 400 กิโลไบต์
ดังนั้นคุณลักษณะทั้งหมด รวมข้อมูลทั้งหมด
ที่อยู่ในคุณลักษณะทั้งหมดเหล่านั้น รีดขึ้นเป็นขนาดรวม
ปัจจุบันวันนี้รายการวงเงิน 400 k
ดังนั้นการปรับอีกครั้งประสบความสำเร็จ ผ่านการแบ่งพาร์ทิชัน
กำลังการจัดเตรียม ในระดับที่โต๊ะ
และมีจริงๆสองลูกบิด
เรามีความสามารถในการอ่าน และความสามารถในการเขียน
>> ดังนั้นเหล่านี้จะถูกปรับ เป็นอิสระจากกัน
ตัวชี้วัดของ RCU สอดคล้องอย่างเคร่งครัดอ่าน
ตกลงดังนั้นถ้าคุณกำลังจะบอกว่าฉันต้องการ 1,000 RCU ของผู้ที่มีความสอดคล้องกันอย่างเคร่งครัด
ผู้ที่มีความสอดคล้องกันอ่าน
ถ้าคุณบอกว่าฉันต้องการ ในที่สุดสอดคล้องอ่าน
คุณสามารถจัดหา 1000 RCU ของคุณจะ
ที่จะได้รับ 2000 ในที่สุด สอดคล้องอ่าน
และครึ่งราคาสำหรับผู้ที่ ในที่สุดประกอบด้วยในการอ่าน
>> อีกครั้งปรับ เป็นอิสระจากกัน
และพวกเขามี throughput-- ถ้าคุณกิน 100% ของ RCU ของคุณ
คุณจะไม่ส่งผลกระทบต่อ ความพร้อมของสิทธิของคุณ
ดังนั้นพวกเขาจึงจะสมบูรณ์ เป็นอิสระจากกัน
สิ่งที่ถูกต้องดังนั้นหนึ่งในสิ่งที่ ที่ผมกล่าวถึงการควบคุมปริมาณได้ในเวลาสั้น ๆ
การควบคุมปริมาณไม่ดี
การควบคุมปริมาณบ่งชี้ที่ไม่ดีไม่มี SQL
มีสิ่งที่เราสามารถทำได้เพื่อช่วย คุณบรรเทาการควบคุมปริมาณที่คุณ
กำลังประสบ
แต่ทางออกที่ดีที่สุด นี้คือลอง
ดูในสิ่งที่คุณกำลังทำเพราะ มีการป้องกันในรูปแบบการเล่นที่นี่
>> สิ่งเหล่านี้สิ่งที่ต้องการไม่เหมือนกัน ปริมาณงาน, คีย์ร้อนพาร์ทิชันร้อน
ฉันตีพื้นที่ที่สำคัญโดยเฉพาะอย่างยิ่ง ยากมากด้วยเหตุผลบางอย่างโดยเฉพาะอย่างยิ่ง
ฉันกำลังทำเช่นนี้ทำไม
ลองคิดออกว่า
ฉันผสมข้อมูลของฉันร้อนกับข้อมูลที่หนาวเย็น
ผมปล่อยให้โต๊ะของฉันได้รับ มาก แต่มีจริงๆ
เฉพาะชุดย่อยของข้อมูลบางส่วน ที่น่าสนใจจริงๆกับผม
ดังนั้นสำหรับข้อมูลเข้าสู่ระบบตัวอย่างเช่นจำนวนมาก ลูกค้าที่พวกเขาได้รับข้อมูลเข้าสู่ระบบทุกวัน
พวกเขาได้เป็นจำนวนมากของข้อมูลเข้าสู่ระบบ
>> หากคุณเพียงแค่ทิ้งทุกสิ่งที่เข้าสู่ระบบ ข้อมูลลงในตารางขนาดใหญ่เมื่อเวลาผ่านไป
ตารางที่จะได้รับใหญ่
แต่ฉันจริงๆสนใจเฉพาะใน ที่ผ่านมา 24 ชั่วโมงเจ็ดวันที่ผ่านมา
30 วันที่ผ่าน
สิ่งที่หน้าต่างของเวลา ที่ฉันสนใจในการมองหา
สำหรับเหตุการณ์ที่รบกวนจิตใจผมหรือ กรณีที่น่าสนใจที่จะฉัน
ว่าถึงเวลาที่หน้าต่างเดียวที่ฉันต้องการ
ดังนั้นทำไมฉันวาง 10 ปี มูลค่าของข้อมูลเข้าสู่ระบบในตารางหรือไม่
อะไรที่ทำให้เกิดเป็น ตารางชิ้น
>> จะได้รับมาก
มันเริ่มแพร่กระจายออกไป หลายพันโหนด
และเนื่องจากกำลังการผลิตของคุณ อยู่ในระดับต่ำเพื่อให้คุณ
ประเมินจริง จำกัด ในแต่ละ หนึ่งในผู้ที่แต่ละโหนด
เพื่อขอเริ่มต้นมองหาวิธีการ เราไม่ม้วนตารางมากกว่า
เราจะจัดการให้ข้อมูลเล็ก ๆ น้อย ๆ ได้อย่างไร ดีกว่าที่จะหลีกเลี่ยงปัญหาเหล​​่านี้
และสิ่งที่จะมีลักษณะอย่างไร
นี่คือสิ่งที่ดูเหมือนว่า
นี่คือสิ่งที่ไม่ดี NoSQL ดูเหมือนว่า
>> ผมได้รับที่สำคัญร้อนที่นี่
ถ้าคุณมองไปที่ด้านข้างที่นี่ เหล่านี้เป็นพาร์ทิชันทั้งหมดของฉัน
ผมได้ 16 พาร์ทิชันที่นี่ ในฐานข้อมูลนี้โดยเฉพาะ
เราทำเช่นนี้ตลอดเวลา
ผมทำงานนี้ให้กับลูกค้าตลอดเวลา
มันเรียกว่าแผนที่ความร้อน
แผนที่ความร้อนบอกฉันว่าคุณ การเข้าถึงพื้นที่ที่สำคัญของคุณ
และสิ่งนี้จะบอกฉันเป็น ว่ามีกัญชาหนึ่งโดยเฉพาะ
ว่าผู้ชายคนนี้ชอบ แย่มากเพราะเขาเป็น
กดปุ่มมันจริงๆยากจริงๆ
>> ดังนั้นสีฟ้าเป็นสิ่งที่ดี
เราชอบสีฟ้า
เราไม่ชอบสีแดง
สีแดงที่ความดัน ได้รับการขึ้นถึง 100%
100% ตอนนี้คุณกำลังจะผ่อนคันเร่ง
ดังนั้นเมื่อใดก็ตามที่คุณเห็นเส้นสีแดงใด ๆ เช่น this-- และมันไม่ได้เป็นเพียงเครื่องปั่นไฟ DB--
ทุกฐานข้อมูล NoSQL มีปัญหานี้
มีรูปแบบการป้องกันที่สามารถเป็น ขับรถประเภทนี้เงื่อนไข
สิ่งที่ผมทำคือผมทำงานร่วมกับลูกค้า เพื่อบรรเทาเงื่อนไขเหล่านี้
>> และสิ่งที่จะมีลักษณะอย่างไร
และนี่คือการได้รับประโยชน์สูงสุด ออกจากไดนาโมผ่าน DB,
แต่จะได้รับจริงๆ มากที่สุดของ NoSQL
นี้ไม่ได้ จำกัด ไดนาโม
นี่คือ definitely-- ฉัน ที่ใช้ในการทำงานที่ Mongo
ฉันคุ้นเคยกับแพลตฟอร์ม NoSQL จำนวนมาก
ทุกคนมีประเภทนี้ ปัญหาที่สำคัญร้อน
ที่จะได้รับประโยชน์สูงสุดจากการ NoSQL ใด ๆ ฐานข้อมูลเฉพาะไดนาโม DB,
คุณต้องการสร้างตาราง ที่แฮองค์ประกอบสำคัญมี
เป็นจำนวนมากของค่าที่แตกต่างกัน ระดับสูงของ cardinality
เพราะนั่นหมายความว่าผมเขียน จำนวนมากที่แตกต่างกันถัง
>> ถังมากขึ้นฉัน เขียนถึงมีโอกาสมากขึ้น
ผมจะแพร่กระจายที่เขียนหรือโหลด อ่านโหลดออกไปทั่วโหนดหลาย
มีโอกาสมากขึ้นผมจะมี อัตราความเร็วสูงบนโต๊ะ
แล้วฉันต้องการค่าที่จะ ขอเป็นธรรมอย่างสม่ำเสมอตลอดเวลา
และสม่ำเสมอเป็นแบบสุ่มที่เป็นไปได้
ดีที่เป็นชนิดที่น่าสนใจของ เพราะผมไม่สามารถจริงๆ
การควบคุมเมื่อผู้ใช้มา
ดังนั้นพอเพียงที่จะบอกว่าถ้าเราแพร่กระจาย สิ่งที่ออกในพื้นที่ที่สำคัญ
เราอาจจะอยู่ในรูปร่างที่ดีขึ้น
>> มีบางอย่างที่เป็น จำนวนเงินของการส่งมอบตรงเวลา
ที่คุณไม่ได้ไป จะต้องมีการควบคุมสามารถ
แต่ผู้ที่มีจริงๆ สองมิติที่เรามี
พื้นที่การเข้าถึงอย่างเท่าเทียมกัน การแพร่กระจายเวลาการร้องขอ
เดินทางมาถึงเว้นระยะเท่ากันในเวลา
และถ้าทั้งสอง เงื่อนไขที่ถูกพบ
แล้วนั่นคือสิ่งที่มันเป็น จะมีลักษณะเหมือน
นี้เป็นมาก nicer
เรามีความสุขจริงๆที่นี่
เรามีรูปแบบการเข้าถึงได้มาก
ใช่บางทีคุณอาจจะได้รับ ความดันน้อยทุกขณะนี้แล้ว
แต่จริงๆไม่มีอะไรที่กว้างขวางเกินไป
ดังนั้นจึงเป็นที่น่าอัศจรรย์ว่าหลายครั้ง เมื่อผมทำงานกับลูกค้า
กราฟที่แรกที่มีสีแดงขนาดใหญ่ บาร์และสิ่งที่น่าเกลียดสีเหลืองมัน
ทั่วทุกสถานที่เรา ได้รับการทำกับการออกกำลังกาย
หลังจากที่สองของเดือน ของใหม่สถาปัตยกรรม
พวกเขากำลังทำงานเดียวกันแน่นอน ภาระงานที่โหลดเดียวกันแน่นอน
และนี่คือสิ่งที่มันมองเช่นนี้
ดังนั้นสิ่งที่คุณจะได้รับกับ NoSQL เป็น สคีข้อมูลที่เป็นอย่าง
ผูกติดอยู่กับรูปแบบการเข้าถึง
>> และคุณสามารถเพิ่มประสิทธิภาพของสคีข้อมูล เพื่อสนับสนุนรูปแบบการเข้าถึงที่
ถ้าคุณทำไม่ได้แล้วคุณจะ เพื่อดูประเภทที่ของปัญหา
ด้วยปุ่มร้อน
>> ผู้ชม: ดีย่อมบางสถานที่ กำลังจะร้อนกว่าคนอื่น ๆ
>> RICK Houlihan: เสมอ
เสมอ.
ใช่ผมหมายถึงมีเสมอ a-- และอีกครั้งมี
รูปแบบการออกแบบบางอย่างที่เราจะได้รับผ่าน ที่จะพูดคุยเกี่ยวกับวิธีการที่คุณจัดการ
ที่มีขนาดใหญ่รวมสุดเหล่านี้
ฉันหมายความว่าฉันจะต้องมีพวกเขา ทำอย่างไรเราจะจัดการกับพวกเขา?
ผมได้ใช้กรณีที่ดีงาม ว่าเราจะพูดคุยเกี่ยวกับการที่
>> สิทธิทั้งหมดเพื่อให้การพูดคุยของ ลูกค้าเกี่ยวกับบางส่วนในขณะนี้
พวกเหล่านี้เป็น AdRoll
ผมไม่ทราบว่าถ้าคุณอยู่ คุ้นเคยกับ AdRoll
คุณอาจจะเห็นพวกเขา มากในเบราว์เซอร์
พวกเขากำลังกำหนดเป้​​าหมายใหม่โฆษณาที่พวกเขากำลัง โฆษณาธุรกิจใหม่การกำหนดเป้​​าหมายที่ใหญ่ที่สุด
ข้างนอกนั้น.
พวกเขามักเป็นประจำทำงานมากกว่า 60000000000 รายการต่อวัน
พวกเขากำลังทำกว่าล้าน การทำธุรกรรมต่อวินาที
พวกเขาได้มีตารางง่ายสวย โครงสร้างตารางที่คึกคักที่สุด
มันเป็นพื้นเพียง ที่สำคัญคือกัญชาคุกกี้
ช่วงเป็นทางด้านประชากรศาสตร์ หมวดหมู่แล้ว
แอตทริบิวต์ที่สามคือคะแนน
>> ดังนั้นเราทุกคนมีคุกกี้ใน เบราว์เซอร์ของเราจากคนเหล่านี้
และเมื่อคุณไปที่ ร้านค้าที่เข้าร่วมโครงการ
พวกเขาโดยทั่วไปคะแนนคุณข้าม กลุ่มผู้เข้าชมประเภทต่างๆ
เมื่อคุณไปที่เว็บไซต์และ คุณบอกว่าผมต้องการที่จะเห็น ad-- นี้
หรือโดยทั่วไปคุณไม่ได้พูด that-- แต่เมื่อคุณไปที่เว็บไซต์
พวกเขากล่าวว่าคุณต้องการที่จะเห็นโฆษณานี้
และพวกเขาไปรับโฆษณาจาก AdRoll ว่า
AdRoll ดูคุณขึ้นบนโต๊ะของพวกเขา
พวกเขาพบว่าคุกกี้ของคุณ
โฆษณาบอก พวกเขาต้องการใครสักคนที่ฉัน
ที่เป็นวัยกลางคน ชาย 40 ปีเป็นกีฬา
และพวกเขาทำคะแนนคุณในประชากรเหล่านั้น และพวกเขาตัดสินใจหรือไม่
ที่เป็นโฆษณาที่ดีสำหรับคุณ
>> ตอนนี้พวกเขามี SLA ด้วย ผู้ให้บริการโฆษณาของพวกเขา
เพื่อให้การย่อย 10 มิลลิวินาที การตอบสนองตามคำขอเดียวทุก
ดังนั้นพวกเขากำลังใช้เครื่องปั่นไฟ DB สำหรับนี้
พวกเขากำลังตีเรา ล้านหน้าต่อวินาที
พวกเขาสามารถที่จะทำของพวกเขาทั้งหมด การค้นหา, triage ทั้งหมดที่มีข้อมูล
และได้รับการเพิ่มการเชื่อมโยงกลับไปที่ ผู้โฆษณาในอายุต่ำกว่า 10 มิลลิวินาที
มันจริงๆเป็นปรากฎการณ์สวย การใช้งานที่พวกเขามี
>> พวกเหล่านี้ actually-- เหล่านี้เป็นพวก
ผมไม่แน่ใจว่าถ้าเป็นคนเหล่านี้
อาจจะมีคนเหล่านี้
โดยทั่วไปบอก us-- ไม่มีฉัน ไม่ได้คิดว่ามันเป็นพวกเขา
ฉันคิดว่ามันเป็นคนอื่น
ผมได้ทำงานร่วมกับ ลูกค้าที่บอกฉัน
ว่าตอนนี้พวกเขาได้ ไปไดนาโม DB พวกเขากำลัง
การใช้จ่ายเงินเพิ่มเติมเกี่ยวกับของว่าง ทีมพัฒนาของพวกเขาทุกเดือน
กว่าที่พวกเขาใช้จ่ายในฐานข้อมูลของพวกเขา
ดังนั้นมันจะให้คุณ ความคิดของการประหยัดค่าใช้จ่าย
ที่คุณจะได้รับในไดนาโมฐานข้อมูลมีขนาดใหญ่มาก
สิทธิทั้งหมด Dropcam เป็นอีก บริษัท หนึ่ง
คนเหล่านี้เป็นชนิด of-- ถ้าคุณคิด ของอินเทอร์เน็ตของสิ่ง Dropcam
เป็นพื้นวิดีโอรักษาความปลอดภัยอินเทอร์เน็ต
คุณใส่กล้องของคุณออกมี
กล้องที่มีเครื่องตรวจจับการเคลื่อนไหว
คนที่มาพร้อม ก่อให้เกิดจุดคิว
กล้องเริ่มบันทึกในขณะที่จน ก็ไม่ได้ตรวจจับการเคลื่อนไหวใด ๆ อีกต่อไป
ทำให้วิดีโอที่ขึ้นบนอินเทอร์เน็ต
>> Dropcam เป็น บริษัท ที่เป็น โดยทั่วไปจะเปลี่ยนไปไดนาโม DB
เพราะพวกเขากำลังประสบ ความเจ็บปวดอย่างมาก
และสิ่งที่พวกเขาบอกกับเราว่า ทันใดนั้นเพตาไบต์ของข้อมูล
พวกเขามีความคิดที่บริการของพวกเขา จะประสบความสำเร็จ
วิดีโอขาเข้ามากกว่า YouTube คือสิ่งที่คนเหล่านี้จะได้รับ
พวกเขาใช้ในการติดตาม DynamoDB ทั้งหมด เมตาดาต้าในทุกจุดที่สำคัญของพวกเขาวิดีโอ
>> ดังนั้นพวกเขาจึงมีถัง S3 พวกเขาผลักดัน ทุกสิ่งประดิษฐ์ไบนารีเข้า
และแล้วพวกเขามี บันทึกไดนาโม DB ว่า
คนชี้ไปที่ผู้ S3 สามวัตถุ
เมื่อพวกเขาต้องมองไปที่วิดีโอ พวกเขามองขึ้นเป็นประวัติการณ์ในไดนาโมดีบี
พวกเขาคลิกที่ลิงค์
พวกเขาดึงวิดีโอจาก S3
เพื่อให้เป็นชนิดของสิ่งที่มีลักษณะเช่นนี้
และนี่คือตรงจากทีมของพวกเขา
>> ไดนาโม DB ลดของพวกเขา เวลาการส่งมอบสำหรับการจัดกิจกรรมวิดีโอ
จากห้าถึง 10 วินาที
ในการจัดเก็บสัมพันธ์ของพวกเขาเก่า พวกเขาเคยต้องไปและดำเนินการ
คำสั่งที่ซับซ้อนหลายรูป ออกวิดีโอที่จะดึงลง
น้อยกว่า 50 มิลลิวินาที
ดังนั้นจึงเป็นที่น่าตื่นตาตื่นใจที่น่าตื่นตาตื่นใจ วิธีการปฏิบัติงานมาก
คุณจะได้รับเมื่อคุณเพิ่มประสิทธิภาพและ คุณปรับแต่งฐานข้อมูลพื้นฐาน
เพื่อสนับสนุนรูปแบบการเข้าถึง
Halfbrick คนเหล่านี้ว่ามันคืออะไร นินจาผลไม้ผมคิดว่าเป็นสิ่งที่พวกเขา
ที่วิ่งทั้งหมดในฐานข้อมูลไดนาโม
และคนเหล่านี้พวกเขาจะดี ทีมพัฒนา, การพัฒนาที่ดี
ร้านขายของ
>> ไม่ได้เป็นทีมงานมือดี
พวกเขาไม่ได้มีจำนวนมาก ทรัพยากรการดำเนินงาน
พวกเขากำลังพยายามที่จะให้ โครงสร้างพื้นฐานของแอพลิเคชันของพวกเขาขึ้น
และทำงาน
พวกเขามาให้เรา
พวกเขามองที่ว่าไดนาโม DB
พวกเขากล่าวว่าสำหรับเรา
พวกเขาสร้างของพวกเขาทั้ง กรอบใบสมัครกับมัน
บางความคิดเห็นที่ดีจริงๆที่นี่ จากทีมงานเกี่ยวกับความสามารถของพวกเขา
ตอนนี้มุ่งเน้นการสร้าง เกมและไม่
ไม่ต้องรักษา โครงสร้างพื้นฐานที่
ได้กลายเป็นจำนวนมหาศาล ค่าใช้จ่ายสำหรับทีมของพวกเขา
ดังนั้นนี่คือสิ่งที่ that-- ประโยชน์ที่คุณได้รับจากเครื่องปั่นไฟ DB
>> สิทธิทั้งหมดที่ได้รับใน การสร้างแบบจำลองข้อมูลที่นี่
และเราได้พูดคุยเพียงเล็กน้อยเกี่ยวกับ หนึ่งในนี้หนึ่งหนึ่งไปยังหลาย ๆ
และอีกหลายความสัมพันธ์หลายชนิด
และวิธีการที่คุณรักษาผู้ที่อยู่ในไดนาโม
ไดนาโมในฐานข้อมูลที่เราใช้ ดัชนีทั่วไปพูด
เพื่อหมุนข้อมูลจาก หนึ่งรสชาติที่อื่น ๆ
แฮปุ่มคีย์ช่วงและดัชนี
>> โดยเฉพาะอย่างยิ่งนี้ ตัวอย่างเช่นรัฐส่วนใหญ่
มีความต้องการการออกใบอนุญาตที่ เพียงหนึ่งใบอนุญาตขับรถต่อคน
คุณไม่สามารถไปจะได้รับสองขับรถ ใบอนุญาตในรัฐบอสตัน
ฉันไม่สามารถทำมันในเท็กซัส
นั่นคือชนิดของวิธีที่มันเป็น
และเพื่อที่ DMV เรามีการค้นหาเรา ต้องการที่จะมองขึ้นไปใบอนุญาตขับรถ
จากจำนวนการรักษาความปลอดภัยทางสังคม
ฉันต้องการที่จะดูรายละเอียดของผู้ใช้ จากจำนวนใบอนุญาตขับรถ
>> ดังนั้นเราอาจจะมีตารางของผู้ใช้ที่ มีคีย์กัญชาจำนวนอนุกรม
หรือหมายเลขประกันสังคมและ คุณลักษณะต่างๆที่กำหนดไว้ในรายการ
ตอนนี้ผมตารางที่ สามารถกำหนด GSI ที่
พลิกว่าประมาณว่าฉันต้องการ คีย์กัญชาใบอนุญาตแล้ว
ทุกรายการอื่น ๆ
ตอนนี้ถ้าผมต้องการที่จะสอบถามและหา จำนวนใบอนุญาตสำหรับสังคมใดก็ตาม
จำนวนการรักษาความปลอดภัยที่ฉันสามารถทำได้ สอบถามตารางหลัก
>> ถ้าผมต้องการที่จะสอบถามและฉันต้องการ ที่จะได้รับการรักษาความปลอดภัยทางสังคม
ตัวเลขหรือคุณลักษณะอื่น ๆ ด้วย จำนวนใบอนุญาตที่ฉันสามารถสอบถาม GSI
รูปแบบที่เป็นที่หนึ่ง ให้เป็นหนึ่งในความสัมพันธ์
เพียงง่ายมาก GSI, พลิกสิ่งที่คนรอบข้าง
ตอนนี้พูดคุยเกี่ยวกับอย่างใดอย่างหนึ่งที่หลาย ๆ
หนึ่งไปยังหลายเป็นพื้น ช่วงที่สำคัญของกัญชา
ที่เราได้รับเป็นจำนวนมากกับเรื่องนี้ กรณีใช้ข้อมูลการตรวจสอบ
การตรวจสอบข้อมูลที่มาในปกติ ช่วงเวลาเช่นอิน​​เทอร์เน็ตของสิ่งที่
เรามักจะได้รับทั้งหมดเหล่านี้ บันทึกเข้ามาตลอดเวลา
>> และผมต้องการที่จะหาอ่านทั้งหมด ระหว่างช่วงเวลาหนึ่ง
มันเป็นแบบสอบถามที่พบบ่อยมากใน โครงสร้างพื้นฐานการตรวจสอบ
วิธีการเกี่ยวกับที่ไปคือการหา โครงสร้างตารางที่เรียบง่ายตารางหนึ่ง
ฉันมีอุปกรณ์ตารางการวัด ด้วยคีย์กัญชาใน ID ของอุปกรณ์
และฉันมีความสำคัญในช่วงที่ การประทับเวลาหรือในกรณีนี้มหากาพย์
และที่ช่วยให้ผมดำเนินการที่ซับซ้อน สอบถามกับกุญแจสำคัญในช่วงนั้น
และกลับระเบียนที่ เป็นญาติกับผลที่ตามมา
ชุดที่ฉันกำลังมองหา
และมันก็สร้างที่หนึ่ง เพื่อความสัมพันธ์มาก
ลงในตารางหลักโดยใช้ ที่สำคัญกัญชาช่วงโครงสร้างที่สำคัญ
>> ดังนั้นชนิดที่สร้างขึ้นจาก ลงในตารางในไดนาโมดีบี
เมื่อฉันกำหนดกัญชา และโต๊ะทีช่วงผม
การกำหนดความสัมพันธ์ที่หนึ่งไปยังหลาย ๆ
มันเป็นความสัมพันธ์พ่อแม่และลูก
>> พูดคุยเกี่ยวกับหลาย ๆ ความสัมพันธ์หลาย
และสำหรับตัวอย่างนี้โดยเฉพาะอย่างยิ่ง อีกครั้งที่เรากำลังจะใช้ GSI ของ
และขอพูดคุยเกี่ยวกับการเล่นเกม สถานการณ์ที่ฉันมีผู้ใช้ที่กำหนด
ฉันต้องการที่จะหาเกมทั้งหมดที่ เขาหรือลงทะเบียนสำหรับการเล่นใน
และสำหรับเกมรับผม ต้องการที่จะหาผู้ใช้ทั้งหมด
ดังนั้นฉันจะทำเช่นนั้น?
ตารางเกมผู้ใช้ของฉันฉันจะ ที่จะมีความสำคัญกัญชาของ ID ผู้ใช้
และที่สำคัญช่วงของเกม
>> ดังนั้นผู้ใช้สามารถมีหลายเกม
มันเป็นหนึ่งในความสัมพันธ์มากระหว่าง ผู้ใช้และเกมที่เขาเล่น
และจากนั้นใน GSI, ฉันจะพลิกว่าประมาณ
ฉันจะสับกับเกมและ ฉันจะช่วงกับผู้ใช้
ดังนั้นถ้าผมต้องการที่จะได้รับทั้งหมด เกมของผู้ใช้เล่นใน
ฉันจะสอบถามตารางหลัก
ถ้าผมต้องการที่จะได้รับผู้ใช้ทั้งหมด ที่มีการเล่นเกมโดยเฉพาะอย่างยิ่ง
ผมสอบถาม GSI
ดังนั้นคุณจะเห็นวิธีการที่เราทำเช่นนี้?
คุณสร้าง GSI เหล่านี้ให้การสนับสนุน กรณีที่ใช้แอพลิเคชันการเข้าถึง
รูปแบบแอพลิเคชัน
>> หากฉันต้องการที่จะสอบถามเกี่ยวกับ มิตินี้ให้
ฉันสร้างดัชนีในมิติที่ว่า
ถ้าฉันไม่ได้ฉันไม่สนใจ
และขึ้นอยู่กับกรณีที่ใช้ผม อาจต้องดัชนีหรือผมอาจจะไม่
ถ้ามันเป็นเรื่องง่ายที่จะเป็นหนึ่งในหลาย ๆ ตารางหลักเป็นเรื่องปกติ
ถ้าผมต้องทำเหล่านี้จำนวนมากที่จะ ของจำนวนมากหรือที่ฉันต้องทำอย่างใดอย่างหนึ่งเพื่อให้คนที่
แล้วบางทีฉันอาจจะต้อง ที่สองดัชนี
ดังนั้นจึงขึ้นอยู่กับ สิ่งที่ฉันพยายามที่จะทำ
และสิ่งที่ฉันพยายามที่จะประสบความสำเร็จ
>> น่าจะเป็นผมไม่ได้จะใช้จ่ายมากเกินไป เวลามากพูดคุยเกี่ยวกับเอกสาร
นี้ได้รับนิด ๆ หน่อย ๆ อาจจะ ลึกกว่าที่เราต้องไปเป็น
พูดคุยนิด ๆ หน่อย ๆ นิพจน์แบบสอบถามเกี่ยวกับที่อุดมไปด้วย
ดังนั้นในไดนาโมฐานข้อมูลที่เรามี ความสามารถในการสร้าง
สิ่งที่เราเรียกการแสดงออกฉาย
การแสดงออกเป็นเพียงการประมาณการ เลือกสาขาหรือค่าที่
ที่คุณต้องการแสดง
ตกลงดังนั้นฉันจะทำให้การเลือก
ผมทำแบบสอบถามกับไดนาโม DB
และผมบอกว่าคุณรู้ว่าสิ่งที่แสดง ฉันเพียงห้าดาวคิดเห็น
สำหรับสินค้านี้โดยเฉพาะอย่างยิ่ง
นั่นคือทั้งหมดที่ฉันต้องการที่จะเห็น
ฉันไม่ต้องการที่จะเห็นทั้งหมด คุณลักษณะอื่น ๆ ของแถว
ผมแค่อยากจะเห็นนี้
ก็เช่นเดียวกับใน SQL เมื่อคุณ บอกว่าดาวหรือเลือกจากตาราง
คุณจะได้รับทุกอย่าง
เมื่อฉันพูดว่าเลือกชื่อจาก ตารางที่ผมจะได้รับหนึ่งแอตทริบิวต์
มันเป็นชนิดเดียวกันของสิ่งที่อยู่ใน ไดนาโม DB หรืออีกฐานข้อมูล NoSQL
การแสดงออกกรองให้ฉันไป พื้นตัดผลการตั้งค่าลง
ดังนั้นผมจึงทำแบบสอบถาม
แบบสอบถามอาจกลับมาพร้อมกับ 500 รายการ
แต่ผมเพียงต้องการรายการที่ มีคุณลักษณะที่ว่านี้
ตกลงจึงขอกรองรายการเหล่านั้น ที่ไม่ตรงกับที่แบบสอบถามโดยเฉพาะอย่างยิ่ง
ดังนั้นเราจึงมีการแสดงออกกรอง
>> การแสดงออกที่สามารถกรอง จะทำงานในแอตทริบิวต์ใด ๆ
พวกเขาไม่ชอบคำสั่งช่วง
คำสั่งยกมีเลือกมากขึ้น
คำสั่งกรองต้องให้ฉันไป ได้รับผลการทั้งหมดที่ตั้งไว้แล้ว
แกะสลักออกข้อมูลที่ฉันไม่ต้องการ
นั่นคือเหตุผลที่สำคัญหรือไม่
เพราะผมอ่านมันทั้งหมด
ในแบบสอบถามที่ฉันจะอ่านและ มันจะเป็นยักษ์ใหญ่เกี่ยวกับข้อมูลที่
แล้วฉันกำลังจะไป แกะสลักออกสิ่งที่ฉันต้องการ
และถ้าฉันก็แค่แกะสลักออก คู่ของแถวนั้นที่ตกลง
มันไม่ได้ไม่มีประสิทธิภาพดังนั้น
>> แต่ถ้าฉันอ่านกองทั้ง ข้อมูลเพียงที่จะตัดออกหนึ่งรายการ
แล้วฉันจะไปจะดีกว่า ออกโดยใช้แบบสอบถามช่วง
เพราะมันมากเลือกมากขึ้น
มันจะช่วยฉันมาก เงินเพราะฉันต้องจ่ายเงินสำหรับการอ่านที่
ที่ไหนผลลัพธ์ที่กลับมา ข้ามสายที่อาจจะมีขนาดเล็กลง
แต่ฉันจ่ายเงินสำหรับการอ่าน
ดังนั้นเข้าใจว่า คุณจะได้รับข้อมูล
นั่นเป็นสิ่งที่สำคัญมากในไดนาโม DB
>> การแสดงออกตามเงื่อนไขนี้เป็นสิ่งที่ ที่คุณอาจเรียกล็อคในแง่ดี
ปรับปรุง IF EXISTS หรือถ้าค่านี้ เทียบเท่ากับสิ่งที่ฉันระบุ
และถ้าผมมีการประทับเวลาในการเป็น บันทึกผมอาจจะอ่านข้อมูล
ฉันอาจจะเปลี่ยนแปลงข้อมูลที่
ผมอาจจะไปเขียนว่า กลับข้อมูลไปยังฐานข้อมูล
ถ้าใครมีการเปลี่ยนแปลงการบันทึก การประทับเวลาอาจมีการเปลี่ยนแปลง
และวิธีการที่เงื่อนไขของฉัน ปรับปรุงอาจกล่าวได้ปรับปรุง
ถ้าประทับเวลานี้เท่ากับ
หรือการปรับปรุงจะล้มเหลวเพราะใครบางคน การปรับปรุงการบันทึกในขณะเดียวกัน
>> นั่นคือสิ่งที่เราเรียกว่าล็อคในแง่ดี
ก็หมายความว่ามีใครบางคน สามารถเข้ามาและเปลี่ยนมัน
และฉันจะตรวจสอบได้ เมื่อผมกลับไปเขียน
แล้วฉันจริงสามารถอ่านว่า ข้อมูลและบอกว่าโอ้เขาเปลี่ยนนี้
ฉันจำเป็นต้องบัญชีสำหรับการที่
และฉันสามารถเปลี่ยนแปลงข้อมูลในของฉัน บันทึกและใช้การปรับปรุงอีก
เพื่อให้คุณสามารถจับที่เพิ่มขึ้นเหล่านั้น การปรับปรุงที่เกิดขึ้นระหว่างเวลา
ให้คุณอ่านข้อมูลและ เวลาที่คุณอาจจะเขียนข้อมูล
>> ผู้ชม: และตัวกรอง การแสดงออกจริงหมายถึงไม่ได้
ในจำนวนหรือ not--
>> [interposing VOICES]
RICK Houlihan: ฉันจะไม่ ได้รับมากเกินไปในนี้
นี้เป็นคำหลักที่สงวนไว้
มุมมองปอนด์เป็นลิขสิทธิ์ คำหลักในไดนาโม DB
ทุกคนมีฐานข้อมูลของตัวเองลิขสิทธิ์ ชื่อคอลเลกชันคุณไม่สามารถใช้
ไดนาโม DB ถ้าคุณระบุ ปอนด์อยู่หน้านี้
คุณสามารถกำหนดชื่อเหล่านั้นขึ้นไปข้างบน
นี้เป็นค่าอ้างอิง
มันอาจจะไม่ได้เป็นไวยากรณ์ที่ดีที่สุดเพื่อ มีขึ้นมีการอภิปรายนี้
เพราะมันได้รับในบาง real-- ฉันจะได้รับการพูดถึงมากขึ้น
เกี่ยวกับที่อยู่ในระดับลึก
>> แต่พอที่จะกล่าวนี้สามารถทำได้ เป็นแบบสอบถามสแกนที่พวกเขา views--
หรือมุมมองปอนด์มีค่ามากกว่า 10
มันเป็นค่าตัวเลขที่ใช่
ถ้าคุณต้องการที่เราสามารถพูดคุยเกี่ยวกับ ว่าหลังจากการอภิปราย
สิทธิทั้งหมดเพื่อให้เราได้รับใน สถานการณ์บางอย่างในการปฏิบัติที่ดีที่สุด
ที่เรากำลังจะพูดคุย เกี่ยวกับปพลิเคชันบางอย่างที่นี่
อะไรคือกรณีการใช้งานสำหรับไดนาโม DB
อะไรคือการออกแบบ ในรูปแบบฐานข้อมูลไดนาโม
>> และเป็นคนแรกที่เรากำลังจะไป พูดคุยเกี่ยวกับอินเทอร์เน็ตในสิ่งที่
ดังนั้นเราจึงได้รับมาก of-- ฉันเดา สิ่งที่เป็น it-- มากกว่า 50%
ของการจราจรบนอินเทอร์เน็ตวันนี้ ถูกสร้างขึ้นจริงโดยเครื่อง
กระบวนการอัตโนมัติได้โดยมนุษย์
ผมหมายถึงสิ่งนี้สิ่งนี้ว่า คุณพกพาในกระเป๋าของคุณ
เท่าใดข้อมูลว่าสิ่งที่เป็น จริงส่งไปรอบ ๆ โดยที่คุณไม่
รู้ว่ามันเป็นที่น่าตื่นตาตื่นใจอย่างแน่นอน
สถานที่ของคุณข้อมูล เกี่ยวกับวิธีการที่รวดเร็วที่คุณกำลังจะ
วิธีที่คุณคิดว่างานของ Google Maps เมื่อพวกเขาบอกคุณว่าการจราจร
ก็เพราะมีคนนับล้านและ ผู้คนนับล้านขับรถรอบ
กับโทรศัพท์ที่มีการส่ง ข้อมูลทั่วทุกสถานที่ทุกเวลา
ดังนั้นหนึ่งในสิ่งที่ เกี่ยวกับประเภทของข้อมูลนี้
ที่มาในการตรวจสอบข้อมูลเข้าสู่ระบบ ข้อมูลข้อมูลอนุกรมเวลามันเป็นเรื่อง
มักจะมีเพียงที่น่าสนใจ นิด ๆ หน่อย ๆ ของเวลา
หลังจากนั้นก็ จึงไม่น่าสนใจ
ดังนั้นเราได้พูดคุยเกี่ยวกับการไม่ให้ ตารางเหล่านั้นเติบโตโดยไม่มีขอบเขต
ความคิดที่นี่คือว่าบางทีฉันมี 24 ชั่วโมงมูลค่าของเหตุการณ์ในตารางของฉันร้อน
และตารางร้อนเป็นไปได้ การจัดเตรียมในอัตราที่สูงมาก
เพราะมันก็นำข้อมูลจำนวนมาก
มันก็นำข้อมูลจำนวนมาก และฉันอ่านมันมาก
ฉันมีจำนวนมากของการดำเนินงาน คำสั่งทำงานกับข้อมูลที่ว่า
>> หลังจาก 24 ชั่วโมงเดี๋ยวก่อนคุณ รู้ว่าสิ่งที่ฉันไม่สนใจ
ดังนั้นบางทีทุกเที่ยงคืนผมม้วน โต๊ะของเราไปยังตารางใหม่
และฉันยกเลิกการจัดเตรียมตารางนี้
และฉันจะใช้เวลา RCU และ ลง WCU เพราะตลอด 24 ชั่วโมงต่อมา
ฉันไม่ได้ทำงานเป็นจำนวนมาก สอบถามกับข้อมูลที่ว่า
ดังนั้นฉันจะประหยัดเงิน
และอาจจะ 30 วันต่อมาฉันทำไม่ได้ จำเป็นต้องดูแลเกี่ยวกับมันทั้งหมด
ผมอาจจะใช้ WCU ของ ทั้งหมดทางลงไปหนึ่ง
เพราะคุณรู้ว่าสิ่งที่มันเป็น ไม่เคยจะได้รับการเขียนไปยัง
ข้อมูลที่อายุ 30 วัน
มันไม่เคยเปลี่ยนแปลง
>> และก็เกือบจะไม่เคยไปได้อ่าน เพื่อให้เพียงใช้เวลาที่ RCU ลงไป 10
และฉันประหยัดตันเงินเกี่ยวกับเรื่องนี้ ข้อมูลและมีเพียงการจ่ายเงินสำหรับข้อมูลของฉันร้อน
นั่นคือสิ่งที่สำคัญที่จะมอง ที่เมื่อคุณมองไปที่ชุดเวลา
ข้อมูลที่มาในปริมาณ
เหล่านี้เป็นกลยุทธ์
ตอนนี้ผมก็สามารถปล่อยให้มัน ทั้งหมดไปที่โต๊ะเดียวกัน
และเพียงแค่ให้ตารางที่เติบโต
ในที่สุดฉันจะ เห็นปัญหาประสิทธิภาพการทำงาน
ฉันจะต้องเริ่มต้นในการเก็บ ข้อมูลบางส่วนออกจากตารางที่
สิ่งที่ไม่
>> ลองดีมาก การออกแบบโปรแกรมประยุกต์ของคุณ
เพื่อให้คุณสามารถทำงานได้ด้วยวิธีนี้ได้
ดังนั้นจึงเป็นโดยอัตโนมัติเพียง ในรหัสโปรแกรม
ตอนเที่ยงคืนทุกคืน มันม้วนตาราง
บางทีสิ่งที่ฉันต้องเป็นบานเลื่อน หน้าต่าง 24 ชั่วโมงของข้อมูล
จากนั้นเป็นประจำฉัน เรียกข้อมูลออกจากตาราง
การตัดแต่งผมด้วย งาน cron และฉันวางไว้
บนตารางอื่น ๆ เหล่านี้ สิ่งที่คุณต้องการ
ดังนั้นถ้าทำงานแบบโรลโอเวอร์ที่ดี
ถ้าไม่ตัดมัน
แต่ขอให้ข้อมูลที่ร้อน ห่างจากข้อมูลของคุณเย็น
มันจะช่วยให้คุณประหยัดเงินจำนวนมากและ ทำให้ตารางของคุณมีประสิทธิภาพมากขึ้น
ดังนั้นสิ่งต่อไปที่เราจะพูดคุย เกี่ยวกับการเป็นแคตตาล็อกสินค้า
แคตตาล็อกสินค้า กรณีที่ใช้ร่วมกันสวย
นี้เป็นจริงรูปแบบที่พบบ่อยมาก ว่าเราจะเห็นในความหลากหลายของสิ่ง
คุณจะรู้ว่าทวิตเตอร์สำหรับ ตัวอย่างเช่นการทวีตร้อน
ทุกคนที่มาและ โลภทวีตว่า
แคตตาล็อกสินค้าผมได้ขาย
ผมได้ขายร้อน
ผมได้ 70,000 หน้าต่อ สองมาสำหรับผลิตภัณฑ์
คำอธิบายออกมาจากแคตตาล็อกสินค้าของฉัน
เราเห็นนี้ในการค้าปลีก การดำเนินการไม่น้อย
ดังนั้นวิธีที่เราจัดการกับที่?
ไม่มีทางที่จะจัดการกับที่ไม่ได้
ผู้ใช้ทุกคนของฉันต้องการที่จะเห็น ชิ้นเดียวกันของข้อมูล
พวกเขากำลังจะเข้ามาพร้อมกัน
และพวกเขากำลังทั้งหมดทำให้การร้องขอ สำหรับชิ้นเดียวกันของข้อมูล
นี้จะช่วยให้ผมว่าที่สำคัญร้อนที่สีแดงขนาดใหญ่ แถบบนแผนที่ของฉันที่เราไม่ชอบ
และนั่นคือสิ่งที่ดูเหมือนว่า
ดังนั้นในแต่ละพื้นที่ที่สำคัญของฉันฉันได้รับ ใช้ค้อนทุบในรายการขาย
ฉันได้รับอะไรที่ใด
>> ฉันจะบรรเทาปัญหานี้ได้อย่างไร?
ดีเราบรรเทานี้กับแคช
แคชคุณใส่พื้นในหน่วยความจำ พาร์ทิชันในด้านหน้าของฐานข้อมูล
เรามีการจัดการ [ไม่ได้ยิน] แคชวิธีการที่คุณ
สามารถตั้งค่าแคชของคุณเอง [ไม่ได้ยิน] แคช [? d?] สิ่งที่คุณต้องการ
ที่ใส่ขึ้นในด้านหน้าของฐานข้อมูล
และวิธีการที่คุณสามารถเก็บข้อมูลได้ที่ จากคีย์ร้อนขึ้นในแคชที่
พื้นที่และอ่านผ่านแคช
>> และจากนั้นส่วนใหญ่อ่านของคุณ เริ่มมองเช่นนี้
ผมได้ทุกแคชเหล่านี้ฮิตที่นี่ และผมไม่มีอะไรเกิดขึ้นที่นี่
เนื่องจากฐานข้อมูลจะนั่งอยู่ด้านหลัง แคชและอ่านไม่เคยผ่านเข้ามา
หากฉันเปลี่ยนข้อมูลใน ฐานข้อมูลที่ผมต้องปรับปรุงแคช
เราสามารถใช้บางสิ่งบางอย่าง เช่นไอจะทำอย่างนั้น
และฉันจะอธิบายวิธีการทำงาน
สิทธิทั้งหมดส่งข้อความ
อีเมล์ที่เราใช้อีเมล
>> นี่คือตัวอย่างที่ดีงาม
เราได้มีการจัดเรียงของตารางบางข้อความ
และเราได้กล่องจดหมายและขาออก
นี่คือสิ่งที่ SQL ก็จะ ดูต้องการสร้างกล่องจดหมายที่
เราใช้ชนิดของชนิดเดียวกัน ของกลยุทธ์ที่จะใช้ GSI ของ GSI ของ
สำหรับกล่องจดหมายและขาออกของฉัน
ดังนั้นผมจึงมีข้อความดิบมา ลงในตารางข้อความของฉัน
และวิธีแรกนี้ อาจจะบอกว่าโอเคไม่มีปัญหา
ฉันมีข้อความดิบ
ข้อความมา [ไม่ได้ยิน] หมายเลขข้อความที่ดี
นั่นคือกัญชาที่ไม่ซ้ำกันของฉัน
ฉันจะสร้างสอง GSI คนหนึ่ง สำหรับกล่องจดหมายของฉันหนึ่งสำหรับขาออกของฉัน
และสิ่งแรกที่ฉันจะทำ คือผมจะบอกว่ากัญชาที่สำคัญของฉันคือ
จะเป็นผู้รับและ ฉันจะจัดในวันที่
นี้เป็นที่ยอดเยี่ยม
ผมได้รับมุมมองที่ดีของฉันที่นี่
แต่มีปัญหาเล็ก ๆ น้อย ๆ ที่นี่
และคุณวิ่งเข้ามาในนี้ ฐานข้อมูลเชิงสัมพันธ์ได้เป็นอย่างดี
พวกเขาเรียกว่าแบ่งพาร์ทิชันในแนวตั้ง
คุณต้องการที่จะเก็บข้อมูลขนาดใหญ่ของคุณ ห่างจากข้อมูลที่น้อยของคุณ
>> และเหตุผลเป็นเพราะฉันต้อง ไปอ่านรายการที่จะได้รับคุณสมบัติ
และถ้าร่างกายของฉันทุกคนที่นี่ แล้วอ่านเพียงไม่กี่รายการ
ถ้าความยาวร่างกายของฉันคือ เฉลี่ย 25​​6 กิโลไบต์แต่ละ
คณิตศาสตร์ที่ได้รับน่าเกลียดสวย
ดังนั้นจะบอกว่าผมต้องการที่จะอ่านในกล่องจดหมายของเดวิด
กล่องจดหมายของดาวิดมี 50 รายการ
ค่าเฉลี่ยและขนาด 256 กิโลไบต์คือ
นี่คืออัตราการแปลงของฉัน สำหรับ RCU เป็นสี่กิโลไบต์
>> ตกลงให้ไปกับ ที่สอดคล้องกันในที่สุดก็อ่าน
ฉันยังคงรับประทานอาหาร 1600 RCU ของ เพียงเพื่ออ่านกล่องจดหมายของเดวิด
อุ๊ยตาย
ตกลงตอนนี้ขอคิด เกี่ยวกับวิธีการทำงานของแอพพลิเค
ถ้าผมอยู่ในแอปพลิเคอีเมลและ ฉันกำลังมองหาที่กล่องจดหมายของฉัน
และฉันมองไปที่ร่างกายของทุกข้อความ ไม่ฉันกำลังมองหาที่สรุป
ฉันกำลังมองหาที่ส่วนหัวเท่านั้น
ดังนั้นเรามาสร้างโครงสร้างตาราง ที่มีลักษณะเช่นเดียวกับที่อื่น ๆ
>> ดังนั้นนี่คือข้อมูลที่ ขั้นตอนการทำงานที่ความต้องการของฉัน
มันอยู่ในกล่องจดหมายของฉัน GSI
มันเป็นวันที่ผู้ส่ง เรื่องที่แล้ว
หมายเลขข้อความซึ่งชี้ กลับไปที่โต๊ะข้อความ
ที่ฉันจะได้รับร่างกาย
ดีเหล่านี้จะเป็นรหัสบันทึก
พวกเขาจะชี้กลับไปที่ รหัสรายการในตารางฐานข้อมูลไดนาโม
ดัชนีทุกคนเสมอ creates-- มักจะมีรายการ
ID เป็นส่วนหนึ่งที่ of-- มาพร้อมกับดัชนี
>> ทั้งหมดขวา
ผู้ชม: มันบอกว่าที่มันถูกเก็บไว้?
RICK Houlihan: ใช่มันบอก exactly-- ที่ว่าสิ่งที่มันไม่
มันบอกว่านี่คือบันทึกของฉันอีกครั้ง
และมันจะชี้กลับไปบันทึกใหม่ของฉัน
ที่แน่นอน
ตกลงดังนั้นตอนนี้กล่องจดหมายของฉันคือ จริงมีขนาดเล็กมาก
และนี่จริงสนับสนุน กระบวนการทำงานของ app อีเมล
ดังนั้นกล่องจดหมายของฉันฉันคลิก
ผมไปพร้อมและฉันคลิกที่ข้อความ ที่เมื่อฉันต้องไปรับร่างกาย
เพราะผมกำลังจะไป ไปที่มุมมองที่แตกต่างกัน
ดังนั้นถ้าคุณคิดเกี่ยวกับประเภทของ MVC กรอบการควบคุมมุมมองรูปแบบ
>> รูปแบบประกอบด้วย ข้อมูลที่มีมุมมองความต้องการ
และควบคุมการโต้ตอบกับ
เมื่อฉันเปลี่ยนกรอบเมื่อ เปลี่ยนมุมมอง
มันตกลงที่จะกลับไปที่ เซิร์ฟเวอร์และ repopulate รูปแบบ
เพราะนั่นคือสิ่งที่ผู้ใช้คาดหวัง
เมื่อพวกเขาได้เปลี่ยนมุมมองที่เมื่อ เราสามารถกลับไปยังฐานข้อมูล
อีเมลเพื่อคลิก
ฉันกำลังมองหาร่างกาย
ไป - กลับ.
ไปรับร่างกาย
>> ผมอ่านมากข้อมูลน้อย
ฉันก็แค่อ่านร่างกายที่ เดวิดต้องการเมื่อเขาต้องการพวกเขา
และฉันไม่ได้เผาใน 1600 RCU เป็นเพียงการแสดงของเขาในกล่องจดหมาย
ดังนั้นตอนนี้ that-- นี้เป็นวิธีที่ ที่ LSI หรือ GSI-- ฉันขอโทษ
GSI จะทำงานออก
เรามีกัญชาของเราเกี่ยวกับผู้รับ
เรามีช่วงที่สำคัญในวันที่
และเราได้มีคุณลักษณะที่คาดการณ์ไว้ ที่เราต้องการเพียงที่จะสนับสนุนมุมมอง
>> เราหมุนที่กล่องขาออก
แฮเกี่ยวกับผู้ส่ง
และในสาระสำคัญที่เรามี ดีมากมุมมองที่สะอาด
และมันก็เป็น basically-- เรา มีข้อความนี้ดี
ตารางที่ถูกแพร่กระจายอย่างเพราะ มันเป็นกัญชาเพียงหมายเลขข้อความถก
และเรามีสองดัชนีที่ จะหมุนออกจากตารางที่
สิทธิทั้งหมดคิดดังนั้นนี่คือทำไม่ได้ เก็บข้อมูลขนาดใหญ่และข้อมูลเล็ก ๆ นี้
ด้วยกัน.
พาร์ทิชันในแนวตั้ง พาร์ทิชันตารางเหล่านั้น
ไม่ได้อ่านข้อมูลที่คุณจะได้ไม่ต้อง
สิทธิทั้งหมดในการเล่นเกม
เราทุกคนชอบเกม
อย่างน้อยผมชอบเกมแล้ว
ดังนั้นบางสิ่งที่ ที่เราจัดการกับเมื่อ
เรากำลังคิดเกี่ยวกับการเล่นเกมใช่มั้ย?
เล่นเกมวันนี้โดยเฉพาะอย่างยิ่งโทรศัพท์มือถือ การเล่นเกมคือทั้งหมดที่เกี่ยวกับการคิด
และฉันจะหมุนที่นี่ นิด ๆ หน่อย ๆ ออกไปจาก DynamoDB
ผมจะนำมาใน บางส่วนของการสนทนา
รอบบางส่วนของ เทคโนโลยี AWS อื่น ๆ
>> แต่ความคิดเกี่ยวกับการเล่นเกมคือการคิด เกี่ยวกับในแง่ของ API, APIs ที่มี
โดยทั่วไปพูด HTTP และ JSON
มันเป็นวิธีที่มือถือเกมชนิดของ โต้ตอบกับปลายหลังของพวกเขา
พวกเขาทำเช่นการโพสต์ JSON
พวกเขาได้รับข้อมูลและมันทั้งหมด โดยทั่วไปการพูดใน JSON API ที่ดี
>> สิ่งที่ต้องการได้เพื่อนได้รับ ลีดเดอร์ข้อมูลแลกเปลี่ยน
ผู้ใช้สร้างเนื้อหา ผลักดันกลับขึ้นไประบบ
เหล่านี้เป็นประเภทของสิ่ง ที่เรากำลังจะทำ
ข้อมูลสินทรัพย์ไบนารีข้อมูลนี้ อาจจะไม่ได้นั่งอยู่ในฐานข้อมูล
นี้อาจนั่งใน เก็บวัตถุใช่มั้ย?
แต่ฐานข้อมูลเป็นไปได้ จบลงด้วยการบอกระบบ
บอกแอพลิเคชัน สถานที่ที่จะไปรับมัน
และหลีกเลี่ยงไม่ได้หลายคน เซิร์ฟเวอร์โครงสร้างพื้นฐานที่ปลายด้านหลัง
และการออกแบบสำหรับสูง ความพร้อมและความยืดหยุ่น
ดังนั้นเหล่านี้เป็นสิ่งที่เราทุกคนต้องการ ในโครงสร้างพื้นฐานการเล่นเกมในวันนี้
>> ดังนั้นลองมาดูที่ สิ่งที่ดูเหมือนว่า
มีปลายด้านหลังหลัก ตรงไปตรงมามาก
เรามีระบบที่นี่ด้วย โซนความพร้อมหลาย ๆ
เราได้พูดคุยเกี่ยวกับการเป็น AZS being-- คิด พวกเขาเป็นศูนย์ข้อมูลที่แยกต่างหาก
มากกว่าหนึ่งศูนย์ข้อมูล ต่ออาริโซน่า แต่ที่ตกลง
เพียงแค่คิดว่าพวกเขาเป็นข้อมูลที่แยกต่างหาก ศูนย์ที่มีสภาพทางภูมิศาสตร์
และความผิดที่แยก
>> เรากำลังจะมี กรณี EC2 คู่
เรากำลังจะมี บางเซิร์ฟเวอร์ปลายด้านหลัง
บางทีถ้าคุณเป็นมรดก สถาปัตยกรรมเรา
โดยใช้สิ่งที่เราเรียก RDS, บริการฐานข้อมูลเชิงสัมพันธ์
อาจจะเป็น MSSQL, MySQL, หรือสิ่งที่ต้องการ
นี่เป็นวิธีการใช้งานจำนวนมาก วันนี้ได้รับการออกแบบ
>> ดีที่เราอาจต้องการที่จะไปกับ นี้คือเมื่อเราวัดออก
เราจะไปข้างหน้าและวาง ถัง S3 ไปอยู่ที่นั่น
และที่ถัง S3 แทนของการให้บริการ วัตถุเหล่านั้นจาก servers-- ของเรา
เราจะทำอย่างนั้น
คุณใส่ไบนารีของคุณทั้งหมด วัตถุบนเซิร์ฟเวอร์ของคุณ
และคุณสามารถใช้เซิร์ฟเวอร์เหล่านั้น กรณีที่จะให้บริการข้อมูลได้ที่
แต่ที่ราคาแพงสวย
>> วิธีที่ดีกว่าที่จะทำคือไปข้างหน้าและ ใส่วัตถุเหล่านั้นในถัง S3
S3 เป็นที่เก็บวัตถุ
มันสร้างขึ้นมาโดยเฉพาะสำหรับ ให้บริการขึ้นชนิดของสิ่งเหล่านี้
และให้ลูกค้าเหล่านั้นขอ โดยตรงจากถังวัตถุเหล่านั้น
offload เซิร์ฟเวอร์
ดังนั้นเราจะเริ่มต้นที่จะไต่ออกจากที่นี่
>> ตอนนี้เรามีผู้ใช้ทั่วโลก
ผมได้ผู้ใช้
ฉันจำเป็นต้องมีเนื้อหาที่มีในท้องถิ่น ตั้งอยู่ใกล้กับผู้ใช้เหล่านี้ใช่มั้ย?
เราได้สร้างถัง S3 เป็นพื้นที่เก็บข้อมูลแหล่งที่มาของฉัน
และผมด้านหน้าจะว่าด้วยการ การกระจาย CloudFront
>> CloudFront เป็นซีดีและ เครือข่ายการจัดส่งเนื้อหา
โดยทั่วไปจะใช้เวลาข้อมูลที่คุณระบุ และเก็บมันทั้งหมดผ่านทางอินเทอร์เน็ต
เพื่อให้ผู้ใช้สามารถมีทุกที่ ตอบสนองอย่างรวดเร็วมากเมื่อ
พวกเขาขอวัตถุเหล่านั้น
>> เพื่อให้คุณได้รับความคิด
คุณกำลังชนิดของการใช้ประโยชน์จากทุก แง่มุมของ AWS ที่นี่เพื่อรับนี้ทำ
และในที่สุดเราโยน ในกลุ่มที่ปรับอัตโนมัติ
ดังนั้นกรณี AC2 ของเรา เซิร์ฟเวอร์เกมของเรา
ขณะที่พวกเขาเริ่มได้รับยุ่ง และยุ่งและยุ่ง,
พวกเขาก็จะหมุนอีก ตัวอย่างเช่นหมุนกรณีอื่น
หมุนอีกตัวอย่าง
ดังนั้นเทคโนโลยี AWS มีมัน ช่วยให้คุณระบุพารามิเตอร์
รอบที่เซิร์ฟเวอร์ของคุณจะเติบโต
ดังนั้นคุณจึงสามารถมีจำนวน n ของเซิร์ฟเวอร์ ออกมีในเวลาใดก็ตาม
และถ้าโหลดของคุณออกไปพวกเขาจะ หดตัวจำนวนจะหดตัวลง
และถ้าโหลดกลับมา มันจะเติบโตกลับออกยืดหยุ่น
>> ดังนั้นนี่ดูดี
เรามีจำนวนมากของกรณี EC2
เราสามารถใส่ในแคช ด้านหน้าของฐานข้อมูล
และพยายามเร่งฐานข้อมูล
จุดความดันต่อไป มักจะมีคนเห็น
คือพวกเขาขนาดโดยใช้เก​​มเป็น ระบบฐานข้อมูลเชิงสัมพันธ์
Jeez ฐานข้อมูล ผลการดำเนินงานที่น่ากลัวคือ
เราจะปรับปรุงอย่างไร
ลองใส่ แคชในด้านหน้าของที่
>> ดีแคชไม่ทำงาน เพื่อที่ดีในการเล่นเกมใช่มั้ย?
สำหรับเกมการเขียนเป็นความเจ็บปวด
เกมจะเขียนมากหนัก
แคชไม่ทำงานเมื่อคุณ เขียนหนักเพราะคุณได้เสมอ
มีการอัปเดตแคช
คุณปรับปรุงแคชก็ ที่ไม่เกี่ยวข้องจะเป็นแคช
เป็นจริงเพียงแค่การทำงานพิเศษ
>> เพื่อที่เราจะไปที่นี่?
คุณได้มีคอขวดใหญ่ มีการลงในฐานข้อมูล
และสถานที่ที่จะไป เห็นได้ชัดว่ามีการแบ่งพาร์ทิชัน
พาร์ทิชันไม่ได้ ง่ายที่จะทำเมื่อคุณอยู่
การจัดการกับฐานข้อมูลเชิงสัมพันธ์
ด้วยฐานข้อมูลเชิงสัมพันธ์คุณ รับผิดชอบในการจัดการอย่างมีประสิทธิภาพ
พื้นที่ที่สำคัญ
คุณกำลังจะบอกว่าผู้ใช้ระหว่าง A และ M ไปที่นี่ระหว่าง n และ Z ไปที่นั่น
และคุณเปลี่ยน ข้ามแอพลิเคชัน
ดังนั้นคุณจัดการกับ แหล่งข้อมูลพาร์ทิชันนี้
คุณมีข้อ จำกัด ในการทำธุรกรรม ที่ไม่ครอบคลุมพาร์ทิชัน
คุณได้ทุกชนิด สกปรกที่คุณ
การจัดการกับความพยายามลงไปที่นั่น ที่จะจัดการกับการปรับออก
และการสร้างโครงสร้างพื้นฐานขนาดใหญ่
มันเป็นเพียงแค่สนุก
>> ผู้ชม: ดังนั้นที่คุณบอกว่า การเพิ่มแหล่งที่มาของจุดเพิ่มความเร็วในการ
กระบวนการ?
RICK Houlihan: การเพิ่ม?
ผู้ชม: จุดที่มา
RICK Houlihan: จุดที่มา?
ผู้ชม: จากข้อมูล ซึ่งข้อมูลจะมาจากไหน?
RICK Houlihan: เลขที่
สิ่งที่ฉันพูดคือการเพิ่ม จำนวนของพาร์ทิชันในการจัดเก็บข้อมูล
ช่วยเพิ่มการส่งผ่าน
ดังนั้นสิ่งที่เกิดขึ้นที่นี่เป็นผู้ใช้ ที่เข้ามาในอินสแตนซ์ EC2 ขึ้นที่นี่
ดีถ้าฉันต้องการของผู้ใช้ ที่ A ถึง M ผมจะไปที่นี่
จาก N เพื่อหน้าผมจะไปที่นี่
จาก P ถึง Z ผมจะไปที่นี่
>> ผู้ชม: ตกลงเหล่านั้นเพื่อให้ผู้ที่มี เก็บไว้ในโหนดที่แตกต่างกัน?
>> RICK Houlihan: ใช่
คิดว่าของเหล่านี้เป็น ไซโลที่แตกต่างกันของข้อมูล
ดังนั้นคุณต้องทำเช่นนี้
ถ้าคุณกำลังพยายามที่จะทำ นี้ถ้าคุณกำลังพยายามที่
ที่จะไต่บนแพลตฟอร์มเชิงสัมพันธ์ นี่คือสิ่งที่คุณกำลังทำ
คุณกำลังการข้อมูลและ คุณกำลังตัดมันลง
และคุณแบ่งมันข้าม หลายกรณีของฐานข้อมูล
และคุณจัดการทุกสิ่งที่ ในชั้นการประยุกต์ใช้
มันไม่สนุก
ดังนั้นสิ่งที่เราต้องการจะไป?
เราต้องการที่จะไป DynamoDB อย่างเต็มที่การจัดการ NoSQL เก็บข้อมูลผ่านการให้
เราใช้ดัชนีรอง
มันเป็นพื้น HTTP API และ รวมถึงการสนับสนุนเอกสาร
ดังนั้นคุณจึงไม่ต้องกังวล ใด ๆ เกี่ยวกับการแบ่งว่า
เราทำทุกอย่างให้คุณ
ดังนั้นตอนนี้แทนคุณ เพียงแค่เขียนลงในตาราง
ถ้าตารางจะต้องมีการแบ่งพาร์ติชัน ที่เกิดขึ้นอยู่เบื้องหลัง
คุณกำลังฉนวนสมบูรณ์ จากการที่เป็นนักพัฒนา
ดังนั้นเรามาพูดคุยเกี่ยวกับ บางส่วนของกรณีการใช้งาน
ที่เราใช้เป็นในการเล่นเกมร่วมกัน สถานการณ์การเล่นเกมลีดเดอร์
เพื่อให้คุณได้มีผู้ใช้มาใน BoardNames ที่พวกเขากำลัง
เมื่อคะแนนสำหรับผู้ใช้นี้
เราอาจจะมีการ hashing หมายเลขผู้ใช้ในการ แล้วเรามีช่วงในเกม
ดังนั้นผู้ใช้ทุกคนต้องการที่จะเห็น ทุกเกมที่เขาเล่น
และคะแนนสูงสุดของเขา ในทุกเกม
เพื่อให้เป็นลีดเดอร์ส่วนตัวของเขา
>> ตอนนี้ผมต้องการที่จะไปในและฉันต้องการ get-- ดังนั้นผมจึงได้รับเหล่านี้ผู้นำส่วนบุคคล
สิ่งที่ฉันต้องการจะทำคือไปรับ คะแนนสูงสุดทั่วทั้งผู้ใช้ทั้งหมด
ดังนั้นฉันจะทำเช่นนั้น?
เมื่อบัน​​ทึกของฉันมีการถกกันใน หมายเลขผู้ใช้ที่อยู่ในช่วงในเกม
ดีฉันจะไปข้างหน้า และการปรับโครงสร้างสร้าง GSI,
และฉันจะปรับโครงสร้างข้อมูลว่า
>> ตอนนี้ผมกำลังจะไปสับบน BoardName ซึ่งเป็นเกม
และฉันกำลังจะไปช่วงที่คะแนนสูงสุด
และตอนนี้เราได้สร้างถังที่แตกต่างกัน
ฉันใช้ตารางเดียวกัน ข้อมูลรายการเดียวกัน
แต่ผมกำลังสร้างถังที่ให้ ฉันรวมตัวของคะแนนสูงสุดจากเกม
>> และผมสามารถสอบถามตารางที่ เพื่อให้ได้ข้อมูลที่
ดังนั้นผมจึงได้กำหนดรูปแบบการสอบถามที่ขึ้นไป ได้รับการสนับสนุนโดยดัชนีรอง
ตอนนี้พวกเขาสามารถจัดเรียงตาม BoardName และจัดเรียงตาม topscore ขึ้นอยู่กับ
ดังนั้นคุณจะเห็นเหล่านี้เป็นประเภท กรณีการใช้งานของคุณจะได้รับในการเล่นเกม
อีกกรณีที่ใช้งานที่ดีที่เราได้รับในการเล่นเกม จะได้รับรางวัลและผู้ที่ได้รับรางวัลได้รับรางวัล
และนี่เป็นกรณีที่ใช้งานที่ดี ที่เราเรียกว่าดัชนีเบาบาง
ดัชนีเบาบางเป็น ความสามารถในการสร้าง
ดัชนีที่ไม่จำเป็นต้อง มีทุกรายการเดียวบนโต๊ะ
และทำไมไม่?
เพราะแอตทริบิวต์ที่เป็น การจัดทำดัชนีไม่ได้มีอยู่ในทุกรายการ
>> ดังนั้นในการนี​​้โดยเฉพาะ ใช้กรณีที่ผมว่า
คุณรู้ว่าสิ่งที่ผมกำลังจะไป สร้างแอตทริบิวต์ที่เรียกว่ารางวัล
และฉันจะให้ผู้ใช้ทุกคน ที่มีรางวัลที่แอตทริบิวต์
ผู้ใช้ที่ไม่ได้รับรางวัลเป็น ไม่ได้ไปมีแอตทริบิวต์ที่
ดังนั้นเมื่อผมสร้าง ดัชนีผู้ใช้เท่านั้น
ที่จะแสดง ขึ้นในดัชนีที่มี
คนที่จริงได้รับรางวัล
เพื่อให้เป็นวิธีที่ดีที่จะสามารถ ในการสร้างดัชนีกรองที่
มีมากเลือกมากที่ทำไม่ได้ มีดัชนีทั้งตาราง
>> ดังนั้นเราจึงได้รับต่ำในเวลาที่นี่
ฉันจะไปข้างหน้าและข้าม ออกและข้ามสถานการณ์นี้
พูดคุยนิด ๆ หน่อย ๆ about--
>> ผู้ชม: ฉันสามารถถามคำถามอย่างรวดเร็ว?
หนึ่งคือการเขียนหนัก?
RICK Houlihan: อะไรคืออะไร?
ผู้ชม: เขียนหนัก
RICK Houlihan: เขียนหนัก
ให้ฉันดู.
>> ผู้ชม: หรือไม่ สิ่งที่คุณสามารถเพียง
เสียงไปในเรื่องของการวินาที?
RICK Houlihan: เราไป ผ่านสถานการณ์การออกเสียงลงคะแนน
มันไม่ใช่ว่าไม่ดี
พวกคุณมีไม่กี่นาที?
ตกลง.
>> ดังนั้นเราจะพูดคุยเกี่ยวกับการลงคะแนน
ดังนั้นการออกเสียงลงคะแนนเวลาจริงเรามี ความต้องการสำหรับการลงคะแนน
ความต้องการที่เราอนุญาตให้ แต่ละคนที่จะลงคะแนนเพียงครั้งเดียว
เราต้องการที่ไม่มีใครที่จะสามารถ ที่จะเปลี่ยนคะแนนเสียงของพวกเขา
เราต้องการรวมเวลาจริง และการวิเคราะห์สำหรับประชากร
ที่เรากำลังจะได้รับ แสดงให้กับผู้ใช้บนเว็บไซต์
>> คิดว่าสถานการณ์นี้
เราทำงานจำนวนมากของความเป็นจริง รายการโทรทัศน์ที่พวกเขากำลัง
ทำเหล่านี้ชนิดที่แน่นอนของสิ่งที่
ดังนั้นคุณสามารถคิดสถานการณ์ เรามีล้านล้าน
ของเด็กสาววัยรุ่นที่นั่น กับโทรศัพท์มือถือของพวกเขา
และออกเสียงลงคะแนนและการออกเสียงลงคะแนนและ ใครก็ตามที่ลงคะแนนให้พวกเขามี
พบว่าจะมีความนิยมมากที่สุด
ดังนั้นเหล่านี้คือบางส่วนของ ความต้องการที่เราวิ่งออกไป
>> และเพื่อให้เป็นครั้งแรกที่ใช้ ในการแก้ปัญหานี้
จะมีการสร้าง โปรแกรมที่ง่ายมาก
ดังนั้นผมจึงได้มีการตรวจสอบนี้
ฉันมีผู้มีสิทธิเลือกตั้งบางส่วนออกมี
พวกเขามาในพวกเขาตี app ที่ลงคะแนน
ฉันมีบางตารางคะแนนโหวตดิบ ฉันเพิ่งจะถ่ายโอนข้อมูลเหล่านั้นลงคะแนนเสียง
ฉันจะต้องรวมบางส่วน ตารางคะแนนโหวตว่า
จะทำวิเคราะห์และประชากรของฉัน และเราจะใส่ทั้งหมดนี้อยู่ในนั้น
>> และนี่คือที่ดี
ชีวิตเป็นสิ่งที่ดี.
ชีวิตที่ดีจนกว่าเราจะพบว่า มีเสมอเพียงหนึ่งหรือสอง
คนที่เป็นที่นิยมในการเลือกตั้ง
มีเพียงหนึ่งหรือสองสิ่งที่เป็น ว่าคนที่สนใจจริงๆ
และถ้าคุณลงคะแนนที่ ขนาดทั้งหมดในทันทีที่ฉัน
จะได้รับการตอกนรกออกจาก สองผู้สมัครหนึ่งหรือสองผู้สมัคร
จำนวน จำกัด มากของรายการ คนพบว่าเป็นที่นิยม
>> นี้ไม่ได้เป็นรูปแบบการออกแบบที่ดี
นี้เป็นจริง รูปแบบการออกแบบที่ดีมาก
เพราะมันจะสร้างสิ่งที่เรา พูดคุยเกี่ยวกับซึ​​่งเป็นปุ่มลัด
คีย์ร้อนเป็นสิ่งที่เราไม่ชอบ
>> ดังนั้นวิธีที่เราจะแก้ไขปัญหาที่?
และจริงๆวิธีการแก้ไขปัญหานี้คือ โดยการใช้ถังผู้สมัครเหล่านั้น
และให้ผู้สมัครที่เรามีในแต่ละครั้ง เรากำลังจะผนวกค่าส​​ุ่ม
สิ่งที่เรารู้ว่าสุ่ม ค่าระหว่างหนึ่งและ 100
ระหว่าง 100 และ 1,000 หรือระหว่างหนึ่งและ 1,000
แต่ค่าสุ่มมากมายที่คุณต้องการ ผนวกเข้าสู่จุดสิ้นสุดของผู้สมัครว่า
>> และสิ่งที่ผมได้ทำมาแล้ว?
หากฉันใช้รหัสผู้สมัครเป็น ถังเสียงรวม
ถ้าฉันได้เพิ่มการสุ่ม จำนวนที่ส่วนท้ายของนั้น
เราได้สร้างตอนนี้ 10 ถังเป็น ร้อยถังพันถัง
ที่ฉันรวมคะแนนโหวตทั่ว
>> ดังนั้นผมจึงมีนับล้านและล้าน และล้านระเบียนมา
สำหรับผู้สมัครเหล่านี้ตอนนี้ฉันการแพร่กระจาย คะแนนโหวตผู้สมัครทั่ว A_1
ผ่านผู้สมัคร A_100 เพราะ ทุกครั้งที่การลงคะแนนเสียงมาใน
ฉันสร้างแบบสุ่ม ค่าระหว่างหนึ่งและ 100
ฉันตรึงมันลงบนปลาย ผู้สมัครที่มีสิทธิออกเสียงของบุคคลสำหรับ
ฉันทิ้งมันลงในถังที่
>> ตอนนี้ในด้านหลังฉันรู้ว่า ที่ผมได้ร้อยถัง
ดังนั้นเมื่อผมต้องการที่จะไปข้างหน้า และรวบรวมคะแนนเสียง
ผมอ่านจากทั่วทุกถังเหล่านั้น
ดังนั้นผมจึงไปข้างหน้าและเพิ่ม
แล้วฉันจะกระจายรวบรวม ที่ฉันออกไปและบอกว่าเดี๋ยวก่อน
คุณรู้ว่าสิ่งที่สำคัญของผู้สมัครนี้ ช่องว่างที่มีมากกว่าร้อยถัง
ฉันจะรวบรวมทั้งหมด เสียงจากผู้ที่ร้อยถัง
ฉันจะรวม พวกเขาและฉันจะพูดว่า
ผู้สมัครตอนนี้มี นับคะแนนรวมของ x
>> ตอนนี้ทั้งสองเขียน แบบสอบถามและแบบสอบถามอ่าน
มีการกระจายอย่าง เพราะผมเขียนทั่ว
และฉันอ่านในหลายร้อยของคีย์
ฉันไม่ได้เขียนและการ อ่านทั่วหนึ่งที่สำคัญในขณะนี้
เพื่อให้เป็นรูปแบบที่ดี
>> นี้เป็นจริงอาจจะเป็นหนึ่ง ของการออกแบบที่สำคัญที่สุด
สำหรับรูปแบบขนาดใน NoSQL
คุณจะเห็นชนิดนี้ รูปแบบการออกแบบในทุกรสชาติ
MongoDB, DynamoDB ก็ไม่ได้ เรื่องที่เราทุกคนต้องทำเช่นนี้
เพราะเมื่อคุณจัดการ ที่มีการรวมขนาดใหญ่เหล่านั้น
คุณต้องคิดออกวิธีการ กระจายออกไปทั่วถัง
ดังนั้นนี้เป็นวิธีที่คุณทำอย่างนั้น
สิทธิทั้งหมดดังนั้นสิ่งที่ คุณกำลังทำในขณะนี้
คุณกำลังจะปิดการซื้อขายอ่าน ค่าใช้จ่ายสำหรับการเขียน scalability
ค่าใช้จ่ายในการอ่านของฉันคือ เล็ก ๆ น้อย ๆ ที่ซับซ้อนมากขึ้น
และฉันต้องไปอ่านจาก ร้อยถังแทนหนึ่ง
แต่ผมก็สามารถที่จะเขียน
และการส่งผ่านของฉันเขียนฉัน ผ่านเป็นที่น่าทึ่ง
ดังนั้นจึงมักจะเป็นที่มีคุณค่า เทคนิคในการปรับ DynamoDB,
หรือฐานข้อมูล NoSQL สำหรับเรื่องที่
ดังนั้นเราจึงคิดวิธีการขนาดมัน
และเราคิดว่าวิธีการที่จะ ขจัดปุ่มร้อนของเรา
และนี่คือที่ยอดเยี่ยม
และเรามีระบบที่ดีนี้
และก็ให้เราในการออกเสียงที่ถูกต้องมาก เพราะเรามีการบันทึกการออกเสียงลงคะแนน de-ล่อ
มันสร้างขึ้นใน DynamoDB
เราได้พูดคุยเกี่ยวกับสิทธิตามเงื่อนไข
>> เมื่อผู้มีสิทธิเลือกตั้งมาในทำให้ แทรกบนโต๊ะที่
พวกเขาใส่ที่มี ID ผู้มีสิทธิเลือกตั้งของพวกเขา ถ้าพวกเขาพยายามที่จะแทรกลงคะแนนอีก
ฉันจะเขียนเงื่อนไข
พูดเพียงเขียนนี้ ถ้าเรื่องนี้ไม่ได้อยู่
ดังนั้นทันทีที่ผมเห็นว่า การออกเสียงลงคะแนนที่ตีตาราง
ไม่มีใครอื่นเป็นไปได้ สามารถที่จะนำพวกเขาในการลงคะแนนเสียง
และที่ยอดเยี่ยม
และเรากำลังการเพิ่ม ผู้สมัครที่เคาน์เตอร์ของเรา
และเรากำลังทำของเรา ประชากรและสิ่งที่
แต่สิ่งที่เกิดขึ้นถ้าฉัน แอพลิเคชันตกมากกว่า?
ตอนนี้สิ่งที่ของคะแนนโหวตอย่างฉับพลัน เป็นมาและฉัน
ไม่ทราบว่าพวกเขากำลังได้รับการประมวลผล เข้าสู่การวิเคราะห์และประชากรของฉัน
อีกต่อไป
และเมื่อแอพลิเคชัน กลับมาขึ้นได้อย่างไร
นรกฉันรู้ว่าสิ่งที่มีคะแนนโหวต รับการประมวลผลและการที่ฉันจะเริ่มต้นอย่างไร
>> ดังนั้นนี่คือปัญหาที่แท้จริงเมื่อคุณ เริ่มที่จะมองไปที่ชนิดของสถ​​านการณ์นี้
และวิธีการที่เราแก้ที่?
เราแก้มันกับสิ่งที่เรา เรียกกระแส DynamoDB
ลำธารเป็นเวลาสั่งซื้อและ แบ่งการเปลี่ยนแปลงเข้าสู่ระบบของการเข้าถึงทุก
ไปที่โต๊ะทุกเขียน การเข้าถึงตาราง
ข้อมูลใด ๆ ที่เขียนถึง ตารางแสดงบนกระแส
>> มันเป็นพื้นคิวตลอด 24 ชั่วโมง
รายการตีกระแส พวกเขาอาศัยอยู่เป็นเวลา 24 ชั่วโมง
พวกเขาสามารถอ่านได้หลายครั้ง
รับประกันที่จะส่งมอบ เพียงครั้งเดียวเพื่อกระแส
สามารถอ่านจำนวน n ครั้ง
ดังนั้นอย่างไรก็ตามกระบวนการมากมายที่คุณต้องการ ใช้ข้อมูลที่คุณสามารถกินมัน
มันจะปรากฏทุกปรับปรุง
เขียนทุกคนจะมีเพียง ปรากฏครั้งเดียวในกระแส
ดังนั้นคุณจึงไม่ต้องกังวล เกี่ยวกับการประมวลผลเป็นครั้งที่สอง
จากกระบวนการเดียวกัน
>> มันมีคำสั่งอย่างเคร่งครัดต่อรายการ
เมื่อเราพูดเวลา สั่งซื้อและแบ่งพาร์ติชัน
คุณจะเห็นต่อพาร์ทิชันในกระแส
คุณจะเห็นรายการปรับปรุงในการสั่งซื้อ
เราไม่ได้รับประกัน ในกระแสที่คุณเป็น
จะได้รับการทำธุรกรรมทุก ในการสั่งซื้อผ่านรายการ
>> ดังนั้นลำธารเป็น idempotent
พวกเราทุกคนรู้ว่าสิ่งที่ idempotent หมายถึงอะไร?
idempotent หมายความว่าคุณสามารถทำมันได้ มากกว่าและเหนือและมากกว่าอีกครั้ง
ผลที่ได้จะเป็นแบบเดียวกัน
>> ลำธารเป็น idempotent, แต่พวกเขาจะต้อง
เล่นได้จากจุดเริ่มต้น ทุกที่ที่คุณเลือกไปยังจุดสิ้นสุด
หรือพวกเขาจะไม่ส่งผล ในค่าเดียวกัน
>> สิ่งเดียวกันกับ MongoDB
MongoDB มีสร้าง ที่พวกเขาเรียก oplog
มันเป็นโครงสร้างเดียวกันแน่นอน
ฐานข้อมูล NoSQL หลาย มีการสร้างนี้
พวกเขาใช้ในการทำสิ่งที่ เช่นการจำลองแบบที่
เป็นสิ่งที่เราจะทำอย่างไรกับลำธาร
ผู้ชม: บางที คำถามนอกคอก แต่คุณ
พูดคุยเกี่ยวกับการทำแอพพลิเคลงอื่น ๆ
มีการรับประกันว่าจะให้ลำธาร ไม่อาจจะลงไป?
RICK Houlihan: ใช่ลำธาร มีการรับประกันว่าจะไม่ลงไป
เราจัดการโครงสร้างพื้นฐาน ที่อยู่เบื้องหลัง ลำธารโดยอัตโนมัติ
ปรับใช้ในกลุ่มรถยนต์ของพวกเขาปรับ
เราจะผ่านไปเพียงเล็กน้อย เล็กน้อยเกี่ยวกับสิ่งที่เกิดขึ้น
>> ฉันไม่ควรจะพูดว่าพวกเขาไม่ได้ รับประกันว่าจะไม่ลงไป
องค์ประกอบที่มีการรับประกัน จะปรากฏในกระแส
และกระแสจะสามารถเข้าถึงได้
ดังนั้นสิ่งที่จะไปลงหรือกลับมา ขึ้นที่เกิดขึ้นภายใต้
มัน covers-- ก็ OK
สิทธิทั้งหมดเพื่อให้คุณได้รับที่แตกต่างกัน ประเภทมุมมองออกมานอกจอ
ประเภทมุมมองที่มีความสำคัญไป โปรแกรมเมอร์มักจะเป็นสิ่งที่มันได้หรือไม่
ฉันจะได้รับมุมมองเก่า
เมื่อการปรับปรุงฮิตโต๊ะก็จะ ผลักดันมุมมองเก่าที่จะสตรีม
ข้อมูลเพื่อสามารถเก็บหรือเปลี่ยน การควบคุมการระบุการเปลี่ยนแปลงการเปลี่ยนแปลง
การจัดการ
>> ภาพใหม่ว่ามันคืออะไรในขณะนี้หลังจาก การปรับปรุงที่ชนิดของอีกมุมมองหนึ่ง
คุณสามารถได้รับ.
คุณจะได้รับทั้งภาพเก่าและใหม่
บางทีฉันอาจจะต้องการให้พวกเขาทั้งสอง
ฉันต้องการที่จะเห็นสิ่งที่มันเป็น
ฉันต้องการที่จะเห็นสิ่งที่มันเปลี่ยนไป
>> ฉันมีประเภทการปฏิบัติตาม ของกระบวนการที่ทำงาน
จะต้องมีการตรวจสอบว่า เมื่อสิ่งเหล่านี้มีการเปลี่ยนแปลง
ว่าพวกเขากำลังภายในขอบเขตที่กำหนด หรือภายในพารามิเตอร์บางอย่าง
>> และแล้วบางทีฉันเท่านั้น ต้องรู้ว่าอะไรเปลี่ยนแปลง
ฉันไม่สนใจสิ่งที่เปลี่ยนแปลงรายการ
ฉันไม่ต้องการที่จะต้องรู้ว่า สิ่งที่เปลี่ยนแปลงคุณลักษณะ
ฉันเพียงต้องการที่จะรู้ว่า รายการที่มีการสัมผัส
ดังนั้นเหล่านี้เป็นชนิดของมุมมอง ที่คุณได้รับการปิดกระแส
และคุณสามารถโต้ตอบกับ
>> โปรแกรมประยุกต์ที่ กินกระแส
นี้เป็นชนิดของวิธีนี้ทำงาน
ลูกค้า DynamoDB ขอให้ ผลักดันข้อมูลไปยังตาราง
ลำธารปรับใช้กับสิ่งที่เราเรียกว่าเศษ
เศษเป็นสัดส่วน อิสระของตาราง
พวกเขาไม่ได้เริ่มขึ้นอย่างสมบูรณ์ พาร์ทิชันของตารางของคุณ
และเหตุผลที่เป็น เพราะพวกเขาบรรทัดขึ้น
ความจุในปัจจุบัน ความจุของตาราง
>> พวกเขาในการปรับใช้ของพวกเขา กลุ่มปรับตัวเองโดยอัตโนมัติ
และพวกเขาเริ่มที่จะหมุนออกขึ้นอยู่กับ เกี่ยวกับวิธีการเขียนหลายคนที่กำลังจะมาใน
วิธีการหลาย reads-- จริงๆก็เขียน
ไม่มี reads-- แต่วิธีการที่เป็น เขียนหลายคนที่มีมาใน
>> และจากนั้นที่ด้านหลัง ท้ายนี้เรามีสิ่งที่เรา
เรียก KCL หรือ Kinesis ไคลเอ็นต์ห้องสมุด
kinesis ข้อมูลสตรีม เทคโนโลยีการประมวลผลจาก Amazon
และลำธารถูกสร้างขึ้นบนที่
>> ดังนั้นคุณใช้ KCL ที่เปิดใช้งาน การประยุกต์ใช้ในการอ่านกระแส
ห้องสมุดไคลเอ็นต์ Kinesis จริง การบริหารจัดการแรงงานสำหรับคุณ
และก็ยังไม่บาง สิ่งที่น่าสนใจ.
มันจะสร้างตารางบางขึ้น ในตาราง DynamoDB ของคุณ
เพื่อติดตามรายการ ได้รับการประมวลผล
ดังนั้นวิธีนี้ถ้ามันตกกลับถ้า มันตกซ้ำมาและได้รับ
กลับยืนขึ้นก็สามารถตรวจสอบที่ มันเป็นในการประมวลผลสตรีม
>> นั่นเป็นสิ่งสำคัญมากเมื่อ คุณกำลังพูดถึงการจำลองแบบ
ฉันต้องการที่จะรู้ว่าสิ่งที่ ข้อมูลที่ถูกรับการประมวลผล
และข้อมูลที่ยังไม่ได้รับการประมวลผล
ดังนั้นห้องสมุด KCL สำหรับลำธารจะ ให้คุณมากของการทำงานว่า
มันต้องใช้เวลาดูแลทุกทำความสะอาด
มันยืนขึ้นสำหรับคนงานทุกชิ้นส่วน
มันจะสร้างตารางการบริหาร สำหรับทุกชิ้นส่วนสำหรับทุกคนงาน
และเป็นผู้ที่ไฟไหม้คนงาน พวกเขารักษาตารางเหล่านั้น
เพื่อให้คุณทราบบันทึกนี้ ได้อ่านและประมวลผล
และแล้ววิธีการที่ถ้ากระบวนการ ตายและกลับมาออนไลน์
ก็สามารถดำเนินการที่เหมาะสมที่จะเอาออก
>> ดังนั้นเราจึงใช้นี้ การจำลองแบบข้ามภูมิภาค
จำนวนมากของลูกค้าที่มีความจำเป็นที่จะต้อง ย้ายข้อมูลหรือบางส่วนของตารางข้อมูลของพวกเขา
รอบภูมิภาคท​​ี่แตกต่างกัน
มีเก้าภูมิภาคเป็น ทั่วทุกมุมโลก.
ดังนั้นอาจจะมีผม need-- อาจจะมีผู้ใช้ในเอเชียผู้ใช้
ในฝั่งตะวันออกของสหรัฐอเมริกา
พวกเขามีข้อมูลที่แตกต่างกัน จะต้องมีการกระจายในประเทศ
และบางทีผู้ใช้บินจาก เอเชียไปยังประเทศสหรัฐอเมริกา
และฉันต้องการที่จะทำซ้ำ ข้อมูลของเขากับเขา
ดังนั้นเมื่อเขาได้รับออกจากเครื่องบินที่เขามี เป็นประสบการณ์ที่ดีที่จะใช้ app มือถือของเขา
>> คุณสามารถใช้ข้ามภูมิภาค ห้องสมุดจำลองแบบการทำเช่นนี้
โดยทั่วไปเรามี ให้สองเทคโนโลยี
เป็นหนึ่งในโปรแกรมประยุกต์คอนโซลที่คุณสามารถ ลุกขึ้นยืนในกรณี EC2 ของคุณเอง
มันทำงานการจำลองแบบบริสุทธิ์
แล้วเราให้คุณห้องสมุด
ห้องสมุดที่คุณสามารถใช้เพื่อสร้าง ใบสมัครของคุณเองหากคุณ
ต้องการที่จะทำสิ่งที่บ้ากับ data-- กรองซ้ำเพียงส่วนหนึ่งของมัน
หมุนข้อมูลเคลื่อนย้ายไปเป็น ตารางที่แตกต่างกันดังนั้นและอื่น ๆ
เพื่อให้เป็นชนิดของสิ่งที่ดูเหมือนว่า
>> DynamoDB Streams สามารถ การประมวลผลโดยสิ่งที่เราเรียกแลมบ์ดา
เรากล่าวนิด ๆ หน่อย ๆ เกี่ยวกับเหตุการณ์ สถาปัตยกรรมการประยุกต์ใช้การขับเคลื่อน
แลมบ์ดาเป็นองค์ประกอบที่สำคัญของการที่
แลมบ์ดาเป็นรหัสที่ไฟตามความต้องการ ในการตอบสนองต่อเหตุการณ์โดยเฉพาะอย่างยิ่ง
หนึ่งในเหตุการณ์เหล่านั้นอาจจะเป็น บันทึกที่ปรากฏในกระแส
หากบันทึกปรากฏบนกระแส เราจะเรียกสิ่งนี้ว่าฟังก์ชั่น Java
ดีนี้เป็น JavaScript และแลมบ์ดา สนับสนุน Node.js, Java, Python,
และเร็ว ๆ นี้จะให้การสนับสนุน ภาษาอื่น ๆ ได้เป็นอย่างดี
และพอเพียงที่จะบอกว่ามันเป็นรหัสที่บริสุทธิ์
เขียนใน Java คุณกำหนดชั้นเรียน
คุณผลักดัน JAR ขึ้นเป็นแลมบ์ดา
และจากนั้นคุณระบุระดับ โทรในการตอบสนองต่อเหตุการณ์
แล้วโครงสร้างพื้นฐานแลมบ์ดา ที่อยู่เบื้องหลังการที่จะเรียกใช้รหัสว่า
>> รหัสที่สามารถประมวลผล บันทึกออกกระแส
มันสามารถทำอะไรที่มันต้องการกับมัน
ในตัวอย่างนี้โดยเฉพาะอย่างยิ่งที่เราทุกคนอยู่ จริงๆทำคือการเข้าสู่ระบบคุณลักษณะ
แต่นี้เป็นเพียงรหัส
รหัสสามารถทำอะไรใช่มั้ย?
>> เพื่อให้คุณสามารถหมุนข้อมูลที่
คุณสามารถสร้างมุมมองที่เป็นตราสารอนุพันธ์
ถ้ามันเป็นโครงสร้างเอกสาร คุณสามารถแผ่โครงสร้าง
คุณสามารถสร้างดัชนีอื่น
ทุกสิ่งที่คุณสามารถทำได้ ทำอย่างไรกับกระแส DynamoDB
>> และจริงๆว่าเป็นสิ่งที่มีลักษณะเหมือน
ดังนั้นคุณจะได้รับการปรับปรุงเหล่านั้นมา
พวกเขากำลังมาปิดสตริง
พวกเขากำลังอ่านโดยฟังก์ชั่นแลมบ์ดา
พวกเขากำลังหมุนข้อมูลและ ผลักดันมันขึ้นมาในตารางอนุพันธ์
แจ้งระบบภายนอกของการเปลี่ยนแปลง และผลักดันข้อมูลลงใน ElastiCache
>> เราได้พูดคุยเกี่ยวกับวิธีการที่จะนำแคช ในด้านหน้าของฐานข้อมูลสำหรับการขายที่
สถานการณ์
ดีว่าเกิดอะไรขึ้นถ้าฉัน อัปเดตรายละเอียดของสินค้า?
ดีถ้าผมมีแลมบ์ดา ฟังก์ชั่นการทำงานบนโต๊ะนั้น
ถ้าฉันจะปรับปรุงรายละเอียดของสินค้าก็จะ รับการบันทึกออกกระแส
และมันจะปรับปรุง ElastiCache ตัวอย่างเช่นมีข้อมูลใหม่
เพื่อให้เป็นจำนวนมาก สิ่งที่เราทำกับแลมบ์ดา
มันเป็นรหัสกาว, การเชื่อมต่อ
และมันก็จริงให้ ความสามารถในการที่จะเปิดตัว
และในการใช้งานที่ซับซ้อนมาก โดยไม่ต้องมีเซิร์ฟเวอร์เฉพาะ
โครงสร้างพื้นฐานซึ่งเป็นเย็นจริงๆ
>> ดังนั้นขอให้กลับไปที่ของเรา เวลาจริงสถาปัตยกรรมการออกเสียงลงคะแนน
นี่คือใหม่และการปรับปรุงกับเรา แอพลิเคชันลำธารและ KCL ที่เปิดใช้งาน
เช่นเดียวกับก่อนหน้านี้ที่เราสามารถทำได้ จัดการกับขนาดของการเลือกตั้ง
เราชอบที่นี้
เรากำลังดำเนินการออกรวบรวมกระจาย ข้ามถังหลาย
เราได้มีการล็อคในแง่ดีที่เกิดขึ้น
เราสามารถให้ผู้มีสิทธิเลือกตั้งของเรา จากการเปลี่ยนลงคะแนน
พวกเขาเท่านั้นที่สามารถลงคะแนนได้เพียงครั้งเดียว
นี้เป็นที่ยอดเยี่ยม
ยอมรับความผิดแบบ real-time รวมที่ปรับขนาดได้ในขณะนี้
หากสิ่งที่ตกอยู่เหนือมัน รู้ที่จะเริ่มการทำงานของตัวเอง
เมื่อมันกลับมาขึ้นเพราะ เรากำลังใช้แอพพลิเค KCL
แล้วเรายังสามารถใช้ว่า แอพลิเคชันที่จะผลักดัน KCL ข้อมูลออก
เพื่อ Redshift อื่น ๆ การวิเคราะห์การตรวจสอบหรือการใช้งาน
MapReduce ยืดหยุ่นในการทำงาน เวลาจริงรวมสตรีมมิ่งออก
ของข้อมูลที่
>> ดังนั้นเหล่านี้เป็นสิ่งที่เรา ยังไม่ได้พูดคุยเกี่ยวกับมาก
แต่พวกเขากำลังเพิ่มเติม เทคโนโลยีที่มา
ที่จะแบกรับเมื่อคุณกำลังมอง ที่เหล่านี้ประเภทของสถ​​านการณ์
>> สิทธิทั้งหมดเพื่อให้เป็นเรื่องของ การวิเคราะห์ด้วย DynamoDB ลำธาร
คุณสามารถเก็บ de-ล่อ ข้อมูลทำทุกชนิด
ของสิ่งที่ดีในการรวมข้อมูล หน่วยความจำสร้างตารางอนุพันธ์เหล่านั้น
นั่นเป็นกรณีที่ใช้มาก ว่าจำนวนมากของลูกค้า
ที่มีส่วนเกี่ยวข้องกับการที่ซ้อนกัน คุณสมบัติของผู้ที่เอกสาร JSON
และการสร้างดัชนีเพิ่มเติม
>> เราในตอนท้าย
ขอขอบคุณสำหรับแบริ่งกับฉัน
ดังนั้นเรามาพูดคุยเกี่ยวกับ สถาปัตยกรรมอ้างอิง
DynamoDB นั่งอยู่ในช่วงกลางของการดังนั้น มากของโครงสร้างพื้นฐาน AWS
โดยทั่วไปคุณสามารถขอ ขึ้นอยู่กับสิ่งที่คุณต้องการ
การประยุกต์ใช้งานสร้างขึ้นโดยใช้ไฟฟ้ารวม แลมบ์ดา Ela​​stiCache, CloudSearch,
ผลักดันข้อมูลออกไปในยางยืด MapReduce, นำเข้าส่งออกจาก DynamoDB
เข้า S3 ทุกชนิดของขั้นตอนการทำงาน
แต่อาจจะดีที่สุด สิ่งที่จะพูดคุยเกี่ยวกับ
และนี่คือสิ่งที่เป็นจริง ที่น่าสนใจคือเมื่อเรา
พูดคุยเกี่ยวกับการใช้งานที่ขับเคลื่อนด้วยเหตุการณ์
>> นี่คือตัวอย่างของ โครงการภายใน
ที่เรามีที่เรากำลังจริง การเผยแพร่เพื่อรวบรวมผลการสำรวจ
ดังนั้นในการเชื่อมโยงอีเมล์ที่ เราส่งออกจะมี
จะมีการเชื่อมโยงน้อยบอกคลิก ที่นี่เพื่อตอบสนองต่อการสำรวจ
และเมื่อคลิกคน การเชื่อมโยงที่สิ่งที่เกิดขึ้น
คือพวกเขาดึงลงการรักษาความปลอดภัย แบบสำรวจ HTML จาก S3
มีเซิร์ฟเวอร์ไม่ได้
นี่เป็นเพียงวัตถุ S3
>> รูปแบบที่เกิดขึ้น โหลดลงในเบราว์เซอร์
ก็มีหัวใจ
มันมีความซับซ้อน JavaScript ที่จะทำงาน
ดังนั้นจึงเป็นแอพลิเคชันที่อุดมสมบูรณ์มาก ที่ทำงานอยู่ในเบราว์เซอร์ของลูกค้า
พวกเขาไม่ได้รู้ว่าพวกเขาไม่ได้ มีปฏิสัมพันธ์กับเซิร์ฟเวอร์ปลายด้านหลัง
ณ จุดนี้มันเป็นเบราว์เซอร์
>> พวกเขาเผยแพร่ผลกับสิ่งที่ ที่เราเรียกว่าเกตเวย์ Amazon API
เกตเวย์ API เป็นเพียงเว็บ API ที่คุณสามารถกำหนดและขอขึ้น
สิ่งที่คุณต้องการ
โดยเฉพาะในกรณีนี้เรากำลัง ติดยาเสพติดได้ถึงฟังก์ชั่นแลมบ์ดา
>> เพื่อให้การดำเนินการโพสต์ของฉันคือ ที่เกิดขึ้นกับเซิร์ฟเวอร์ไม่
โดยทั่วไปที่เกตเวย์ API นั่งอยู่ที่นั่น
มีค่าใช้จ่ายฉันไม่มีอะไรจนประชาชน เริ่มต้นการโพสต์ไปใช่มั้ย?
ฟังก์ชั่นแลมบ์ดาเพียงแค่นั่งอยู่ที่นั่น
และค่าใช้จ่ายฉันไม่มีอะไรจนกว่า ผู้คนเริ่มตีมัน
ดังนั้นคุณจะเห็นเป็นปริมาณ การเพิ่มขึ้นของที่เมื่อค่าใช้จ่ายมา
ฉันไม่ได้ใช้เซิร์ฟเวอร์ 7/24
>> ดังนั้นผมจึงดึงรูปแบบ ลงมาจากถัง
และฉันโพสต์ผ่านเอพีไอ ประตูสู่ฟังก์ชั่นแลมบ์ดา
แล้วแลมบ์ดา ฟังก์ชั่นบอกว่าคุณรู้ว่า
สิ่งที่ฉันมี Piis บาง ข้อมูลส่วนบุคคล
ในการตอบสนองเหล่านี้
ผมได้มาจากความคิดเห็นของผู้ใช้
ฉันมีที่อยู่อีเมล
ฉันมีชื่อผู้ใช้
>> ผมขอแยกออกนี้
ฉันจะสร้างบาง เมตาดาต้าปิดการบันทึกนี้
และฉันจะผลักดัน เมตาดาต้าเข้า DynamoDB
และฉันจะเข้ารหัสข้อมูลทั้งหมด และผลักดันมันลงไปใน DynamoDB ถ้าผมต้องการ
แต่มันเป็นเรื่องง่ายสำหรับผมในการนี​​้ ใช้กรณีที่จะไปข้างหน้าพูดที่
ฉันจะผลักดันข้อมูลดิบ เป็นเข้ารหัสถัง S3
ดังนั้นผมจึงใช้สร้างขึ้นในฝั่งเซิร์ฟเวอร์ S3 การเข้ารหัสและการจัดการคีย์ของ Amazon
บริการเพื่อที่ฉันมีคีย์ที่ สามารถหมุนในช่วงเวลาปกติ
และผมสามารถปกป้องข้อมูล PII ที่ เป็นส่วนหนึ่งของขั้นตอนการทำงานทั้งหมดนี้
>> ดังนั้นสิ่งที่เราได้ทำ?
ผมเคยนำไปใช้เพียงทั้งหมด แอพลิเคชันและฉันมีเซิร์ฟเวอร์ไม่
ดังนั้นสิ่งที่เป็นเหตุการณ์ของโปรแกรมประยุกต์ที่ขับเคลื่อนด้วย สถาปัตยกรรมไม่สำหรับคุณ
>> ตอนนี้ถ้าคุณคิดเกี่ยวกับ กรณีที่ใช้สำหรับ this--
เรามีลูกค้ารายอื่น ๆ ที่ผมพูด จะเกี่ยวกับเรื่องนี้แน่นอนสถาปัตยกรรมที่
เรียกใช้แคมเปญใหญ่เปรอะเปื้อนที่ กำลังมองหาที่นี้และจะโอ้ฉัน
เพราะตอนนี้พวกเขาสามารถ พื้นผลักดันมันออกจากที่นั่น
ให้แคมเปญที่เพิ่งนั่ง จนกว่าจะมีการเปิดตัวและไม่
ต้องกังวลเกี่ยวกับมะเดื่อ สิ่งที่ชนิดของโครงสร้างพื้นฐาน
เป็นไปได้ที่จะมีการสนับสนุน
และจากนั้นโดยเร็ว แคมเปญที่จะทำ
มันก็เหมือนโครงสร้างพื้นฐาน เพียงแค่ออกไปทันที
เพราะที่นั่นจริงๆ เป็นโครงสร้างพื้นฐานที่ไม่มี
มันเป็นเพียงรหัสที่ตั้งอยู่บนแลมบ์ดา
มันเป็นเพียงข้อมูลที่ตั้งอยู่ใน DynamoDB
มันเป็นวิธีที่น่าตื่นตาตื่นใจ เพื่อสร้างโปรแกรมประยุกต์
>> ผู้ชม: ดังนั้นมันมากขึ้น จีรังกว่ามันจะ
ถ้ามันเป็นที่เก็บไว้บนเซิร์ฟเวอร์ที่เกิดขึ้นจริง?
>> RICK Houlihan: แน่นอน
เพราะเช่นเซิร์ฟเวอร์ที่ จะต้องเป็น 7/24
มันจะต้องมีให้บริการสำหรับ ใครสักคนที่จะตอบสนอง
ดีเดาอะไร
S3 ใช้ได้ 7/24
S3 มักจะตอบสนอง
และ S3 เป็นอย่างดีมาก ที่แสดงถึงวัตถุ
วัตถุเหล่านั้นสามารถเป็นไฟล์ HTML หรือ ไฟล์ JavaScript หรือสิ่งที่คุณต้องการ
คุณสามารถเรียกใช้งานเว็บที่อุดมสมบูรณ์มาก ออกจากถัง S3 และคนทำ
>> และเพื่อให้เป็นความคิดที่นี่ คือการได้รับออกไปจากทาง
เราใช้ในการคิดเกี่ยวกับมัน
เราทุกคนเคยคิดว่าใน แง่ของเซิร์ฟเวอร์และโฮสต์
มันไม่เกี่ยวกับที่อีกต่อไป
มันเป็นเรื่องของโครงสร้างพื้นฐานที่เป็นรหัส
การปรับใช้รหัสไปยังเมฆและ ให้เรียกใช้งานระบบคลาวด์สำหรับคุณ
และนั่นคือสิ่ง AWS พยายามที่จะทำ
>> ผู้ชม: ดังนั้นกล่องทองของคุณที่อยู่ตรงกลาง ของเกตเวย์ API เป็นเซิร์ฟเวอร์ไม่เหมือน
แต่แทนที่จะเป็น just--
>> RICK Houlihan: คุณสามารถคิด มันเป็นเซิร์ฟเวอร์ซุ้ม
ทั้งหมดก็คือมันจะใช้เวลาของ HTTP และขอแผนที่ไปยังกระบวนการอื่น
นั่นคือทั้งหมดที่มันไม่
และในกรณีนี้เรากำลังทำแผนที่ ไปยังฟังก์ชั่นแลมบ์ดา
สิทธิทั้งหมดดังนั้นนั่นคือทั้งหมดที่ผมได้รับ
ขอบคุณมาก.
ฉันรู้สึกทราบซึ้ง.
ฉันรู้ว่าเราต้องการนิด ๆ หน่อย ๆ เมื่อเวลาผ่านไป
และหวังว่าพวกคุณได้ นิด ๆ หน่อย ๆ ของข้อมูล
ที่คุณสามารถนำมาใช้ในวันนี้
และฉันต้องขออภัยถ้าผมไป มากกว่าบางส่วนของหัวของคุณ
แต่มีจำนวนมากที่ดีของ ความรู้พื้นฐานขั้นพื้นฐาน
ที่ผมคิดว่าเป็นที่มีคุณค่ามากสำหรับคุณ
ดังนั้นขอขอบคุณสำหรับการมีฉัน
[APPLAUSE]
ผู้ชม: [ไม่ได้ยิน] คือเมื่อคุณกำลังพูด
คุณจะต้องผ่านสิ่ง แต่ต้นจนจบ
เพื่อให้ได้ค่าที่ถูกต้อง หรือค่าเดียวกัน
วิธีการที่จะค่า ถ้าการเปลี่ยนแปลง [ไม่ได้ยิน]
>> RICK Houlihan: โอ้ idempotent?
วิธีค่าที่จะเปลี่ยน?
ดีเพราะถ้าฉันไม่ได้ทำงาน มันไปตลอดทางจนถึงท้ายที่สุด
แล้วผมไม่ทราบว่าสิ่งที่เปลี่ยนแปลง ได้ทำในไมล์สุดท้าย
มันไม่ได้เป็นไปได้ ข้อมูลเช่นเดียวกับสิ่งที่ฉันเห็น
ผู้ชม: โอ้ดังนั้นคุณก็ ไม่ได้รับการป้อนข้อมูลทั้งหมด
RICK Houlihan: ขวา
คุณต้องไปจากจุดเริ่มต้น ถึงจุดสิ้นสุดแล้วมัน
จะเป็นสถานะที่สอดคล้องกัน
เย็น.
>> ผู้ชม: ดังนั้นคุณแสดงให้เราเห็น DynamoDB สามารถทำเอกสารหรือค่าคีย์
และเราใช้เวลามากบน ค่าคีย์ที่มีกัญชาและวิธีการที่
ที่จะพลิกไปรอบ ๆ
เมื่อคุณมองไปที่ตารางเหล่านั้นก็คือว่า หลังออกจากวิธีการที่เอกสารหรือไม่
>> RICK Houlihan: ฉันจะไม่ บอกว่าปล่อยให้มันอยู่เบื้องหลัง
>> ผู้ชม: พวกเขาถูกแยกออกจาก the--
>> RICK Houlihan: ด้วยเอกสาร วิธีการพิมพ์เอกสารใน DynamoDB
เป็นเพียงคิดว่าเป็นแอตทริบิวต์อื่น
มันเป็นแอตทริบิวต์ที่ประกอบด้วย โครงสร้างข้อมูลแบบลำดับชั้น
และจากนั้นในคำสั่งที่ คุณสามารถใช้คุณสมบัติ
ของวัตถุที่ใช้สัญกรณ์วัตถุ
ดังนั้นผมจึงสามารถกรองซ้อนกัน ทรัพย์สินของเอกสาร JSON
ผู้ชม: ดังนั้นทุกครั้งที่ผมใด ๆ วิธีการทำเอกสาร
จัดเรียงของฉันสามารถมาถึงที่ tabular--
ผู้ชม: แน่นอน
ผู้ชม: --indexes และ สิ่งที่คุณเพียงแค่พูดคุยเกี่ยวกับ
RICK Houlihan: ใช่ที่ ดัชนีและสิ่งที่
เมื่อคุณต้องการที่จะสร้างดัชนี คุณสมบัติของ JSON ที่
วิธีการที่เราจะต้องทำอย่างนั้นคือถ้า คุณใส่วัตถุ JSON หรือเอกสาร
เข้าไดนาโมคุณจะใช้กระแส
ลำธารจะอ่านอินพุต
คุณจะได้รับที่ JSON วัตถุและคุณจะบอกว่าตกลง
สถานที่ให้บริการสิ่งที่ฉันต้องการที่จะสร้างดัชนี?
>> คุณสามารถสร้างตารางอนุพันธ์
ตอนนี้ที่วิธีการทำงานในขณะนี้
เราจะไม่ยอมให้คุณดัชนี คุณสมบัติเหล่านั้นได้โดยตรง
>> ผู้ชม: Tabularizing เอกสารของคุณ
>> RICK Houlihan: ว่าแฟบ มัน tabularizing มันว่า
นั่นคือสิ่งที่คุณทำกับมัน
>> ผู้ชม: ขอบคุณ
>> RICK Houlihan: ครับ อย่างขอบคุณ
ผู้ชม: ดังนั้นจึงเป็นชนิดของ Mongo ตรงตาม Redis classifers
>> RICK Houlihan: ใช่ มันมากเช่นนั้น
นั่นเป็นคำอธิบายที่ดีสำหรับมัน
เย็น.