Kafka กับ Spark แตกต่างกันอย่างไร

Apache Kafka เป็นเครื่องมือการประมวลผลสตรีมและ Apache Spark เป็นเครื่องมือประมวลผลข้อมูลที่กระจาย สำหรับการวิเคราะห์ องค์กรจะประมวลผลข้อมูลด้วยสองวิธีหลัก ได้แก่ การประมวลผลเป็นชุดและการประมวลผลสตรีม สำหรับการประมวลเป็นชุด คุณจะประมวลผลข้อมูลปริมาณมากในเวิร์กโหลดเดียว สำหรับการประมวลผลสตรีม คุณจะประมวลผลหน่วยเล็กๆ อย่างต่อเนื่องในโฟลว์แบบเรียลไทม์ แต่เดิม Spark ออกแบบมาสำหรับการประมวลผลเป็นชุด และ Kafka ออกแบบมาสำหรับการประมวลผลสตรีม ต่อมา Spark เพิ่มโมดูล Spark Streaming เป็นส่วนเสริมสำหรับสถาปัตยกรรมแบบกระจายพื้นฐาน อย่างไรก็ตาม Kafka มีเวลาแฝงที่ต่ำกว่าและอัตราการโอนถ่ายข้อมูลที่สูงกว่าสำหรับกรณีการใช้งานข้อมูลการสตรีมโดยส่วนใหญ่

อ่านเกี่ยวกับ Kafka »

อ่านเพิ่มเติมเกี่ยวกับ Spark »

ความคล้ายคลึงกันระหว่าง Kafka และ Spark คืออะไร

ทั้ง Apache Kafka และ Apache Spark ได้รับการออกแบบโดย Apache Software Foundation เพื่อการประมวลผลข้อมูลในอัตราที่เร็วขึ้น องค์กรต้องการสถาปัตยกรรมข้อมูลสมัยใหม่ที่สามารถนำเข้า เก็บ และวิเคราะห์ข้อมูลตามเวลาจริงจากแหล่งที่มาของข้อมูลต่างๆ

Kafka และ Spark มีลักษณะที่ทับซ้อนกันในการจัดการการประมวลผลข้อมูลความเร็วสูง 

การประมวลผล Big Data

Kafka ให้บริการไปป์ไลน์ข้อมูลแบบกระจายในหลายเซิร์ฟเวอร์เพื่อนำเข้าและประมวลผลข้อมูลจำนวนมากแบบเรียลไทม์ รองรับกรณีการใช้งาน Big Data ซึ่งต้องการการส่งข้อมูลอย่างต่อเนื่องอย่างมีประสิทธิภาพระหว่างแหล่งข้อมูลต่างๆ

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

อ่านเกี่ยวกับข่าวกรองธุรกิจ »

ความหลากหลายของข้อมูล

ทั้ง Kafka และ Spark นำเข้าข้อมูลที่ไม่มีโครงสร้าง กึ่งโครงสร้าง และข้อมูลที่มีโครงสร้าง คุณสามารถสร้างไปป์ไลน์ข้อมูลจากแอปพลิเคชันขององค์กร ฐานข้อมูล หรือแหล่งข้อมูลการสตรีมอื่นๆ ด้วย Kafka หรือ Spark เครื่องมือประมวลผลข้อมูลทั้งสองรองรับข้อความธรรมดา, JSON, XML, SQL และรูปแบบข้อมูลอื่นๆ ที่ใช้กันทั่วไปในการวิเคราะห์

พวกเขายังเปลี่ยนข้อมูลก่อนที่จะให้เข้าไปในรูปแบบนี้ เช่น ย้ายคลังข้อมูลแต่ไม่ต้องการใช้บริการเพิ่มเติมหรือ API 

ความสามารถในการปรับขนาด

Kafka เป็นเครื่องมือ Data Stream ที่ปรับขนาดได้สูง และสามารถปรับขนาดได้ทั้งแนวตั้งและแนวนอน คุณสามารถเพิ่มทรัพยากรการประมวลผลเพิ่มเติมไปยังเซิร์ฟเวอร์ที่โฮสต์โบรกเกอร์ Kafka เฉพาะเพื่อรองรับการรับส่งข้อมูลที่เพิ่มขึ้น หรืออีกทางหนึ่ง คุณสามารถสร้างนายหน้า Kafka หลายตัวบนเซิร์ฟเวอร์ที่แตกต่างกันเพื่อให้โหลดบาลานซ์ดีขึ้น

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

เวิร์กโฟลว์: Kafka เทียบกับ Spark

