กลับไปหน้าบทความ

อ่าน 3 นาที

การมุ่งเน้นข้อมูล

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

การมุ่งเน้นข้อมูล

การวางแนวข้อมูลคือการแสดงข้อมูลตารางในรูปแบบหน่วยความจำเชิงเส้นเช่นในดิสก์หรือในหน่วยความจำการแสดงผลที่พบได้บ่อยที่สุดสองแบบคือแบบคอลัมน์ (รูปแบบคอลัมน์) และแบบแถว (รูปแบบแถว) [ 1 ] [ 2 ]

การเลือกทิศทางการจัดเก็บข้อมูลเป็นการประนีประนอมและเป็นการตัดสินใจเชิงสถาปัตยกรรมในฐานข้อมูลเครื่องมือสอบถาม และการจำลองเชิงตัวเลข[ 1 ]ผลจากการประนีประนอมเหล่านี้ รูปแบบที่เน้นแถวจึงมักใช้ในการประมวลผลธุรกรรมออนไลน์ (OLTP) และรูปแบบที่เน้นคอลัมน์มักใช้ในการประมวลผลเชิงวิเคราะห์ออนไลน์ (OLAP) [ 2 ]

ตัวอย่างของรูป แบบที่เน้นคอลัมน์ ได้แก่Apache ORC [ 3 ] Apache Parquet [ 4 ] Apache Arrow [ 5 ]ซึ่งเป็นรูปแบบที่ใช้โดยBigQuery , Amazon RedshiftและSnowflakeตัวอย่างที่โดดเด่นของรูปแบบที่เน้นแถว ได้แก่ CSV ซึ่งเป็นรูปแบบที่ใช้ในฐานข้อมูลเชิงสัมพันธ์ ส่วนใหญ่ ( Oracle , MySQLเป็นต้น) รูปแบบในหน่วยความจำของApache SparkและApache Avro [ 6 ]

คำอธิบาย

ข้อมูลตารางเป็นข้อมูลสองมิติ — ข้อมูลถูกจำลองเป็นแถวและคอลัมน์ อย่างไรก็ตาม ระบบคอมพิวเตอร์แสดงข้อมูลในรูปแบบหน่วยความจำเชิงเส้นทั้งในดิสก์และในหน่วยความจำ[ 7 ] [ 8 ] [ 9 ]ดังนั้น ตารางในรูปแบบหน่วยความจำเชิงเส้นจึงต้องแปลงแผนผังสองมิติให้เป็นพื้นที่หนึ่งมิติ การกำหนดทิศทางข้อมูลขึ้นอยู่กับการตัดสินใจในการแปลงนี้ มีการแปลงที่สำคัญสองแบบคือ แบบเน้นแถวและแบบเน้นคอลัมน์[ 1 ] [ 2 ]

เรียงตามแถว

ในฐานข้อมูลแบบแถว (row-oriented database) หรือที่เรียกว่า rowstore นั้น องค์ประกอบของตารางจะถูกจัดเรียงตามลำดับแถว

คอลัมน์ที่ 1คอลัมน์ 2คอลัมน์ที่ 3
รายการที่ 11รายการที่ 12รายการที่ 13
รายการที่ 21รายการที่ 22รายการที่ 23

จะถูกจัดเก็บตามลำดับดังนี้

รายการที่ 11รายการที่ 12รายการที่ 13รายการที่ 21รายการที่ 22รายการที่ 23

กล่าวคือ แต่ละแถวของตารางจะเรียงต่อกัน ในลักษณะนี้ ค่าในแถวเดียวกันจะอยู่ใกล้กันในเชิงพื้นที่ (เช่น ที่อยู่คล้ายกันในพื้นที่ที่สามารถระบุที่อยู่ได้)

ตัวอย่าง

จัดเรียงตามคอลัมน์

ในฐานข้อมูลแบบคอลัมน์ หรือที่เรียกว่าคอลัมน์สโตร์ องค์ประกอบของตารางจะถูกจัดเรียงตามลำดับ

คอลัมน์ที่ 1คอลัมน์ 2คอลัมน์ที่ 3
รายการที่ 11รายการที่ 12รายการที่ 13
รายการที่ 21รายการที่ 22รายการที่ 23

จะถูกจัดเก็บตามลำดับดังนี้

รายการที่ 11รายการที่ 21รายการที่ 12รายการที่ 22รายการที่ 13รายการที่ 23

กล่าวคือ แต่ละคอลัมน์ของตารางจะเรียงต่อกัน ในลักษณะนี้ ค่าในคอลัมน์เดียวกันจะอยู่ใกล้กันในเชิงพื้นที่ (เช่นเดียวกับที่อยู่เดียวกันในพื้นที่ที่สามารถระบุที่อยู่ได้)

ตัวอย่าง

ดูรายการระบบจัดการฐานข้อมูลแบบคอลัมน์เพื่อดูตัวอย่างเพิ่มเติม

การแลกเปลี่ยน

