UltKit
รูปภาพ11
PDF13
เอกสารและข้อมูล7
วิดีโอ6
เสียง4
เครื่องมืออื่น ๆ22

แปลง CSV เป็น Parquet

CSV สร้างง่ายแต่คิวรีช้า อัปโหลดไฟล์ CSV แล้วรับไฟล์ Apache Parquet ที่ทุกฟิลด์มีชนิดคอลัมน์กำหนดไว้ บีบอัดเรียบร้อยและพร้อมโหลดเข้าเครื่องมือวิเคราะห์ที่คุณใช้

แปลงไฟล์ข้อมูล

หรือลากไฟล์ CSV, TSV, TXT … มาวางที่นี่ ·

สูงสุด 95 MB ต่อไฟล์· ได้สูงสุด 20 ไฟล์· ลบหลังจาก 30 นาที

ผลลัพธ์

ไฟล์จะถูกประมวลผลบนเซิร์ฟเวอร์ของเราและถูกลบหลังจาก 30 นาที

วิธีใช้เครื่องมือนี้

  1. 1

    อัปโหลดไฟล์ CSV

    เพิ่มไฟล์ที่ส่งออกมา 1 ไฟล์ หรือสูงสุด 20 ไฟล์ที่มีโครงสร้างเหมือนกัน ไฟล์ละไม่เกิน 95 MB ตั้งค่า ตัวคั่น เป็นตรวจหาอัตโนมัติ ระบบจะรองรับเครื่องหมายจุลภาค อัฒภาค แท็บ และเครื่องหมายไปป์

  2. 2

    คงการตั้งค่าแถวหัวตารางและวันที่ไว้

    แถวแรกเป็นส่วนหัว จะใช้บรรทัดแรกเป็นชื่อคอลัมน์ ส่วน วันที่ ตั้งเป็น ISO เพื่อให้คอลัมน์วันที่ถูกเขียนในรูปแบบเดียวกันทั้งหมด

  3. 3

    แปลงเป็น Parquet

    กด แปลงเป็น Parquet แล้วนำไฟล์ .parquet ไปโหลดใน pandas, DuckDB, Spark หรือคลังข้อมูลของคุณ

เหตุใดทีมข้อมูลจึงแปลง CSV เป็น Parquet

Parquet ถูกสร้างขึ้นในปี 2013 โดยวิศวกรจาก Twitter และ Cloudera โดยอาศัยโครงสร้างแบบคอลัมน์ที่ Google อธิบายไว้ในเอกสารวิจัย Dremel ปี 2010 และกลายเป็นโครงการระดับสูงสุดของ Apache ในปี 2015 แนวคิดนั้นเรียบง่าย คือแทนที่จะเก็บตารางทีละแถวแบบ CSV จะเก็บค่าทั้งหมดของคอลัมน์เดียวไว้ด้วยกัน คำสั่งสืบค้นที่ต้องใช้สามคอลัมน์จากสี่สิบคอลัมน์จะอ่านเพียงสามคอลัมน์นั้น และค่าที่คล้ายกันที่อยู่ติดกันก็บีบอัดได้ดีกว่ามาก

นี่คือเหตุผลที่นักวิเคราะห์แปลงไฟล์ส่งออกก่อนโหลด วิศวกรข้อมูลขอ Parquet แทน CSV จากผู้ส่งมอบข้อมูล และบริการอย่าง Amazon Athena และ BigQuery ซึ่งอาจคิดค่าบริการตามปริมาณข้อมูลที่สแกนจึงสืบค้นได้ถูกลง นอกจากนี้ CSV ไม่รู้ว่า 0042 เป็นตัวเลขหรือรหัส ส่วน Parquet บันทึกชนิดของทุกคอลัมน์ไว้ เครื่องมือถัดไปจึงไม่ต้องเดา

เปรียบเทียบ Parquet, CSV และ XLSX สำหรับตารางขนาดใหญ่

ParquetCSVXLSX
เก็บชนิดข้อมูลของคอลัมน์ไว้ในไฟล์yesnoต่อเซลล์
อ่านเฉพาะคอลัมน์ที่คำสั่งสืบค้นต้องการyesnono
บีบอัดแล้วyesnoyes
อ่านได้ในโปรแกรมแก้ไขข้อความnoyesno
เปิดใน Excel ได้ด้วยการดับเบิลคลิกnoyesyes
จำนวนแถวต่อไฟล์ไม่จำกัดตายตัวไม่จำกัดตายตัว1,048,576 ต่อชีต

สิ่งที่เปลี่ยนไปเมื่อ CSV กลายเป็น Parquet