Apache Kafka และ Apache Spark สร้างขึ้นด้วยสถาปัตยกรรมที่แตกต่างกัน Kafka รองรับ Data Stream ตามเวลาจริงด้วยการจัดเรียงตามหัวข้อ โบรกเกอร์ คลัสเตอร์ และซอฟต์แวร์ ZooKeeper ในขณะเดียวกัน Spark แบ่งเวิร์กโหลดการประมวลผลข้อมูลไปยัง Worker Node หลายโหนด และสิ่งนี้จะประสานงานโดยโหนดหลัก 

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

Kafka เชื่อมต่อผู้ผลิตข้อมูลและผู้บริโภคโดยใช้เครื่องมือประมวลผลแบบกระจายตามเวลาจริง ส่วนประกอบหลักของ Kafka คือ

  • นายหน้าที่อำนวยความสะดวกในการทำธุรกรรมระหว่างผู้บริโภคและผู้ผลิต
  • คลัสเตอร์ที่ประกอบด้วยหลายโบรกเกอร์ที่อยู่ในเซิร์ฟเวอร์ที่แตกต่างกัน

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

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

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

Spark Core เป็นส่วนประกอบหลักที่มีฟังก์ชันพื้นฐานของ Spark ฟังก์ชันนี้รวมถึงการประมวลผลข้อมูลแบบกระจาย การจัดการหน่วยความจำ การจัดตารางงานและการจัดส่ง และการโต้ตอบกับระบบเก็บข้อมูล 

Spark ใช้สถาปัตยกรรมหลักและรองแบบกระจายที่มีชั้นลำดับหลายชั้นที่รองรับการแปลงข้อมูลและเวิร์กโฟลว์การประมวลผลแบบแบตช์ โหนดหลักคือผู้ประสานงานกลางที่กำหนดเวลาและมอบหมายงานการประมวลผลข้อมูลให้กับ Worker Node 

เมื่อนักวิทยาศาสตร์ข้อมูลส่งคำขอประมวลผลข้อมูล ขั้นตอนต่อไปนี้จะเกิดขึ้น:

  1. โหนดหลักสร้างสำเนาข้อมูลที่ไม่เปลี่ยนรูปหลายชุด
  2. ใช้ตัวกำหนดตารางเวลากราฟเพื่อแบ่งคำขอออกเป็นชุดของงานการประมวลผล
  3. โดยจะส่งต่องานไปยัง Spark Core ซึ่งกำหนดเวลาและกำหนดให้กับ Worker Node เฉพาะ

เมื่อ Worker Node ทำงานเสร็จสิ้น โหนดเหล่านั้นจะส่งคืนผลลัพธ์ไปยังโหนดหลักผ่านตัวจัดการคลัสเตอร์ 

ความแตกต่างที่สำคัญ: การเรียนรู้แบบมีผู้ดูแลเทียบกับแบบไม่มีผู้ดูแล

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

เป้าหมาย

เป้าหมายหลักของการเรียนรู้แบบมีผู้ดูแลคือการทำนายผลลัพธ์ตามอินพุตที่ทราบ

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

วิธี

การเรียนรู้แบบมีผู้ดูแลมีเป้าหมายเพื่อลดข้อผิดพลาดระหว่างผลลัพธ์ที่คาดการณ์และฉลากจริง เป็นการสรุปความสัมพันธ์ที่เรียนรู้เพื่อให้คาดการณ์ได้อย่างแม่นยำเกี่ยวกับข้อมูลที่มองไม่เห็น

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

ความซับซ้อน

เทคนิคการเรียนรู้ทั้งแบบมีผู้ดูแลและไม่มีผู้ดูแลมีความแตกต่างกันตั้งแต่ฟังก์ชันการสร้างแบบจำลองทางสถิติที่ค่อนข้างพื้นฐานไปจนถึงอัลกอริทึมที่ซับซ้อนมาก ขึ้นอยู่กับปัญหาที่ตั้งไว้

แอปพลิเคชันการเรียนรู้แบบมีผู้ดูแลนั้นแพร่หลายและผู้ใช้ที่ไม่ใช่ด้านเทคนิคยังสามารถพัฒนาโซลูชันที่กำหนดเองตามแบบจำลองที่มีอยู่แล้ว

ในทางตรงกันข้าม แอปพลิเคชันการเรียนรู้แบบไม่มีผู้ดูแลอาจพัฒนาได้ยากกว่า เนื่องจากความเป็นไปได้ของรูปแบบและความสัมพันธ์ในข้อมูลนั้นมีมากมาย

ความแตกต่างที่สำคัญ: Kafka กับ Spark