การวางแนวข้อมูลเป็นการตัดสินใจทางสถาปัตยกรรม ที่สำคัญ ของระบบที่จัดการข้อมูล เนื่องจากส่งผลให้เกิดการแลกเปลี่ยน ที่สำคัญ ในด้านประสิทธิภาพและการจัดเก็บข้อมูล [ 8 ] ด้านล่างนี้คือมิติที่เลือกของการแลกเปลี่ยนนี้

การเข้าถึงแบบสุ่ม

ข้อดีของการใช้แถวแบบเรียงตามแถวคือการเข้าถึงแถวแบบสุ่มที่รวดเร็ว ข้อดีของการใช้คอลัมน์แบบเรียงตามคอลัมน์คือการเข้าถึงคอลัมน์แบบสุ่มที่รวดเร็ว ในทั้งสองกรณีนี้เป็นผลมาจากการเข้าถึงข้อมูลผิดพลาดของเพจหรือแคชที่น้อยลง[ 8 ]

แทรก

การจัดเรียงแบบแถวมีข้อดีคือเพิ่มแถวใหม่ได้รวดเร็ว การจัดเรียงแบบคอลัมน์มีข้อดีคือเพิ่มคอลัมน์ใหม่ได้รวดเร็ว

มิติดังกล่าวเป็นเหตุผลสำคัญที่ทำให้รูปแบบที่เน้นแถวถูกใช้บ่อยขึ้นในการประมวลผลธุรกรรมออนไลน์ (OLTP) เนื่องจากส่งผลให้ธุรกรรมเร็วขึ้นเมื่อเปรียบเทียบกับรูปแบบที่เน้นคอลัมน์[ 2 ]

การเข้าถึงแบบมีเงื่อนไข

ข้อดีของการจัดวางตามแถวคือการเข้าถึงที่รวดเร็วภายใต้ตัวกรอง ข้อดีของการจัดวางตามคอลัมน์คือการเข้าถึงที่รวดเร็วภายใต้การฉายภาพ[ 4 ] [ 3 ]

ประสิทธิภาพการคำนวณ

ข้อดีของการจัดกลุ่มตามคอลัมน์คือการดำเนินการวิเคราะห์ที่รวดเร็ว ซึ่งเป็นผลมาจากการใช้ประโยชน์จากคำสั่งSIMD [ 5 ]

ขนาดก่อนบีบอัด

ข้อดีของการจัดเรียงแบบคอลัมน์คือขนาดที่เล็กกว่าเมื่อไม่บีบอัด ซึ่งเป็นผลมาจากความเป็นไปได้ที่การจัดเรียงแบบนี้ช่วยให้สามารถแสดงประเภทข้อมูลบางประเภทด้วยการเข้ารหัสเฉพาะได้[ 4 ] [ 3 ]

ตัวอย่างเช่น ตารางที่มี 128 แถวและคอลัมน์ประเภทบูลีน จะต้องใช้ 128 ไบต์ในรูปแบบที่จัดเรียงตามแถว (หนึ่งไบต์ต่อบูลีน) แต่จะใช้ 128 บิต (16 ไบต์) ในรูปแบบที่จัดเรียงตามคอลัมน์ (ผ่านบิตแมป) อีกตัวอย่างหนึ่งคือการใช้การเข้ารหัสแบบรัน-เลิร์ฟ (run-length encoding ) เพื่อเข้ารหัสคอลัมน์

ขนาดที่บีบอัด

ข้อดีของการจัดเรียงตามคอลัมน์คือขนาดที่บีบอัดเล็กกว่า ซึ่งเป็นผลมาจากความเป็นเนื้อเดียวกันที่สูงกว่าภายในคอลัมน์มากกว่าภายในหลายแถว[ 4 ] [ 3 ]

การแปลงและการแลกเปลี่ยน

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

  1. อ่านข้อมูลจากApache Parquet (รูปแบบคอลัมน์)
  2. โหลดข้อมูลลงในรูปแบบหน่วยความจำภายในของ Spark (แบบเรียงแถว)
  3. แปลงเป็นรูปแบบApache Arrowสำหรับการคำนวณเฉพาะ (แบบคอลัมน์)
  4. เขียนข้อมูลไปยังApache Avroเพื่อการประมวลผลแบบสตรีมมิ่ง (แบบเรียงแถว)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Data_orientation&oldid=1360960365 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การมุ่งเน้นข้อมูล

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

คำอธิบาย

ข้อมูลตารางเป็นข้อมูลสองมิติ — ข้อมูลถูกจำลองเป็นแถวและคอลัมน์ อย่างไรก็ตาม ระบบคอมพิวเตอร์แสดงข้อมูลใน รูปแบบหน่วยความจำเชิงเส้น ทั้งในดิสก์และในหน่วยความจำ [ 7 ] [ 8 ] [ 9 ] ดังนั้น...

เรียงตามแถว

ในฐานข้อมูลแบบแถว (row-oriented database) หรือที่เรียกว่า rowstore นั้น องค์ประกอบของตารางจะถูกจัดเรียงตามลำดับแถว

ตัวอย่าง

ซีเอสวี รูปแบบการจัด เก็บข้อมูล PostgreSQL ในดิสก์และในหน่วยความจำ รูปแบบหน่วยความจำภายใน ของ Apache Spark อาปาเช่ อัฟโร MySQL ชุดข้อมูล SAS