เผยแพร่เมื่อ

โนชั่นจัดการกับเอนทิตี้ข้อมูล 200 พันล้านรายการอย่างไร

ผู้เขียน

ทุกอย่างใน Notion เป็นบล็อก - ข้อความ รูปภาพ รายการ แถวฐานข้อมูล และแม้กระทั่งหน้า

Image

สถาปัตยกรรมของโนชั่นได้รับการออกแบบมาเพื่อรองรับโมเดลข้อมูลที่เป็นเอกลักษณ์ ซึ่งหมุนรอบ "บล็อก" — หน่วยข้อมูลพื้นฐานที่สามารถแสดงเนื้อหาที่หลากหลาย เช่น ข้อความ รูปภาพ และรายการฐานข้อมูล สถาปัตยกรรมนี้ช่วยให้ผู้ใช้สามารถสร้างและจัดการข้อมูลได้อย่างยืดหยุ่นและมีพลวัต

คุณสมบัติหลักของสถาปัตยกรรมโนชั่น

  1. โมเดลข้อมูลแบบบล็อก
  • ทุกอย่างคือบล็อก: ในโนชั่น ทุกเนื้อหาถูกปฏิบัติตามเป็นบล็อก บล็อกคือเลโก้ของโนชั่น ซึ่งรวมถึงข้อความ รูปภาพ แถวฐานข้อมูล และแม้กระทั่งหน้าเว็บทั้งหมด แต่ละบล็อกมีข้อมูลเมตาที่เกี่ยวข้องและสามารถเปลี่ยนแปลงหรือย้ายได้อย่างอิสระภายในแอปพลิเคชัน

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

  1. การออกแบบฐานข้อมูล
  • ฐานข้อมูลเชิงสัมพันธ์: โนชั่นใช้ PostgreSQL เป็นระบบฐานข้อมูลที่อยู่เบื้องหลัง ในช่วงแรก โนชั่นใช้ PostgreSQL แบบเดียว แต่หลังจากนั้นได้พัฒนาไปสู่สถาปัตยกรรมที่ซับซ้อนมากขึ้น โดยใช้การแบ่งส่วนข้อมูลเพื่อจัดการข้อมูลที่เพิ่มขึ้นอย่างมีประสิทธิภาพ

  • กลยุทธ์การแบ่งส่วนข้อมูล: ณ กลางปี 2023 สถาปัตยกรรมฐานข้อมูลของโนชั่นประกอบด้วยเซิร์ฟเวอร์ฐานข้อมูล 96 เครื่อง ซึ่งแบ่งออกเป็นส่วนข้อมูลตาม ID ของพื้นที่ทำงาน ซึ่งทำให้แน่ใจว่าบล็อกทั้งหมดที่เกี่ยวข้องกับพื้นที่ทำงานใดพื้นที่ทำงานหนึ่งจะถูกเก็บไว้ด้วยกัน ช่วยให้การทำธุรกรรมมีประสิทธิภาพและสม่ำเสมอ

  1. ความสามารถในการปรับขนาดและประสิทธิภาพ
  • สถาปัตยกรรมแบบคลัสเตอร์: การใช้เซิร์ฟเวอร์แบบคลัสเตอร์ช่วยให้โนชั่นสามารถปรับขนาดฐานข้อมูลได้อย่างแนวนอน แต่ละส่วนข้อมูลแสดงเป็น PostgreSQL สกีมา ซึ่งช่วยในการจัดการข้อมูลที่เพิ่มขึ้นโดยยังคงประสิทธิภาพไว้

  • การโต้ตอบ API: แอปพลิเคชันไคลเอ็นต์โต้ตอบกับฐานข้อมูลผ่านเซิร์ฟเวอร์ API ที่ทำงานบน Node.js ซึ่งช่วยปรับปรุงประสิทธิภาพโดยการจัดการการเชื่อมต่ออย่างมีประสิทธิภาพผ่านการรวมการเชื่อมต่อ

  1. การจัดการข้อมูลและการเติบโต
  • โครงสร้างคลังข้อมูล: โนชั่นได้ใช้ระบบ ELT (Extract, Load, Transform) สำหรับการวิเคราะห์และรายงานข้อมูล โดยใช้เครื่องมืออย่าง Fivetran เพื่อดึงข้อมูลจาก PostgreSQL ไปยัง Snowflake เพื่อวิเคราะห์เพิ่มเติม

  • การเติบโตของข้อมูลอย่างรวดเร็ว: ปริมาณข้อมูลบล็อกในโนชั่นเพิ่มขึ้นอย่างมาก โดยเติบโตจากมากกว่า 20 พันล้านบล็อกในช่วงต้นปี 2021 เป็นมากกว่า 200 พันล้านบล็อกในช่วงกลางปี 2024 การเติบโตนี้ทำให้จำเป็นต้องปรับปรุงกลยุทธ์การจัดการข้อมูลอย่างต่อเนื่อง

