ตัวแปลงตารางฐานข้อมูล CSV เป็น SQLite Database
การแปลงไฟล์ข้อความแบบแบนให้เป็นฐานข้อมูลเชิงสัมพันธ์ที่มีโครงสร้าง ช่วยให้คุณสามารถเรียกค้นข้อมูลได้อย่างรวดเร็วและจัดการความสัมพันธ์ของข้อมูลที่ซับซ้อนได้
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
| ข้อกำหนด | CSV | SQLITE |
|---|---|---|
| ประเภท MIME | text/csv | application/vnd.sqlite3 |
| ประเภท | tabular data | embedded relational database |
| การบีบอัด | none | B-Tree page allocation |
| ข้อกำหนดมาตรฐาน | IETF RFC 4180 | SQLite Database File Format 3 |
| ส่วนหัว Magic Bytes | RFC 4180 delimiter stream | 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 (SQLite format 3\0) |
ภาพรวมรูปแบบและการใช้งาน
ไฟล์ค่าที่คั่นด้วยจุลภาค (Comma-Separated Values) ทำงานได้ดีสำหรับการส่งออกอย่างง่ายและรายการขนาดเล็ก แต่จะประสบปัญหาเมื่อต้องจัดการกับแถวจำนวนนับล้านหรือตารางที่เชื่อมโยงกันหลายตาราง เมื่อชุดข้อมูลเติบโตขึ้น ข้อความแบบแบนต้องอาศัยการอ่านไฟล์ทั้งหมดจากดิสก์เพียงเพื่อหาบันทึกเดียว นักพัฒนาซอฟต์แวร์และนักวิเคราะห์ข้อมูลมักจะต้องย้ายบันทึกแบบตารางไปยังรูปแบบเชิงสัมพันธ์เพื่อเร่งความเร็วในการค้นหาและบังคับใช้ชนิดข้อมูล การย้ายข้อมูลเข้าไปในฐานข้อมูลเชิงสัมพันธ์แบบฝังตัว จะช่วยเปลี่ยนข้อความคงที่ให้กลายเป็นที่จัดเก็บข้อมูลแบบเคลื่อนไหว แอปพลิเคชันทั่วทั้งแพลตฟอร์มเดสก์ท็อปและมือถืออ่านรูปแบบนี้ได้โดยกำเนิดโดยไม่ต้องมีกระบวนการเซิร์ฟเวอร์แยกต่างหาก การแปลงนี้ช่วยให้สามารถจัดทำดัชนีได้อย่างรวดเร็ว การค้นหาแบบกรอง และการอัปเดตที่ปลอดภัยโดยไม่ต้องเขียนไฟล์ใหม่ทั้งหมดทุกครั้งที่แถวเดียวเปลี่ยนแปลง
ข้อมูลทางเทคนิคและรายละเอียดตัวแปลงสัญญาณ (Codec)
การส่งออกข้อความใช้ประเภท MIME เป็น text/csv โดยจัดเก็บข้อมูลเป็นตัวอักษร ASCII หรือ UTF-8 ธรรมดาที่คั่นด้วยจุลภาคและขึ้นบรรทัดใหม่โดยไม่มี magic bytes หรือส่วนหัวของไฟล์ SQLite ใช้ประเภท MIME เป็น application/vnd.sqlite3 และเริ่มต้นด้วยสตริงส่วนหัววิอาคม 16 ไบต์ที่แน่นอน "SQLite format 3\000" ภายในคอนเทนเนอร์ ข้อมูลจะถูกจัดระเบียบโดยใช้การจัดสรรหน้า B-Tree ซึ่งแบ่งไฟล์ออกเป็นหน้าขนาดคงที่ที่จัดกลุ่มแถวตารางและคีย์ดัชนีเพื่อให้เรียกค้นได้อย่างมีประสิทธิภาพ การแปลงนี้ไม่มีการสูญเสียข้อมูลอย่างเคร่งครัดเนื่องจากทุกค่าข้อความ จำนวนเต็ม และเลขทศนิยมจะแมปโดยตรงไปยังคอลัมน์ฐานข้อมูลที่กำหนดไว้
ความเข้ากันได้ของระบบปฏิบัติการและเบราว์เซอร์
ไฟล์ SQLite เปิดได้โดยกำเนิดบน Windows, macOS, Linux, Android และ iOS ผ่านไลบรารีระบบในตัวและเครื่องมือบรรทัดคำสั่ง เว็บเบราว์เซอร์สมัยใหม่ยังสามารถอ่านและคิวรีฐานข้อมูลเหล่านี้ในเครื่องโดยใช้บิลด์ WebAssembly ของเอ็นจิ้นได้อีกด้วย ไฟล์ข้อความ CSV มีความเข้ากันได้สากลกับโปรแกรมแก้ไขข้อความและแอปพลิเคชันสเปรดชีต แต่ขาดความสามารถในการประมวลผลคิวรีในตัวบนทุกแพลตฟอร์ม
💡 ข้อมูลที่เป็นประโยชน์
ควรกำหนดชนิดข้อมูลที่ชัดเจน เช่น INTEGER และ REAL ระหว่างกระบวนการแปลง แทนที่จะเก็บทุกคอลัมน์เป็น TEXT เพื่อให้ไฟล์ฐานข้อมูลมีขนาดเล็กลงและทำให้การคิวรีทำงานเร็วขึ้น
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
ไฟล์ข้อความ CSV ขนาด 50 MB ใช้เวลาดาวน์โหลดประมาณ 10 วินาทีผ่านการเชื่อมต่อ 4G 標準 2 วินาทีบน 5G และน้อยกว่าหนึ่งวินาทีบน Fiber เมื่อแปลงเป็นฐานข้อมูลที่มีการจัดทำดัชนีแล้ว ขนาดไฟล์ที่ได้มักจะลดลงเล็กน้อยเนื่องจากการแพ็คข้อมูลแบบไบต์ และเวลาในการดำเนินการคิวรีจะลดลงจากระดับวินาทีเหลือเพียงระดับมิลลิวินาที
คำถามที่พบบ่อย
วิธีการแปลงตารางฐานข้อมูล CSV เป็น SQLite Database โดยไม่สูญเสียคุณภาพทำอย่างไร?
การแปลงนี้ไม่มีการสูญเสียข้อมูลร้อยละ 100 ทุกแถว ตัวเลข และสตริงจากไฟล์ข้อความจะย้ายไปสู่คอลัมน์ตารางฐานข้อมูลโดยตรงโดยไม่มีการเปลี่ยนแปลงความแม่นยำของตัวเลขหรืออักขระข้อความใดๆ
ความแตกต่างระหว่างตารางฐานข้อมูล CSV และ SQLite Database คืออะไร?
ไฟล์ CSV คือเอกสารข้อความแบบแบนที่ไม่มีการจัดทำดัชนี ซึ่งทุกแถวจะต้องถูกสแกนตั้งแต่ต้นจนจบ ในขณะที่ฐานข้อมูล SQLite คือไฟล์ไบต์ที่มีโครงสร้างในตัวเอง ซึ่งใช้หน้า B-Tree และดัชนีเพื่อดึงข้อมูลบันทึกเฉพาะเจาะจงได้ทันที