ทั้ง Apache Kafka และ Apache Spark ช่วยให้องค์กรมีความสามารถในการประมวลผลข้อมูลที่รวดเร็ว อย่างไรก็ตาม การตั้งค่าสถาปัตยกรรมจะแตกต่างกัน ซึ่งส่งผลต่อวิธีดำเนินการในกรณีการใช้งานการประมวลผล Big Data

ETL

กระบวนการ Extract, Transform, and Load (ETL) เป็นกระบวนการรวมข้อมูลจากหลายแหล่งเข้าไว้ในพื้นที่เก็บข้อมูลส่วนกลางขนาดใหญ่ ต้องใช้ความสามารถในการแปลงข้อมูลเพื่อแปลงข้อมูลที่หลากหลายให้เป็นรูปแบบมาตรฐาน

Spark มาพร้อมกับหลายในตัวเปลี่ยนและความสามารถในการโหลด ผู้ใช้สามารถดึงข้อมูลจากคลัสเตอร์และแปลงและเก็บไว้ในฐานข้อมูลที่เหมาะสม 

ในทางกลับกัน Kafka ไม่รองรับ ETL เป็นค่าเริ่มต้น ผู้ใช้ต้องใช้ API เพื่อดำเนินการฟังก์ชัน ETL ใน Data Stream แทน ตัวอย่างเช่น

  • ด้วย Kafka Connect API นักพัฒนาสามารถเปิดใช้งานการดำเนินการแยก (E) และโหลด (L) ระหว่างสองระบบ
  • Kafka Streams API นำเสนอคุณสมบัติการแปลงข้อมูล (T) ที่นักพัฒนาสามารถใช้เพื่อจัดการข้อความเหตุการณ์เป็นรูปแบบอื่น

อ่านเกี่ยวกับ ETL »

เวลาแฝง

Spark ได้รับการพัฒนาเพื่อแทนที่ Apache Hadoop ซึ่งไม่สามารถรองรับการประมวลผลแบบเรียลไทม์และการวิเคราะห์ข้อมูลได้ Spark ให้การดำเนินการอ่าน/เขียนที่ใกล้เคียงกับเวลาจริง เนื่องจากเก็บข้อมูลไว้ใน RAM แทนฮาร์ดดิสก์ 

อย่างไรก็ตาม Kafka ได้เปรียบ Spark ด้วยความสามารถในการสตรีมเหตุการณ์ที่มีเวลาแฝงต่ำเป็นพิเศษ นักพัฒนาสามารถใช้ Kafka ในการสร้างโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ที่ตอบสนองต่อการเปลี่ยนแปลงข้อมูลแบบเรียลไทม์ ตัวอย่างเช่น The Orchard ผู้ให้บริการเพลงดิจิทัลใช้ Kafka เพื่อแบ่งปันข้อมูลแอปพลิเคชันแบบแยกกับพนักงานและลูกค้าในเวลาใกล้เคียงเรียลไทม์

อ่านวิธีที่ The Orchard ทำงานร่วมกับ AWS »

ภาษาการเขียนโปรแกรม

นักพัฒนาสามารถใช้ Spark เพื่อสร้างและปรับใช้แอปพลิเคชันในหลายภาษาบนแพลตฟอร์มการประมวลผลข้อมูล ซึ่งรวมถึง Java, Python, Scala และ R นอกจากนี้ Spark ยังมี API ที่เป็นมิตรกับผู้ใช้และเฟรมเวิร์กการประมวลผลข้อมูลที่นักพัฒนาสามารถใช้ในการประมวลผลกราฟและโมเดลแมชชีนเลิร์นนิง

ในทางกลับกัน Kafka ไม่ได้รองรับด้านภาษาสำหรับกรณีการใช้งานการแปลงข้อมูล ดังนั้น นักพัฒนาจึงไม่สามารถสร้างระบบแมชชีนเลิร์นนิงบนแพลตฟอร์มได้หากไม่มีไลบรารี่เพิ่มเติม 

ความพร้อมใช้งาน

ทั้ง Kafka และ Spark เป็นแพลตฟอร์มการประมวลผลข้อมูลที่มีความพร้อมสูงและความทนทานต่อความผิดพลาด

Spark จะรักษาสำเนาของเวิร์กโหลดไว้บนโหนดหลายโหนดอย่างต่อเนื่อง หากโหนดใดโหนดหนึ่งล้มเหลว ระบบสามารถคำนวณผลลัพธ์ใหม่จากโหนดที่ใช้งานอยู่ที่เหลืออยู่ 

