เร่งความเร็ว I/O: ไม้ปาร์เก้และขนนก

Nov 27 2022
ปัญหาบางอย่างของเราประกอบด้วยข้อมูลที่เราอ่านจากที่จัดเก็บในตัวเครื่อง การดำเนินการอ่าน-ประมวลผล-เขียนสามารถทำได้อย่างสะดวกสบายในชุดข้อมูลที่มีขนาดค่อนข้างเล็ก แต่การดำเนินการเหล่านั้นสำหรับไฟล์.

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

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

  • ไม้ปาร์เก้
  • ขนนก
  • สามารถเข้าถึงได้โดยค่าเริ่มต้นด้วย Python-Pandas แต่คุณอาจต้องติดตั้งpyarrowและส่วนขยายบางประเภทเพิ่มเติม ทั้งนี้ขึ้นอยู่กับประเภทข้อมูลของคุณ
  • สนับสนุนการจัดการ I/O ตามคอลัมน์ ด้วยวิธีนี้ คุณสามารถป้องกันไม่ให้ใช้ RAM พิเศษชั่วคราวในขณะที่อ่านข้อมูลทั้งหมด แล้วทิ้งคอลัมน์ที่ไม่จำเป็น
  • การจัดเก็บข้อมูลในรูปแบบไบนารีในประเภทของตัวเองแทนที่จะเป็นรูปแบบดิบ คุณสามารถประหยัดพื้นที่จัดเก็บได้มากถึง 50% และสามารถเพิ่มความเร่งได้ถึง x100 ในการดำเนินการอ่าน-เขียน

ไม้ปาร์เก้

ขนนก

บทสรุป

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

ฉันใช้วิธีเหล่านี้ในการแข่งขัน Kaggle และได้รับความเร็วที่ค่อนข้างดี คุณสามารถตรวจสอบตัวอย่างโค้ดของฉันได้ที่นี่ !