การออกแบบฐานข้อมูลในโนชั่น

การสร้างฐานข้อมูลในโนชั่นเป็นเรื่องง่ายและประกอบด้วยขั้นตอนต่อไปนี้:

  • สร้างบล็อกฐานข้อมูล: ผู้ใช้สามารถเริ่มต้นฐานข้อมูลโดยการพิมพ์ /database ในหน้าโนชั่นใดก็ได้ เพื่อเข้าถึงประเภทฐานข้อมูลต่างๆ (แบบแทรกหรือแบบเต็มหน้า)

  • เพิ่มคอลัมน์และรายการ: ผู้ใช้สามารถกำหนดคุณสมบัติสำหรับแต่ละรายการในฐานข้อมูล รวมถึงประเภทต่างๆ เช่น ข้อความ ตัวเลข วันที่ เป็นต้น

  • ปรับแต่งมุมมอง: โนชั่นรองรับมุมมองต่างๆ (ตาราง กระดาน แกลเลอรี่) สำหรับการแสดงข้อมูลตามความชอบของผู้ใช้

  • ลิงก์ฐานข้อมูล: ผู้ใช้สามารถสร้างความสัมพันธ์ระหว่างฐานข้อมูลที่แตกต่างกันโดยใช้คุณสมบัติที่เชื่อมโยง ซึ่งช่วยเพิ่มความเชื่อมโยงของข้อมูล

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

ในตอนแรก โนชั่นเก็บบล็อกทั้งหมดในฐานข้อมูล PostgreSQL

ในขณะนั้น ฐานข้อมูล PostgreSQL จัดการทุกอย่างตั้งแต่การจราจรของผู้ใช้ออนไลน์ไปจนถึงการวิเคราะห์และการเรียนรู้ของเครื่องแบบออฟไลน์

ในปี 2021 พวกเขาเริ่มต้นการเดินทางด้วย ETL ที่ใช้ Fivetran เพื่อดึงข้อมูลจาก PostgreSQL ไปยัง Snowflake โดยใช้ 480 คอนเนคเตอร์เพื่อเขียน 480 ส่วนข้อมูลไปยังตาราง Snowflake แบบดิบทุกๆ ชั่วโมง

แต่วิธีนี้มีปัญหาเมื่อข้อมูล PostgreSQL เติบโต:

❌การจัดการคอนเนคเตอร์ Fivetran 480 ตัวเป็นเรื่องยุ่งยาก

❌ผู้ใช้โนชั่นอัปเดตบล็อกบ่อยกว่าการเพิ่มใหม่ รูปแบบการอัปเดตที่หนักหน่วงนี้ชะลอและเพิ่มต้นทุนการดึงข้อมูล Snowflake

❌การบริโภคข้อมูลมีความซับซ้อนและหนัก (AI workloads)

ในปี 2022 พวกเขาได้นำโครงสร้างคลังข้อมูลในบ้านมาใช้ ซึ่งดึงข้อมูลจาก PostgreSQL ไปยัง Kafka โดยใช้ Debezium จากนั้นใช้ Apache Hudi เพื่อเขียนจาก Kafka ไปยัง S3

โปรดทราบว่าเวอร์ชันภาษาไทยได้รับการช่วยเหลือจาก AI ดังนั้นอาจมีข้อผิดพลาดเล็กน้อย

ผู้เขียน

Ai Base Network (ABN), ABN ASIA ถูกก่อตั้งขึ้นโดยคนที่มีรากฐานลึกในวงการวิชาการ มีประสบการณ์การทำงานในสหรัฐอเมริกา ดัตช์ ฮังการี ญี่ปุ่น เกาหลีใต้ สิงคโปร์ และเวียดนาม ABN Asia เป็นที่เราพบกันของวิทยาลัยและเทคโนโลยี ด้วยโซลูชันขั้นสูงและบริการพัฒนาซอฟต์แวร์ที่มีความสามารถ เราช่วยธุรกิจเติบโตและเข้าสู่ฉากโลก ความมุ่งมั่นของเรา: ด่วนขึ้น ดีขึ้น น่าเชื่อถือมากขึ้น ในกรณีส่วนมาก: ราคาถูกด้วย

หากคุณต้องการบริการ IT การให้คำปรึกษาดิจิทัล โซลูชันซอฟต์แวร์ใช้ได้หรือหากคุณต้องการส่งคำขอข้อเสนอ (RFPs) อย่าลังเลที่จะติดต่อเรา คุณสามารถติดต่อเราได้ที่ [email protected] เราพร้อมช่วยเหลือคุณด้านทุกความต้องการทางเทคโนโลยีของคุณทุกเมื่อ

ABNAsia.org

© ABN ASIA