ในขณะเดียวกัน Kafka จะจำลองพาร์ติชันข้อมูลไปยังเซิร์ฟเวอร์ต่างๆ อย่างต่อเนื่อง จะนำคำขอของผู้บริโภคไปยังการสำรองข้อมูลโดยอัตโนมัติหากพาร์ติชัน Kafka ออฟไลน์ 

แหล่งข้อมูลหลายแหล่ง

คาฟคาสตรีมข้อความจากแหล่งที่มาของข้อมูลหลายแห่งพร้อมกัน ตัวอย่างเช่น คุณสามารถส่งข้อมูลจากเว็บเซิร์ฟเวอร์ แอปพลิเคชัน ไมโครเซอร์วิส และระบบองค์กรอื่นๆ ไปยังหัวข้อ Kafka ที่เฉพาะเจาะจงได้แบบเรียลไทม์

ในทางกลับกัน Spark จะเชื่อมต่อกับแหล่งที่มาของข้อมูลเดียวในเวลาใดก็ได้ อย่างไรก็ตาม การใช้ไลบรารี Spark Structured Streaming ช่วยให้ Spark สามารถประมวลผล Data Stream จากหลายแหล่งได้

ความแตกต่างที่สำคัญอื่นๆ ระหว่าง Kafka เทียบกับ Spark Structured Streaming

Spark Streaming ช่วยให้ Apache Spark ใช้วิธีการประมวลผลแบบไมโครแบทช์สำหรับสตรีมขาเข้า ได้รับการปรับปรุงโดย Spark Structured Streaming ซึ่งใช้ DataFrame และ Dataset API เพื่อปรับปรุงประสิทธิภาพการประมวลผลสตรีม วิธีการนี้ช่วยให้ Spark สามารถประมวลผลการไหลของข้อมูลอย่างต่อเนื่องเช่น Apache Kafka แต่ความแตกต่างหลายอย่างแยกทั้งสองแพลตฟอร์มออกจากกัน 

โมเดลการประมวลผล

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

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

พื้นที่เก็บข้อมูล

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

ในขณะเดียวกัน Spark Structured Streaming จะเก็บและประมวลผล Data Stream ใน RAM แต่อาจใช้ดิสก์เป็นที่เก็บข้อมูลสำรองหากข้อมูลเกินความจุของ RAM Spark Structured Streaming ผสานรวมกับ Apache Hadoop Distributed File System (HDFS) ได้อย่างราบรื่น แต่ยังทำงานร่วมกับที่เก็บข้อมูลบนคลาวด์อื่นๆ รวมถึง Amazon Simple Storage Service (Amazon S3)

API

Kafka ช่วยให้นักพัฒนาเผยแพร่ สมัครับข้อมูล และตั้งค่า Data Stream ของ Kafka จากนั้นประมวลผลด้วย API ต่างๆ API เหล่านี้รองรับภาษาการเขียนโปรแกรมที่หลากหลาย รวมถึง Java, Python, Go, Swift และ .NET

ในขณะเดียวกัน API ของ Spark Structured Streaming มุ่งเน้นไปที่การแปลงข้อมูลในข้อมูลอินพุตสดที่นำเข้ามาจากแหล่งต่างๆ Spark Structured Streaming API ซึ่งแตกต่างจาก Kafka มีให้บริการในภาษาที่จำกัด นักพัฒนาสามารถสร้างแอปพลิเคชันโดยใช้ Spark Structured Streaming กับ Java Python และ Scala

เมื่อใดควรใช้: Kafka เทียบกับ Spark

Kafka และ Spark เป็นสองแพลตฟอร์มการประมวลผลข้อมูลที่ให้บริการตามวัตถุประสงค์ที่แตกต่างกัน

Kafka อนุญาตให้แอปไคลเอนต์หลายตัวเผยแพร่และสมัครรับข้อมูลตามเวลาจริงด้วยสถาปัตยกรรม Message Broker แบบกระจายที่ปรับขนาดได้ ในทางกลับกัน Spark อนุญาตให้แอปพลิเคชันประมวลผลข้อมูลจำนวนมากเป็นชุด

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

แม้จะมีกรณีการใช้งานที่แตกต่างกัน แต่ Kafka และ Spark ก็ไม่ได้เป็นเอกสิทธิ์ร่วมกัน คุณสามารถรวมสถาปัตยกรรมการประมวลผลข้อมูลทั้งสองเข้าด้วยกันเพื่อสร้างระบบการประมวลผลเป็นชุดตามเวลาจริงที่ทนทานต่อความผิดพลาด ในการตั้งค่านี้ Kafka จะนำเข้าข้อมูลอย่างต่อเนื่องจากหลายแหล่งก่อนที่จะส่งต่อไปยังผู้ประสานงานกลางของ Spark จากนั้น Spark จะกำหนดข้อมูลที่ต้องมีการประมวลผลเป็นชุดให้กับ Worker Node ที่เกี่ยวข้อง

