Polars ไลบรารีประมวลผลข้อมูลที่เติบโตอย่างรวดเร็ว ได้เปิดตัวแพลตฟอร์มคลาวด์อย่างเป็นทางการพร้อมกับ distributed computing engine ที่อยู่ในช่วง open beta ขณะนี้ นี่ถือเป็นก้าวสำคัญในภารกิจของบริษัทที่จะเชื่อมโยงสิ่งที่พวกเขาเรียกว่า DataFrame scale gap ซึ่งเป็นช่องว่างทางประวัติศาสตร์ระหว่างความง่ายในการใช้งานแบบ local ของ pandas กับความสามารถในการขยายขนาดแบบ remote ของ PySpark
ชุมชนตั้งคำถามเกี่ยวกับการลงทุนต่อเนื่องใน Spark
การเปิดตัวครั้งนี้ได้จุดประกายการอภิปรายที่น่าสนใจในชุมชนนักพัฒนาเกี่ยวกับอนาคตของการประมวลผล big data นักพัฒนาบางคนตั้งคำถามว่าทำไมผู้เล่นรายใหญ่อย่าง Databricks จึงยังคงลงทุนอย่างหนักใน Apache Spark ในขณะที่ทางเลือกใหม่อย่าง Polars และ DuckDB อาจเพียงพอสำหรับหลายกรณีการใช้งาน โดยเฉพาะสำหรับ startup และบริษัทขนาดเล็ก
จังหวะเวลานี้ดูเหมาะสมเป็นพิเศษ เนื่องจากบริษัทอย่าง Palantir ได้สนับสนุนโมเดล bring your own compute แล้ว ซึ่งบ่งบอกถึงการเปลี่ยนแปลงไปสู่แนวทางโครงสร้างพื้นฐานที่ยืดหยุ่นและควบคุมโดยผู้ใช้มากขึ้น
การจัดการโครงสร้างพื้นฐานที่เรียบง่ายดึงดูดความสนใจ
หนึ่งในแง่มุมที่ถูกพูดถึงมากที่สุดของ Polars Cloud คือแนวทางในการทำ infrastructure abstraction แม้ว่าตัวอย่างเริ่มต้นจะแสดงให้เห็นว่าผู้ใช้ระบุประเภท instance ของ AWS โดยตรง แต่แพลตฟอร์มนี้รองรับการระบุทรัพยากรที่เข้าใจง่ายกว่าโดยใช้ความต้องการ CPU และหน่วยความจำแทนชื่อ instance เฉพาะของคลาวด์
ทีมพัฒนาได้ระบุว่าพวกเขากำลังทำงานเพื่อไปสู่โซลูชันที่อัตโนมัติมากยิ่งขึ้น รวมถึงการกำหนดค่าคลัสเตอร์ขั้นต่ำและการปรับขนาดอัตโนมัติตามความต้องการของ query นี่แก้ไขปัญหาที่พบบ่อยที่นักวิทยาศาสตร์ข้อมูลและนักวิเคราะห์ต้องเข้าใจรายละเอียดโครงสร้างพื้ฐานคลาวด์เพียงเพื่อรันการวิเคราะห์ของพวกเขา
วิธีการระบุทรัพยากร:
วิธีที่ 1: ประเภท instance ของ AWS
pc.ComputeContext(
instance_type="m6i.large",
cluster_size=8,
storage=64
)
วิธีที่ 2: ความต้องการทรัพยากร
pc.ComputeContext(
cpus=4,
memory=16
)
กลยุทธ์การขยายขนาดที่เป็นเอกลักษณ์ทำให้แตกต่าง
สิ่งที่ทำให้ Polars Cloud น่าสนใจเป็นพิเศษคือแนวทางการขยายขนาดแบบหลายทิศทาง ไม่เหมือนกับระบบกระจายแบบดั้งเดิมที่เน้นการขยายขนาดแนวนอนเป็นหลัก (เพิ่มเครื่องมากขึ้น) Polars เสนอกลยุทธ์การขยายขนาดแนวตั้ง แนวนอน และแนวทแยง หมายความว่าระบบสามารถเลือกระหว่างการใช้ worker ขนาดเล็กจำนวนมากหรือเครื่องที่มีประสิทธิภาพสูงจำนวนน้อยขึ้นอยู่กับลักษณะของ workload
ความยืดหยุ่นนี้อาจส่งผลกระทบอย่างมีนัยสำคัญต่อการเพิ่มประสิทธิภาพต้นทุน เนื่องจากการดำเนินการบางอย่างได้ประโยชน์จาก single node ที่มีประสิทธิภาพสูงมากกว่าการประมวลผลแบบกระจาย ซึ่งมาพร้อมกับ overhead ของการ shuffling
ตัวเลือกการปรับขนาดของ Polars Cloud :
- การปรับขนาดแนวนอน: แนวทางแบบดั้งเดิมที่ใช้ worker หลายตัวที่มีขนาดเล็กกว่า
- การปรับขนาดแนวตั้ง: เครื่องเดียวที่มีประสิทธิภาพสูงสำหรับงานที่ต้องใช้การประมวลผลเข้มข้น
- การปรับขนาดแนวทแยง: แนวทางแบบผสมผสานที่ใช้ worker ที่มีขนาดแตกต่างกัน
- การปรับขนาดอัตโนมัติ: ฟีเจอร์ที่วางแผนไว้สำหรับการปรับทรัพยากรโดยอัตโนมัติ
การเรียกเก็บเงินและการวางตำแหน่งในตลาด
แพลตฟอร์มดำเนินการผ่านการเรียกเก็บเงินของ AWS โดยมี markup ของ Polars ปรากฏโดยตรงในบิล AWS ของผู้ใช้ แนวทางนี้วางตำแหน่ง Polars Cloud เป็น compute optimization layer มากกว่าการทดแทน data warehouse อย่าง Snowflake การเปรียบเทียบเบื้องต้นแสดงให้เห็นว่ากำลังกำหนดเป้าหมายตลาดเดียวกันกับ AWS Glue และบริการประมวลผลข้อมูลที่คล้ายกัน โดยอ้างว่าเร็วกว่าและคุ้มค่ากว่า
การมุ่งเน้นยังคงอยู่ที่การดำเนินการ DataFrame อย่างแน่วแน่มากกว่า SQL โดยทีมระบุว่าการรองรับ SQL อาจมาในภายหลัง แต่ไม่ใช่ความสำคัญในปัจจุบันเนื่องจากตลาดการประมวลผล SQL ที่อิ่มตัว
ไทม์ไลน์ฟีเจอร์ที่วางแผนไว้:
- การสนับสนุน On-premise: จะมาในอีกไม่กี่เดือนข้างหน้า (กำลังเริ่มต้นกับลูกค้ารายแรก)
- แดชบอร์ดคลัสเตอร์แบบสด: อยู่ระหว่างการพัฒนาพร้อมการติดตามคลัสเตอร์แบบเรียลไทม์
- การจัดการงาน: ความสามารถในการจัดตารางเวลาขั้นพื้นฐาน (ไม่ได้มาแทนที่ Airflow/Prefect )
- การสนับสนุน Catalog: เน้นการรวมรูปแบบตาราง Iceberg
- หลายภูมิภาค: การขยายเกินกว่าภูมิภาค US East ปัจจุบัน
มองไปข้างหน้า
ด้วยฟีเจอร์อย่างการรองรับ on-premise, live cluster dashboard และการรวม catalog ที่วางแผนไว้ในอนาคตอันใกล้ Polars Cloud ดูเหมือนจะวางตำแหน่งเพื่อท้าทายผู้เล่นที่มีชื่อเสียงในพื้นที่การประมวลผลข้อมูลแบบกระจาย การรวมกันของ API ที่คุ้นเคย การขยายขนาดที่ยืดหยุ่น และการเพิ่มประสิทธิภาพต้นทุนอาจทำให้เป็นทางเลือกที่น่าสนใจสำหรับองค์กรที่ต้องการปรับปรุงโครงสร้างพื้นฐานการประมวลผลข้อมูลให้ทันสมัยโดยไม่มีความซับซ้อนที่เกี่ยวข้องกับ distributed computing แบบดั้งเดิม