Presto หรือ PrestoDB คืออะไร

Presto (หรือ PrestoDB) เป็นเอนจิ้นคำถาม SQL แบบกระจายที่ใช้โอเพนซอร์ส ได้รับการออกแบบตั้งแต่ล่างขึ้นบนเพื่อให้ทำการตั้งคำถามเชิงวิเคราะห์ข้อมูลทุกขนาดอย่างรวดเร็ว Presto รองรับแหล่งที่มาที่ไม่ใช่เชิงสัมพันธ์ เช่น Hadoop Distributed File System (HDFS), Amazon S3, Cassandra, MongoDB และ HBase และแหล่งที่มาของข้อมูลเชิงสัมพันธ์ เช่น MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server และ Teradata

Presto สามารถสืบค้นข้อมูลที่จัดเก็บไว้ได้โดยไม่จำเป็นต้องย้ายข้อมูลไปยังระบบวิเคราะห์แยกต่างหาก การดำเนินการสืบค้นจะทำงานแบบขนานผ่านสถาปัตยกรรมที่ใช้หน่วยความจำบริสุทธิ์ โดยผลลัพธ์ส่วนใหญ่จะส่งกลับในไม่กี่วินาที คุณจะพบว่า Presto ถูกใช้ในบริษัทที่มีชื่อเสียงหลายแห่ง เช่น Facebook, Airbnb, Netflix, Atlassian และ Nasdaq

Presto มีประวัติความเป็นมาอย่างไร

Presto เริ่มต้นในฐานะโครงการที่ Facebook เพื่อเรียกใช้การสืบค้นเชิงวิเคราะห์แบบโต้ตอบกับคลังข้อมูล 300 PB ซึ่งสร้างขึ้นด้วยคลัสเตอร์ที่ใช้ Hadoop/HDFS ขนาดใหญ่ ก่อนที่จะสร้าง Presto Facebook ได้ใช้ Apache Hive ซึ่งสร้างและเปิดตัวในปี 2008 เพื่อนำความคุ้นเคยของไวยากรณ์ SQL มาสู่ระบบนิเวศ Hadoop Hive ส่งผลกระทบที่สำคัญต่อระบบนิเวศ Hadoop เพื่อลดความซับซ้อนของงาน Java MapReduce ให้เป็นการสืบค้นที่คล้ายคลึงกับ SQL ในขณะที่สามารถดำเนินงานที่มีขนาดใหญ่ได้ แต่ไม่ได้รับการปรับให้เหมาะสมสำหรับประสิทธิภาพที่รวดเร็วซึ่งจำเป็นในการสืบค้นแบบโต้ตอบ

ในปี 2012 กลุ่ม Facebook Data Infrastructure ได้สร้าง Presto ซึ่งเป็นระบบการสืบค้นแบบโต้ตอบที่สามารถทำงานได้อย่างรวดเร็วในขนาดเพตะไบต์ ซึ่งเปิดตัวให้ทั้งบริษัทใช้งานในฤดูใบไม้ผลิปี 2013 ในเดือนพฤศจิกายน 2013 Facebook โอเพนซอร์ส Presto ภายใต้ใบอนุญาตซอฟต์แวร์ Apache และปล่อยทุกคนดาวน์โหลดได้บน Github ปัจจุบัน Presto ได้กลายเป็นตัวเลือกยอดนิยมสำหรับการสืบค้นแบบโต้ตอบบน Hadoop และได้รับการสนับสนุนอย่างมากจาก Facebook และองค์กรอื่นๆ การใช้งาน Presto ของ Facebook ถูกใช้โดยพนักงานกว่าพันคน ซึ่งเรียกใช้การสืบค้นกว่า 30,000 รายการ ประมวลผลข้อมูลหนึ่งเพตะไบต์ต่อวัน

Presto ทำงานอย่างไร

Presto เป็นระบบกระจายที่ทำงานบน Hadoop และใช้สถาปัตยกรรมที่คล้ายคลึงกับระบบการจัดการฐานข้อมูลการประมวลผลแบบขนานขนาดใหญ่ (MPP) แบบคลาสสิก โดยมีหนึ่ง Coordinator Node ซึ่งทำงานในซิงค์ที่มีหลาย Worker Node ผู้ใช้ส่งการสืบค้น SQL ไปยัง Coordinator ซึ่งใช้เครื่องมือสืบค้นและดำเนินการแบบกำหนดเองเพื่อแยกวิเคราะห์ วางแผน และกำหนดเวลาแผนการสืบค้นแบบกระจายทั่ว Worker Node ซึ่งได้รับการออกแบบมาเพื่อรองรับความหมายของ ANSI SQL มาตรฐาน รวมถึงการสืบค้นที่ซับซ้อน การรวบรวม การรวม การรวมด้านนอกซ้าย/ขวา การสืบค้นย่อย ฟังก์ชันระยะเวลา การนับแบบไม่นับซ้ำ และเปอร์เซ็นไทล์โดยประมาณ

หลังจากรวบรวมการสืบค้น Presto จะประมวลผลคำขอเป็นหลายขั้นตอนทั่ว Worker Node การประมวลผลทั้งหมดจะอยู่ในหน่วยความจำ และไปป์ไลน์ทั่วเครือข่ายระหว่างขั้นตอนเพื่อหลีกเลี่ยงค่าใช้จ่าย I/O ที่ไม่จำเป็น การเพิ่ม Worker Node มากขึ้นจะช่วยให้มีการทำงานแนวขนานสูงขึ้นและประมวลผลเร็วขึ้น

