ข้ามไปที่เนื้อหาหลัก

บทความ

Trino: Open-source Distributed SQL Query Engine ประมวลผลคำสั่ง SQL แบบกระจาย วิเคราะห์ข้อมูลขนาดใหญ่ (Big Data Analytics)

โพสต์ล่าสุด

dbt Extract, Load, Transform เปลี่ยนนักวิเคราะห์ เป็นวิศวกร ภายใต้ Analytics Engineering

dbt (Data Build Tool) มีสถาปัตยกรรมแบบ ELT (Extract, Load, Transform) โดยทำหน้าที่ในส่วนของ Transform (T) เพียงอย่างเดียว สถาปัตยกรรมของ dbt ถูกออกแบบมาเพื่อเปลี่ยนนักวิเคราะห์ข้อมูล (Data Analysts) ให้ทำงานได้เหมือนวิศวกรซอฟต์แวร์ (Software Engineers) โดยอาศัยหลักการ Analytics Engineering พัฒนาโดยภาษา Rust  สถาปัตยกรรมหลักของ dbt สามารถแบ่งออกเป็นส่วนสำคัญได้ดังนี้ครับ: 1. โครงสร้างหลัก (Core Components) Models (SQL / Python): หัวใจหลักของ dbt คือไฟล์ .sql (หรือ .py ) ซึ่งก็คือคำสั่ง SELECT ธรรมดา โดย dbt จะนำคำสั่งเหล่านี้ไปสร้างเป็น Table หรือ View ในคลังข้อมูลให้โดยอัตโนมัติ Jinja Templating Engine: dbt ใช้ Jinja เพื่อทำให้ SQL มีความยืดหยุ่น (Dynamic) สามารถใช้คำสั่ง if-else, loops และการเขียนฟังก์ชันซ้ำได้ (Macros) Project Configuration ( dbt_project.yml ): ไฟล์ศูนย์กลางที่ใช้ควบคุมการทำงานของโปรเจกต์ เช่น การตั้งค่าโฟลเดอร์ การกำหนดสิทธิ์ และการบอกว่า Model ไหนควรจะสร้างออกมาเป็น Table หรือ View 2. การบริหารจัดการความสัมพันธ์ (Dependency Management) ref() Function: เ...

Process Distribution Architecture: สถาปัตยกรรมการกระจายกระบวนการประมวลผลในระบบ Distributed Computing

 บทนำ ในยุคที่ข้อมูลมีปริมาณมหาศาลและระบบซอฟต์แวร์ต้องรองรับงานประมวลผลที่ซับซ้อน การใช้คอมพิวเตอร์เพียงเครื่องเดียวอาจไม่เพียงพอต่อความต้องการด้านประสิทธิภาพ ความเร็ว และความสามารถในการขยายระบบ แนวคิด Process Distribution Architecture จึงเป็นแนวทางสำคัญในการออกแบบระบบให้สามารถกระจายงานประมวลผลไปยังเครื่องคอมพิวเตอร์หรือหน่วยประมวลผลหลายตัวได้อย่างมีประสิทธิภาพ สถาปัตยกรรมนี้เกี่ยวข้องกับการแบ่งงาน การจัดตารางการประมวลผล การจัดสรรทรัพยากร การสื่อสารระหว่างโหนด และการติดตามสถานะของงาน เพื่อให้ระบบสามารถทำงานร่วมกันเป็นระบบเดียว แม้ว่าการประมวลผลจริงจะเกิดขึ้นบนเครื่องหรือโหนดที่แตกต่างกันก็ตาม อย่างไรก็ตาม คำว่า Process Distribution Architecture อาจใช้แตกต่างกันตามบริบททางวิศวกรรม บทความนี้จึงใช้คำดังกล่าวในความหมายกว้างของ สถาปัตยกรรมสำหรับการกระจายและบริหารกระบวนการประมวลผลในระบบแบบกระจาย (Distributed Processing Architecture) โดยครอบคลุมทั้งระดับ Process, Task และ Worker 1. Process Distribution Architecture คืออะไร? Process Distribution Architecture คือแนวทางการออกแบบสถาปัตยกรรมระ...