สรุปความแตกต่างระหว่าง Kafka เทียบกับ Spark

 

Kafka

Spark

ETL

ต้องการ Kafka Connect API และ Kafka Streams API สำหรับฟังก์ชัน ETL

รองรับ ETL ตั้งแต่ต้น

เวลาแฝง

เวลาแฝงต่ำมาก ให้เวลาจริงที่แท้จริงสำหรับแต่ละเหตุการณ์ที่เข้ามา 

เวลาแฝงต่ำ ดำเนินการอ่าน/เขียนบน RAM

ภาษาการเขียนโปรแกรม

ต้องการไลบรารีเพิ่มเติมเพื่อใช้ฟังก์ชันการแปลงข้อมูล 

รองรับ Java, Python, Scala และ R สำหรับการแปลงข้อมูลและงานแมชชีนเลิร์นนิง 

ความพร้อมใช้งาน 

พาร์ทิชันข้อมูลสำรองที่เซิร์ฟเวอร์ที่แตกต่างกัน ส่งคำขอโดยตรงไปยังการสำรองข้อมูลเมื่อพาร์ติชันที่ใช้งานอยู่ล้มเหลว 

รักษาข้อมูลถาวรที่หลายโหนด คำนวณผลลัพธ์ใหม่เมื่อโหนดล้มเหลว 

แหล่งที่มาของข้อมูล

สามารถรองรับแหล่งที่มาของข้อมูลได้หลายแหล่งพร้อมกัน

เชื่อมต่อกับแหล่งที่มาของข้อมูลเดียว ต้องการ Spark Structured Streaming เพื่อสตรีมด้วยแหล่งที่มาของข้อมูลหลายแหล่ง

AWS สามารถช่วยตามข้อกำหนดของ Kafka และ Spark ได้อย่างไร

Amazon Web Services (AWS) รองรับโครงสร้างพื้นฐานข้อมูลที่มีการจัดการ ไม่ว่าคุณจะใช้ Apache Kafka หรือ Apache Spark

ใช้ Amazon Managed Streaming สำหรับ Apache Kafka (Amazon MSK) เพื่อปรับใช้ รัน และจัดการคลัสเตอร์ Kafka ของคุณได้อย่างง่ายดาย สามารถทำสิ่งต่อไปนี้ได้โดยอัตโนมัติ

  • จัดเตรียมทรัพยากรที่จำเป็นทั้งหมดสำหรับคลัสเตอร์ Kafka ทั้งหมด
  • ทำซ้ำและแจกจ่ายคลัสเตอร์ Kafka ข้าม Availability Zone ต่างๆ
  • เรียกใช้คลัสเตอร์ Kafka ของคุณใน Amazon Virtual Private Cloud (Amazon VPC) เพื่อให้มีการเชื่อมต่อส่วนตัวระหว่างโหนด

ใช้ Amazon EMR เพื่อรองรับ Big Data การวิเคราะห์เชิงโต้ตอบ และแอปพลิเคชันแมชชีนเลิร์นนิงของ Spark ด้วย Amazon EMR คุณสามารถทำสิ่งต่อไปนี้

  • ประหยัดค่าใช้จ่ายมากกว่าครึ่งหนึ่งของโซลูชันการประมวลผลข้อมูลภายในองค์กร
  • จัดเตรียมทรัพยากรการประมวลผลโดยอัตโนมัติสำหรับแอปพลิเคชัน Big Data ของคุณเพื่อตอบสนองความต้องการที่เปลี่ยนแปลง
  • ผสานรวม Spark เข้ากับพื้นที่เก็บบนคลาวด์ที่ปรับขนาดได้หลากหลาย รวมถึง Amazon S3 Amazon DynamoDB และ Amazon Redshift

เริ่มต้นใช้งาน Spark และ Kafka บน AWS โดยสร้างบัญชีวันนี้

ขั้นตอนถัดไปกับ AWS

เริ่มต้นสร้างด้วย Kafka

เรียนรู้วิธีเริ่มต้นใช้งาน Kafka บน AWS

เรียนรู้เพิ่มเติม 
เริ่มต้นสร้างด้วย Spark

เรียนรู้วิธีเริ่มต้นใช้งาน Spark บน AWS

เรียนรู้เพิ่มเติม