สิ่งที่ได้รับ

  • สืบค้นเร็วขึ้นเพราะอ่านเฉพาะคอลัมน์ที่ต้องการ
  • ไฟล์เล็กลง จัดเก็บและย้ายได้สะดวก
  • มีสคีมาให้เครื่องมือถัดไปอ่าน ไม่ต้องเดา
  • วันที่ถูกเขียนในรูปแบบ ISO อย่างเดียว

สิ่งที่ควรทราบ

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

ข้อมูลฟอร์แมต CSV และ Parquet

CSV

ค่าที่คั่นด้วยจุลภาค (CSV)

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

การบีบอัด
–
พื้นหลังโปร่งใส
–
ภาพเคลื่อนไหว
–
เปิดตัว
–
ตัวแปลงไฟล์ CSV

PARQUET

Apache Parquet

Parquet เป็นรูปแบบการจัดเก็บข้อมูลแบบคอลัมน์ (columnar) แบบโอเพนซอร์สที่ Twitter และ Cloudera สร้างขึ้นในปี 2013 และดูแลโดย Apache Software Foundation จัดเก็บข้อมูลตามคอลัมน์พร้อมการบีบอัดประสิทธิภาพสูงและสคีมาที่กำหนดชนิดข้อมูล เครื่องมือวิเคราะห์ข้อมูลจึงอ่านเฉพาะคอลัมน์ที่ต้องการได้ เป็นมาตรฐานใน data lake และเครื่องมืออย่าง Spark, pandas, DuckDB, BigQuery และ Snowflake ไฟล์ Parquet เป็นไฟล์ไบนารีและเปิดในโปรแกรมแก้ไขข้อความหรือแอปสเปรดชีตทั่วไปไม่ได้

การบีบอัด
แบบไม่สูญเสียข้อมูล
พื้นหลังโปร่งใส
–
ภาพเคลื่อนไหว
–
เปิดตัว
2013 · Apache Software Foundation (from Twitter and Cloudera)
ตัวแปลงไฟล์ PARQUET

CSV กลายเป็น Parquet เมื่อไฟล์ไม่ได้มีไว้ให้คนเปิดอ่านอีกต่อไป แต่มีไว้ให้คำสั่งสืบค้นสแกนข้อมูล เช่น ไฟล์ส่งออกรายวันที่ไหลเข้า data lake ชุดข้อมูลที่แชร์ให้นักวิเคราะห์ หรือล็อกที่กรองทีละไม่กี่คอลัมน์

ควรทำความสะอาด CSV ก่อนแปลง ไม่ใช่หลังแปลง โดยแก้ชื่อส่วนหัว ลบบรรทัดสรุปท้ายไฟล์ และตรวจให้แต่ละคอลัมน์มีค่าชนิดเดียวกัน หากต้นทางเป็นไฟล์สำรองฐานข้อมูลไม่ใช่ CSV ให้เริ่มจาก แปลง SQL เป็น CSV ส่วนปลายทางอื่น ๆ ตั้งแต่ JSON ถึง SQL อยู่ในหน้า แปลงไฟล์ข้อมูล

คำถามเกี่ยวกับการแปลง CSV เป็น Parquet

ไฟล์ Parquet จะเล็กกว่าไฟล์ CSV เท่าไร

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

เครื่องมือใดบ้างที่อ่านไฟล์ .parquet ที่แปลงแล้วได้

ใช้ได้กับ pandas ด้วย read_parquet, Polars, DuckDB ด้วยคำสั่ง SELECT ธรรมดาที่ระบุชื่อไฟล์, Apache Spark และคลังข้อมูลบนคลาวด์ เช่น BigQuery, Snowflake, Amazon Athena และ Redshift Spectrum เครื่องมือส่วนใหญ่ยังสืบค้นโฟลเดอร์ที่มีไฟล์ Parquet คอลัมน์เดียวกันให้เป็นตารางเดียวได้ด้วย

ชนิดของคอลัมน์กำหนดอย่างไร

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

แปลงไฟล์ CSV หลายไฟล์ที่มีโครงสร้างเหมือนกันได้หรือไม่

ได้ สูงสุด 20 ไฟล์ต่อครั้ง และแต่ละไฟล์จะกลายเป็นไฟล์ .parquet แยกกัน หากวางไว้ในโฟลเดอร์เดียวกัน DuckDB หรือ Spark จะอ่านรวมกันได้ด้วยไวลด์การ์ด เช่น sales_*.parquet

จะดูข้อมูลในไฟล์ Parquet โดยไม่ต้องเขียนโค้ดได้อย่างไร

Excel และ Google Sheets เปิดไฟล์ .parquet ด้วยการดับเบิลคลิกไม่ได้ หากต้องการกลับเป็นแถวข้อมูล ให้ใช้ แปลง Parquet เป็น CSV หรือใช้บรรทัดคำสั่งของ DuckDB หากคุ้นเคยกับการเขียนคำสั่ง SQL เพียงหนึ่งคำสั่ง