อ่าน 6 นาที
ค่าที่คั่นด้วยเครื่องหมายจุลภาค
ค่าที่คั่นด้วยเครื่องหมายจุลภาค ( CSV ) เป็น รูปแบบ ข้อมูล ข้อความธรรมดา สำหรับจัดเก็บ ข้อมูลแบบตาราง โดยที่ ฟิลด์ (ค่า) ของ ระเบียน จะถูกคั่นด้วย เครื่องหมายจุลภาค...
ค่าที่คั่นด้วยเครื่องหมายจุลภาค
| ค่าที่คั่นด้วยเครื่องหมายจุลภาค | |
|---|---|
| นามสกุลไฟล์ | .csv |
| สื่อประเภทอินเทอร์เน็ต | text/csv[ 1 ] |
| ตัวระบุประเภทมาตรฐาน (UTI) | public.comma-separated-values-text [ 2 ] |
| การยืนยันการติดเชื้อทางเดินปัสสาวะ | public.delimited-values-text [ 2 ] |
| ประเภทของรูปแบบ | สตรีมข้อมูลอนุกรมแบบหลายแพลตฟอร์ม |
| ภาชนะสำหรับ | ข้อมูล ในฐานข้อมูลจัดเรียงในรูปแบบรายการที่คั่นด้วยฟิลด์ |
| มาตรฐาน | อาร์เอฟซี 4180 |
ค่าที่คั่นด้วยเครื่องหมายจุลภาค ( CSV ) เป็นรูปแบบข้อมูลข้อความธรรมดา สำหรับจัดเก็บข้อมูลแบบตารางโดยที่ฟิลด์ (ค่า) ของระเบียนจะถูกคั่นด้วยเครื่องหมายจุลภาคและแต่ละระเบียนจะเป็นบรรทัด (เช่น คั่นด้วยขึ้น บรรทัดใหม่ ) CSV มักใช้ในซอฟต์แวร์ที่โดยทั่วไปจัดการกับข้อมูลแบบตาราง เช่นฐานข้อมูลหรือสเปรดชีต[ 3 ]ข้อดีที่กล่าวถึงสำหรับการใช้ CSV ได้แก่ ความเรียบง่ายในการใช้งานและความสามารถในการอ่านของมนุษย์[ 4 ] CSV เป็นรูปแบบหนึ่งของค่าที่คั่นด้วยตัวคั่นไฟล์CSVคือไฟล์ที่มีข้อมูลที่จัดรูปแบบตาม CSV
CSV ไม่ได้จำกัดเฉพาะการเข้ารหัสอักขระ[ 1 ]แต่ควรใช้และมักใช้กับUTF-8โดยเฉพาะอย่างยิ่งเนื่องจากไม่มีวิธีระบุการเข้ารหัสอักขระ
ประวัติศาสตร์
รูปแบบ CSV มีมาก่อนคอมพิวเตอร์ส่วนบุคคลมากกว่าหนึ่งทศวรรษ คอมไพเลอร์ IBM Fortran (ระดับ H ขยาย) ภายใต้OS/360รองรับการป้อน/ส่งออกข้อมูลแบบรายการ ("รูปแบบอิสระ") โดยมีเครื่องหมายจุลภาคคั่นระหว่างค่าต่างๆ ในปี 1972 [ 5 ]การป้อน/ส่งออกข้อมูลแบบรายการถูกกำหนดไว้ในFORTRAN 77ซึ่งได้รับการอนุมัติในปี 1978 การป้อนข้อมูลแบบรายการใช้เครื่องหมายจุลภาคหรือช่องว่างเป็นตัวคั่น ดังนั้นสตริงอักขระที่ไม่มีเครื่องหมายคำพูดจึงไม่สามารถมีเครื่องหมายจุลภาคหรือช่องว่างได้[ 6 ]
คำว่า "ค่าที่คั่นด้วยเครื่องหมายจุลภาค" และคำย่อ "CSV" ถูกนำมาใช้ตั้งแต่ปี 1983 [ 7 ]คู่มือสำหรับ คอมพิวเตอร์ Osborne Executive ซึ่งรวม สเปรดชีต SuperCalc ไว้ด้วย ได้บันทึกข้อกำหนดการอ้างอิง CSV ที่อนุญาตให้สตริงมีเครื่องหมายจุลภาคอยู่ภายใน[ 8 ]
รายการค่าที่คั่นด้วยเครื่องหมายจุลภาคพิมพ์ได้ง่ายกว่า (เช่น ลงในบัตรเจาะรู ) กว่าข้อมูลที่จัดเรียงตามคอลัมน์คงที่ และมีโอกาสน้อยที่จะให้ผลลัพธ์ที่ไม่ถูกต้องหากค่าถูกเจาะผิดคอลัมน์จากตำแหน่งที่ต้องการ
ไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคใช้สำหรับการแลกเปลี่ยนข้อมูลฐานข้อมูลระหว่างเครื่องที่มีสถาปัตยกรรมต่างกันสองแบบ ลักษณะข้อความธรรมดาของไฟล์ CSV ช่วยหลีกเลี่ยงปัญหาความไม่เข้ากัน เช่นลำดับไบต์และขนาดคำได้เป็นอย่างดี ไฟล์เหล่านี้สามารถอ่านได้ง่ายสำหรับมนุษย์ จึงง่ายต่อการจัดการในกรณีที่ไม่มีเอกสารหรือการสื่อสารที่สมบูรณ์แบบ[ 9 ]
การริเริ่มมาตรฐานหลัก—การเปลี่ยน " คำจำกัดความที่ไม่ชัดเจน โดยพฤตินัย " ให้เป็นคำจำกัดความที่แม่นยำและชัดเจนยิ่งขึ้นโดยนิตินัย —เกิดขึ้นในปี 2548 ด้วยRFC 4180ซึ่งกำหนดให้ CSV เป็นประเภทเนื้อหา MIME [ 10 ] ต่อมาในปี 2556 ข้อบกพร่องบางประการของ RFC 4180 ได้รับการแก้ไขโดยคำแนะนำของ W3C [ 11 ]
ในปี 2014 IETFได้เผยแพร่RFC 7111ซึ่งอธิบายการประยุกต์ใช้ส่วนย่อย URIกับเอกสาร CSV RFC 7111 ระบุวิธีการเลือกช่วงแถว คอลัมน์ และเซลล์จากเอกสาร CSV โดยใช้ดัชนีตำแหน่ง[ 12 ]
ในปี 2558 W3Cได้เผยแพร่ร่างแรกของคำแนะนำสำหรับมาตรฐานเมตาเดตา CSV ซึ่งเริ่มต้นเป็นคำแนะนำในเดือนธันวาคมของปีเดียวกันเพื่อปรับปรุง CSV ด้วยความหมายเชิงทางการ[ 13 ]
ข้อกำหนด
CSV สามารถอธิบายอย่างไม่เป็นทางการได้ว่าเป็น ข้อมูล ข้อความธรรมดาที่ประกอบด้วยระเบียนหนึ่งรายการต่อบรรทัด โดยแต่ละบรรทัดจะมีลำดับฟิลด์เดียวกันคั่นด้วยเครื่องหมายจุลภาค[ 1 ] [ 14 ] [ 15 ]สำหรับตัวอย่างง่ายๆ:
รหัสประจำตัว, ชื่อ, อีเมล 1,John,[email protected] 2,Jane,[email protected]
รูปแบบดังกล่าวได้รับการอธิบายอย่างเป็นทางการมากขึ้นในมาตรฐานทางเทคนิคRFC 4180 ปี 2005 ซึ่งกำหนดรูปแบบ CSV และกำหนดประเภท MIMEสำหรับการจัดการฟิลด์ที่เป็นข้อความ โดยมีข้อกำหนดดังต่อไปนี้: text/csv
- บรรทัดจะสิ้นสุดตามแบบ MS-DOS โดยใช้ลำดับอักขระขึ้นบรรทัดใหม่ (CR/LF)
- ตัวจบบรรทัดเป็นตัวเลือกเสริมสำหรับบรรทัดสุดท้าย
- ข้อมูลอาจเริ่มต้นด้วยระเบียนส่วนหัว แต่เนื่องจากไม่มีวิธีตรวจสอบว่าบรรทัดแรกเป็นส่วนหัวจริงหรือไม่ จึงต้องใช้ความระมัดระวังเมื่อนำเข้าข้อมูล
- แต่ละระเบียนควรมีจำนวนฟิลด์เท่ากัน
- ช่องข้อมูลที่มีเครื่องหมายจุลภาค เครื่องหมายอัญประกาศคู่ หรืออักขระขึ้นบรรทัดใหม่ ควรใส่เครื่องหมายอัญประกาศคู่ล้อมรอบ
- สามารถใส่เครื่องหมายอัญประกาศคู่ล้อมรอบช่องใดก็ได้
- หากฟิลด์ถูกล้อมด้วยเครื่องหมายอัญประกาศคู่ เครื่องหมายอัญประกาศคู่ที่อยู่ภายในฟิลด์นั้นจะต้องแสดงด้วยเครื่องหมายอัญประกาศคู่สองตัวเรียงกัน
ตัวอย่างที่ซับซ้อนกว่านี้ โดยมีบางฟิลด์ที่อยู่ในเครื่องหมายอัญประกาศคู่ และฟิลด์ที่มีอักขระพิเศษ (เครื่องหมายอัญประกาศคู่, ตัวจบบรรทัด, เครื่องหมายจุลภาค):
ปี, ยี่ห้อ, รุ่น, รายละเอียด, ราคา 1997, Ford, E350, "ac, abs, moon", 3000.00 1999,Chevy,"Venture""Extended Edition""","",4900.00 1999,Chevy,"Venture""Extended Edition, Very Large""","",5000.00 รถจี๊ป แกรนด์ เชอโรคี ปี 1996 "ต้องขาย!" แอร์, หลังคาซันรูฟ, อุปกรณ์ครบครัน", 4799.00
ตัวอย่างนี้แสดงให้เห็นว่า การแยกวิเคราะห์ไฟล์ CSV นั้นไม่สามารถทำได้โดยการแบ่งข้อมูลตามตัวจบบรรทัดออกเป็นบรรทัดๆ แล้วจึงแบ่งแต่ละบรรทัดด้วยเครื่องหมายจุลภาค ข้อมูลข้างต้น เมื่อแยกวิเคราะห์อย่างถูกต้องแล้ว จะสามารถแสดงได้ในรูปแบบตารางดังนี้:
| ปี | ทำ | แบบอย่าง | คำอธิบาย | ราคา |
|---|---|---|---|---|
| พ.ศ. 2540 | ฟอร์ด | อี350 | เอซี, แอ็บส์, มูน | 3000.00 |
| 1999 | เชฟโรเลต | Venture "Extended Edition" | 4900.00 | |
| 1999 | เชฟโรเลต | Venture "รุ่นขยาย ขนาดใหญ่พิเศษ" | 5000.00 | |
| พ.ศ. 2539 | รถจี๊ป | แกรนด์เชอโรคี | ต้องขายด่วน! แอร์, หลังคาซันรูฟ, อุปกรณ์ครบครัน | 4799.00 |
ปัญหาที่พบได้ทั่วไปในการใช้ไฟล์ CSV ได้แก่:
- โปรแกรมบางโปรแกรมอาจไม่รองรับอักขระขึ้นบรรทัดใหม่ภายในฟิลด์ แม้ว่าจะใส่เครื่องหมายคำพูดอย่างถูกต้องแล้วก็ตาม
- โปรแกรมอาจสับสนระหว่างบรรทัดส่วนหัวกับข้อมูล หรืออาจตีความบรรทัดข้อมูลแรกเป็นส่วนหัว
- เครื่องหมายอัญประกาศคู่ในช่องข้อมูลอาจไม่ได้รับการประมวลผลอย่างถูกต้อง
ในปี 2554 Open Knowledge Foundation (OKF) และพันธมิตรต่างๆ ได้ร่วมกันสร้างกลุ่มทำงานด้านโปรโตคอลข้อมูล ซึ่งต่อมาได้พัฒนาเป็นโครงการ Frictionless Data Initiative รูปแบบหลักรูปแบบหนึ่งที่พวกเขาเผยแพร่คือ Tabular Data Package โดย Tabular Data Package นั้นใช้ CSV เป็นรูปแบบการขนส่งข้อมูลหลัก และเพิ่มเมตาเดต้าประเภทและสคีมาพื้นฐาน (CSV ขาดข้อมูลประเภทใดๆ ที่จะแยกแยะสตริงออก1จากตัวเลข 1) [ 16 ]โครงการ Frictionless Data Initiative ยังได้จัดเตรียมรูปแบบคำอธิบายภาษาถิ่น CSV มาตรฐานสำหรับอธิบายภาษาถิ่นต่างๆ ของ CSV เช่น การระบุตัวคั่นฟิลด์หรือกฎการอ้างอิง[ 17 ]
ในปี 2556 กลุ่มทำงาน "CSV บนเว็บ" ของ W3Cเริ่มกำหนดเทคโนโลยีที่ให้ความสามารถในการทำงานร่วมกันที่สูงขึ้นสำหรับแอปพลิเคชันเว็บที่ใช้ CSV หรือรูปแบบที่คล้ายกัน[ 18 ]กลุ่มทำงานเสร็จสิ้นงานในเดือนกุมภาพันธ์ 2559 และปิดตัวลงอย่างเป็นทางการในเดือนมีนาคม 2559 พร้อมกับการเผยแพร่ชุดเอกสารและคำแนะนำของ W3C [ 19 ]สำหรับการสร้างแบบจำลอง "ข้อมูลตาราง" [ 13 ]และการปรับปรุง CSV ด้วยเมตาเดตาและความหมายในขณะที่ความถูกต้องของข้อมูล CSV สามารถตรวจสอบได้ง่าย การทดสอบความถูกต้องและรูปแบบมาตรฐานยังไม่ได้รับการพัฒนาเท่าที่ควร เมื่อเทียบกับรูปแบบข้อมูลที่แม่นยำกว่า เช่นXMLและSQLซึ่งมีประเภทที่หลากหลายกว่าและการตรวจสอบความถูกต้องตามกฎ[ 20 ]
แอปพลิเคชัน
CSV มักใช้สำหรับการแลกเปลี่ยนข้อมูล และได้รับการสนับสนุนอย่างกว้างขวางจาก แอปพลิเคชันที่เน้นข้อมูลมักใช้ในการย้ายข้อมูลตารางระหว่างโปรแกรมที่ทำงานกับข้อมูลที่ไม่เข้ากันโดยธรรมชาติ ซึ่งมักอยู่ในรูปแบบที่เป็นกรรมสิทธิ์หรือไม่ได้บันทึกไว้[ 1 ] [ 21 ] [ 22 ]สถานการณ์ทั่วไปคือการย้ายข้อมูลจากฐานข้อมูลไปยังสเปรดชีต ซึ่งโดยทั่วไปแล้วใช้รูปแบบที่แตกต่างกันโดยสิ้นเชิง ระบบฐานข้อมูลส่วนใหญ่สามารถส่งออกเป็น CSV และโปรแกรมสเปรดชีตส่วนใหญ่สามารถนำเข้าข้อมูลในรูปแบบ CSV โดยใช้ CSV เป็นรูปแบบตัวกลาง แพลตฟอร์ม อีคอมเมิร์ซ หลักทุก แพลตฟอร์มให้การสนับสนุนการส่งออกข้อมูลเป็นไฟล์ CSV [ 23 ]
CSV ยังใช้สำหรับจัดเก็บข้อมูลด้วย เครื่องมือวิทยาศาสตร์ข้อมูลทั่วไป เช่นPandasมีตัวเลือกในการส่งออกข้อมูลไปยัง CSV เพื่อการจัดเก็บระยะยาว[ 24 ]ข้อดีของ CSV สำหรับการจัดเก็บข้อมูล ได้แก่ ความเรียบง่ายของ CSV ทำให้การแยกวิเคราะห์และการสร้างไฟล์ CSV ทำได้ง่ายและรวดเร็วเมื่อเทียบกับรูปแบบข้อมูลอื่นๆ ความสามารถในการอ่านของมนุษย์ทำให้การแก้ไขหรือปรับปรุงข้อมูลทำได้ง่ายขึ้น[ 25 ]และความสามารถในการบีบอัดสูงทำให้ไฟล์ข้อมูลมีขนาดเล็กลง[ 26 ]ในทางกลับกัน CSV ไม่รองรับความสัมพันธ์ของข้อมูลที่ซับซ้อนกว่า และไม่แยกความแตกต่างระหว่างค่าว่างและค่าที่ไม่มีข้อมูล และในแอปพลิเคชันที่ต้องการคุณสมบัติเหล่านี้ รูปแบบอื่นๆ จะเป็นที่นิยมมากกว่า
พอร์ทัลข้อมูลระดับท้องถิ่น ระดับภูมิภาค และระดับชาติมากกว่า 200 แห่ง เช่น ของรัฐบาลสหราชอาณาจักรและคณะกรรมาธิการยุโรปใช้ไฟล์ CSV ที่มีแคตตาล็อกข้อมูล มาตรฐาน [ 27 ]
บางแอปพลิเคชันใช้ CSV เป็นรูปแบบการแลกเปลี่ยนข้อมูลเพื่อเพิ่มความสามารถในการทำงานร่วมกันเช่น การส่งออกและนำเข้าข้อมูลในรูปแบบ CSV บางแอปพลิเคชันใช้ CSV เป็นรูปแบบภายใน โปรแกรมสเปรดชีตและระบบจัดการฐานข้อมูลเกือบทั้งหมดรองรับ CSV
โปรแกรมสเปรดชีตหลายตัว เช่น Apple Numbers , LibreOffice CalcและApache OpenOffice Calc รองรับการอ่านไฟล์ CSV Microsoft Excelก็รองรับไฟล์ CSV ในรูปแบบหนึ่ง แต่มีข้อจำกัดเมื่อเทียบกับโปรแกรมสเปรดชีตอื่นๆ (เช่น ณ ปี 2019 Excel ยังไม่สามารถส่งออกไฟล์ CSV ด้วยการเข้ารหัสอักขระ UTF-8 ที่ใช้กันทั่วไปได้ และไม่ได้บังคับใช้เครื่องหมายจุลภาคเป็นตัวคั่น) ส่วนโปรแกรมนำเข้า CSV ของ LibreOffice Calcนั้นเป็นตัวนำเข้าข้อความแบบคั่นทั่วไปมากกว่า รองรับการใช้ตัวคั่นหลายตัวพร้อมกัน รวมถึงการตัดแต่งฟิลด์ด้วย
ฐานข้อมูลเชิงสัมพันธ์หลายประเภทรองรับการบันทึกผลลัพธ์การสืบค้นลงในไฟล์ CSV PostgreSQLมีCOPYคำสั่งที่อนุญาตให้ทั้งบันทึกและโหลดข้อมูลไปยังและจากไฟล์บันทึกเนื้อหาของตารางลงในไฟล์ที่เรียกว่า.csv.gz [ 28 ]ฐานข้อมูลเชิงสัมพันธ์บางประเภท เมื่อใช้ SQL มาตรฐาน จะมีforeign-data wrapper (FDW) ให้ใช้งาน ตัวอย่างเช่น PostgreSQL มี คำสั่ง [ 29 ]และ[ 30 ]เพื่อกำหนดค่า CSV ในรูปแบบต่างๆ ฐานข้อมูลเช่นApache Hiveมีตัวเลือกในการแสดง CSV หรือ.csv.gzเป็นรูปแบบตารางภายใน COPY(SELECT*FROMarticles)TO'/home/wikipedia/file.csv'(FORMATcsv)articles/home/wikipedia/file.csvCREATEFOREIGNTABLECREATEEXTENSIONfile_fdw
โปรแกรมที่ทำงานกับไฟล์ CSV อาจมีข้อจำกัดเกี่ยวกับจำนวนแถวสูงสุดที่ไฟล์ CSV สามารถมีได้ ตัวอย่างเช่น Microsoft Excel (1,048,576 แถว), Apple Numbers (1,000,000 แถว), Google Sheets (10,000,000 เซลล์) และ OpenOffice และ LibreOffice (1,048,576 แถว) [ 31 ]
ดูเพิ่มเติม
- การเปรียบเทียบรูปแบบการจัดเรียงข้อมูล
- การชนกันของตัวคั่น – ปัญหาการจัดรูปแบบที่เกิดจากข้อมูลที่มีตัวคั่น
- ฐานข้อมูลแบบไฟล์แบน – ฐานข้อมูลที่จัดเก็บในรูปแบบข้อมูลแบน
- ค่าที่คั่นด้วยแท็บ – รูปแบบข้อความสำหรับข้อมูลในตารางโดยใช้แท็บคั่นระหว่างฟิลด์
อ่านเพิ่มเติม
- "คู่มือการ บริหารจัดการ IBM DB2 - รูปแบบไฟล์ LOAD, IMPORT และ EXPORT" IBM เก็บถาวรจากต้นฉบับเมื่อ 2016-12-13 เรียกดูเมื่อ2016-12-12(มีคำอธิบายไฟล์ ASCII แบบคั่นด้วยตัวคั่น (.DEL) (รวมถึงแบบคั่นด้วยเครื่องหมายจุลภาคและเครื่องหมายเซมิโคลอน) และไฟล์ ASCII แบบไม่คั่นด้วยตัวคั่น (.ASC) สำหรับการถ่ายโอนข้อมูล)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ค่าที่คั่นด้วยเครื่องหมายจุลภาค
ค่าที่คั่นด้วยเครื่องหมายจุลภาค ( CSV ) เป็น รูปแบบ ข้อมูล ข้อความธรรมดา สำหรับจัดเก็บ ข้อมูลแบบตาราง โดยที่ ฟิลด์ (ค่า) ของ ระเบียน จะถูกคั่นด้วย เครื่องหมายจุลภาค...
ประวัติศาสตร์
รูปแบบ CSV มีมาก่อน คอมพิวเตอร์ส่วนบุคคล มากกว่าหนึ่งทศวรรษ คอมไพเลอร์ IBM Fortran (ระดับ H ขยาย) ภายใต้ OS/360 รองรับการป้อน/ส่งออกข้อมูลแบบรายการ ("รูปแบบอิสระ") โดยมีเครื่องหมายจุลภาคคั่นระหว่างค่าต่างๆ ในปี 1972 [ 5 ]...
ข้อกำหนด
CSV สามารถอธิบายอย่างไม่เป็นทางการได้ว่าเป็น ข้อมูล ข้อความธรรมดา ที่ประกอบด้วยระเบียนหนึ่งรายการต่อบรรทัด โดยแต่ละบรรทัดจะมีลำดับฟิลด์เดียวกันคั่นด้วยเครื่องหมายจุลภาค [ 1 ] [ 14 ] [ 15 ] สำหรับตัวอย่างง่ายๆ:
แอปพลิเคชัน
CSV มักใช้สำหรับ การแลกเปลี่ยนข้อมูล และได้รับการสนับสนุนอย่างกว้างขวางจาก แอปพลิเคชัน ที่เน้นข้อมูลมักใช้ในการย้ายข้อมูลตารางระหว่างโปรแกรมที่ทำงานกับข้อมูลที่ไม่เข้ากันโดยธรรมชาติ ซึ่งมักอยู่ในรูปแบบที่ เป็นกรรมสิทธิ์ หรือไม่ได้บันทึกไว้ [ 1 ] [ 21 ] [ 22 ]...