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

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

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

ABNAsia.org

© ABN ASIA