หากต้องการให้ Presto ขยายไปยังแหล่งที่มาของข้อมูลใดๆ ให้ออกแบบโดยมีพื้นที่เก็บข้อมูลที่เป็นนามธรรมเพื่อให้ง่ายต่อการสร้างตัวเชื่อมต่อแบบเสียบได้ ด้วยเหตุนี้ Presto จึงมีหลายตัวเชื่อมต่อ ซึ่งประกอบด้วยแหล่งที่มาที่ไม่ใช่เชิงสัมพันธ์ เช่น Hadoop Distributed File System (HDFS), Amazon S3, Cassandra, MongoDB และ HBase และแหล่งที่มาเชิงสัมพันธ์ เช่น MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server และ Teradata สืบค้นข้อมูลที่จัดเก็บไว้ได้โดยไม่จำเป็นต้องย้ายข้อมูลไปยังระบบวิเคราะห์แยกต่างหาก  

Presto และ Hadoop แตกต่างกันอย่างไร

Presto เป็นเครื่องมือสืบค้น SQL แบบกระจายและโอเพนซอร์สที่ออกแบบมาสำหรับการสืบค้นแบบโต้ตอบที่รวดเร็วเกี่ยวกับข้อมูลใน HDFS และอื่นๆ ซึ่งต่างกับ Hadoop/HDFS ที่ไม่มีระบบจัดเก็บข้อมูลของตัวเอง ดังนั้น Presto จึงให้บริการ Hadoop ฟรีโดยมีองค์กรต่างๆ ที่ใช้ทั้งสองอย่างเพื่อแก้ไขปัญหาความท้าทายทางธุรกิจที่กว้างกว่า Presto สามารถติดตั้งพร้อมกับการใช้งานใดๆ ของ Hadoop และรวมอยู่ในการกระจาย Hadoop ของ Amazon EMR

ใครบ้างที่ใช้ Presto

Presto ถูกใช้ในการผลิตขนาดใหญ่ในองค์กรที่มีชื่อเสียงหลายแห่ง คุณจะพบว่า Presto ถูกใช้ใน Facebook, Airbnb, Netflix, Atlassian, Nasdaq และอื่นๆ อีกมากมาย การใช้งาน Presto ของ Facebook ถูกใช้โดยพนักงานกว่าพันคน ซึ่งเรียกใช้การสืบค้นกว่า 30,000 รายการ ประมวลผลข้อมูลหนึ่งเพตะไบต์ต่อวัน โดยเฉลี่ย Netflix เรียกใช้การสืบค้นประมาณ 3,500 รายการต่อวันในคลัสเตอร์ Presto Airbnb สร้างและโอเพนซอร์ส Airpal เป็นเครื่องมือดำเนินการสืบค้นบนเว็บที่ควบคุม Presto ชุมชน Presto ที่กว้างขึ้นสามารถพบได้ในฟอรัมนี้และในหน้า Presto บน Facebook

คุณจะนำ Presto ไปใช้จริงในระบบคลาวด์ได้อย่างไร

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

AWS สร้างการใช้งาน Presto ของคุณในระบบคลาวด์ได้อย่างไร

Amazon EMR และ Amazon Athena เป็นสถานที่ที่ดีที่สุดสำหรับการนำ Presto ไปใช้จริงในระบบคลาวด์ เนื่องจากการผสานรวมและการทดสอบความเข้มงวดของ Presto มอบขนาด ความเรียบง่าย และความคุ้มค่าของ AWS ให้กับคุณ เมื่อใช้ Amazon EMR จะช่วยให้คุณเปิดใช้คลัสเตอร์ Presto ได้ในไม่กี่นาที โดยไม่จำเป็นต้องทำการจัดสรรโหนด การตั้งค่าคลัสเตอร์ การกำหนดค่า Presto หรือการปรับแต่งคลัสเตอร์ EMR ช่วยให้คุณสามารถจัดเตรียมอินสแตนซ์คำนวณจำนวนหนึ่งร้อยหรือหลายพันอินสแตนซ์ในเวลาไม่กี่นาที Amazon Athena ให้คุณนำ Presto ไปใช้จริงโดยใช้แพลตฟอร์ม AWS Serverless ซึ่งไม่ต้องใช้เซิร์ฟเวอร์ เครื่องเสมือน หรือคลัสเตอร์ในการตั้งค่า จัดการ หรือปรับแต่ง เพียงแค่ชี้ไปที่ข้อมูลของคุณที่ Amazon S3 แล้วกำหนดสคีมา และเริ่มสืบค้นโดยใช้เครื่องมือแก้ไขการสืบค้นในตัว หรือใช้เครื่องมือธุรกิจอัจฉริยะ (BI) ที่มีอยู่ Athena จะดำเนินการสืบค้นและปรับขนาดทรัพยากรแบบไดนามิกของคุณไปพร้อมๆ กันโดยอัตโนมัติ เพื่อเรียกใช้การสืบค้นได้อย่างรวดเร็ว คุณจะชำระค่าบริการเฉพาะการสืบค้นที่คุณเรียกใช้เท่านั้น

ขั้นตอนต่อไปบน AWS

ดูแหล่งข้อมูลเกี่ยวกับผลิตภัณฑ์เพิ่มเติม
ดูข้อเสนอฟรีสำหรับบริการวิเคราะห์ในระบบคลาวด์ 
ลงชื่อสมัครใช้บัญชีฟรี

รับสิทธิ์การเข้าถึง AWS Free Tier ได้ทันที

ลงชื่อสมัครใช้งาน 
เริ่มต้นการสร้างในคอนโซล

เริ่มต้นสร้างในคอนโซลการจัดการของ AWS

ลงชื่อเข้าใช้