Database

Database

ข่าวและบทความที่เกี่ยวข้อง

All Database

PostType Filter En

บทความ

การเชื่อมต่อกับระบบฐานข้อมูลผ่าน RStudio ด้วย R Package "odbc"
สำหรับผู้ใช้ภาษา R และโปรแกรม RStudio ในงานวิเคราะห์ข้อมูล บทความนี้จะขอแนะนำ R package ชื่อ odbc ที่เป็นหนึ่งใน package ที่นิยมในการเชื่อมต่อและ query ข้อมูลจากระบบฐานข้อมูล (database system) ที่เป็นที่นิยมและใช้กันอย่างแพร่หลาย อาทิเข่น SQL Server, Oracle, MySQL, PostgreSQL, SQLite, Hive, Impala เป็นต้น คำว่า ODBC ย่อมาจาก Open Database Connectivity ดังนั้น R package “odbc” จึงเป็น package ที่สามารถที่ใช้กับระบบฐานข้อมูลได้หลากหลายต่างจาก R package เช่น RPostgres RMariaDB, หรือ bigrquery ที่ใช้เฉพาะเจาะจงกับระบบฐานข้อมูลของตัวเองเท่านั้น จึงไม่เป็นที่น่าแปลกใจว่า R package “odbc” จึงเป็นที่นิยมสำหรับผู้ใช้ภาษา R สำหรับการใช้งาน R package “odbc” จะใช้ควบคู่กับ R package ตระกูล dplyr ที่ชื่อ “dbplyr” ซึ่งจะเป็น package หลักที่ใช้ในการปรับข้อมูลให้อยู่ในรูปแบบที่ต้องการ เพื่อทำการวิเคราะห์ข้อมูล โดยตัว R package “dbplyr” จะแปลงคำสั่งที่ใช้ในการปรับข้อมูลจากภาษา R เป็นภาษา SQL เพื่อส่งคำสั่งนั้นไปติดต่อกับระบบฐานข้อมูล ผู้ที่คุ้นเคยกับภาษา SQL สามารถที่จะเขียนคำสั่ง SQL โดยตรงผ่านโปรแกรม RStudio ได้อย่างสะดวก เรามาเริ่มกันที่คำสั่งที่ต้องใช้ในการเรียกใช้ R package “odbc” และตัวอย่างคำสั่งที่ใช้ในการเชื่อมต่อกับระบบฐานข้อมูล  พร้อมกับตัวอย่างคำสั่งอื่น ๆ ที่เกี่ยวข้องกับการเรียกข้อมูลในระบบฐานข้อมูล อาทิเช่น การลิสต์รายชื่อของชุดข้อมูลที่อยู่ในระบบฐานข้อมูล การลิสต์รายชื่อของตารางข้อมูลที่อยู่ในแต่ละชุดข้อมูล พร้อมกับตัวอย่างการ query ข้อมูลจากระบบฐานข้อมูล 1. การเรียกใช้ R package “odbc” ในการเรียกใช้ R package “odbc” ผู้ใช้ต้องติดตั้ง R package “odbc” โดยใช้คำสั่ง install.packages() บนเครื่องก่อน แล้วจึงจะสามารถเรียกใช้ R package “odbc” นี้ได้โดยใช้คำสั่ง library() 2. การเชื่อมต่อกับระบบฐานข้อมูล ผู้ใช้สามารถเชื่อมต่อกับระบบฐานข้อมูลได้โดยใช้คำสั่ง dbConnect() โดยปกติเลข port ของระบบฐานข้อมูล จะใช้เป็นค่าดีฟอลต์ (Default) เช่น SQL Server จะใช้เลข 1433, Postgres จะใช้เลข 5432, Hive จะใช้เลข 10000 เป็นต้น ดังนั้น ผู้ใช้ต้องตรวจสอบเลข port ให้ถูกต้องเสมอ หากไม่สามารถ connect หรือเชื่อมต่อกับระบบฐานข้อมูลได้ ผู้ใช้อาจต้องตรวจสอบว่า ได้มีการติดตั้ง ODBC Data Source บนเครื่องคอมพิวเตอร์แล้วหรือยัง ผู้ใช้สามารถใช้คำสั่ง odbcListDataSources() เพื่อลิสต์ดูชื่อ ODBC Data Source ที่มีอยู่แล้วได้ 3. ตัวอย่างคำสั่งอื่น ๆ ที่เกี่ยวข้องกับการเรียกข้อมูลในระบบฐานข้อมูล ผู้ใช้สามารถใช้คำสั่ง เช่น odbcListObjects() เพื่อดูว่า ในระบบฐานชัอมูลมีชื่อชุดข้อมูล (schema) อะไรบ้างและเป็นตารางจริง (table) หรือเป็นเพียงแค่วิลล์ (view) เท่านั้น หรือใช้คำสั่ง odbcListObjects() และ odbcListColumns() เพื่อดูชื่อตารางที่อยู่ในแต่ละชุดข้อมูลและดูชื่อคอลัมน์ในตารางนั้น ๆ 4. ตัวอย่างการ query ข้อมูลจากระบบฐานข้อมูล ผู้ใช้สามารถใช้คำสั่ง dbGetQuery() เพื่อใช้คำสั่ง SQL ในการจัดการกับข้อมูลบนระบบฐานข้อมูลได้ โดยระบุชื่อตารางใน FROM clause และต้องเป็นในรูปแบบ  [database].[schema].[object] อาทิเช่น ชุดข้อมูลชื่อ “GBDi” ที่มี schema ชื่อ “dbo” มีตาราง 2 ตาราง ชื่อ “table_abc” และ ชื่อ “table_ xyz” และมีคอลัมน์ เช่น country, year, new_born และ population เป็นต้น สำหรับคำสั่งอื่น ๆ เช่น การสร้างตารางบนระบบฐานข้อมูล ก็สามารถทำได้ผ่าน RStudio เช่นกัน โดยใช้คำสั่ง dbExecute() และ dbWriteTable() เพื่อสร้างตารางใหม่บนระบบฐานข้อมูล ผู้เขียนหวังว่า บทความนี้จะช่วยให้นักวิเคราะห์ข้อมูลมีความมั่นใจมากขึ้น หากต้องทำการวิเคราะห์ข้อมูลจากระบบฐานข้อมูลต่าง ๆ ไม่ว่าจะเป็นข้อมูลแบบ Big Data หรือ Small Data โดยตัว R package “odbc” นี้ก็สามารถทำให้เราเชื่อมต่อ (Connect) ปรับข้อมูล (Transform) และดึงข้อมูลมาวิเคราะห์ (Analyze) บนเครื่องคอมพิวเตอร์ของเราได้อย่างสะดวกสบาย หมายเหตุ: R package “odbc” กับ R package “RODBC” เป็น R package ที่แตกต่างกันแม้จะชื่อคล้ายกัน ข้อมูลอ้างอิง: https://cran.r-project.org/web/packages/odbc/odbc.pdf https://db.rstudio.com/r-packages/odbc/ บทความโดย วรพิชญา ระเบียบโลกตรวจทานและปรับปรุงโดย ดวงใจ จิตคงชื่น
27 October 2022

บทความ

เชื่อมต่อ BigQuery ด้วย Python ใน 3 ขั้นตอน
การสำรองและกู้คืนข้อมูล PostgreSQL และการ sync ไฟล์ด้วย rsync แบบอัตโนมัติ
22 August 2022

บทความ

Data Engineer (DE) ผู้อยู่เบื้องหลังโลก Big Data
องค์กรส่วนใหญ่รับรู้ว่าข้อมูลนั้นมีความสำคัญมากแค่ไหน ดังนั้นจึงต้องการคนมาดูแลเรื่องนี้โดยเฉพาะ เราเรียกคนเหล่านี้ว่า Data Engineer ด้วยเหตุนี้ Data Engineer จึงเป็นที่ต้องการในตลาดแรงงานมากขึ้นทุกวัน โดยในบทความนี้จะขอกล่าวถึงบทบาทของ Data Engineer ว่าคืออะไร และมีหน้าที่อย่างไรบ้าง
1 August 2022

บทความ

มารู้จักกับ OLAP หรือ ฐานข้อมูลการประมวลผลออนไลน์เชิงวิเคราะห์
ฐานข้อมูลการประมวลผลออนไลน์เชิงวิเคราะห์ หรือ OLAP จะช่วยเพิ่มความเร็วในการค้นหาข้อมูลได้ในหลากหลายมิติที่พบได้ทั่วไปในแอปพลิเคชัน และการจัดทำรายงานต่าง ๆ ( OLAP คือ อะไร ) ฐานข้อมูลการประมวลผลออนไลน์เชิงวิเคราะห์ (Online Analytical Processing – OLAP) ถ้าให้อธิบายสั้น ๆ มันคือเทคโนโลยีตัวหนึ่งที่จะช่วยให้การวิเคราะห์ข้อมูลมหาศาลทำได้ดีขึ้น ถูกสร้างขึ้นมาเพื่อการสืบค้น และการค้นหาข้อมูลเชิงวิเคราะห์ ซึ่งแตกต่างจากการประมวลผลบนฐานข้อมูลการประมวลผลธุรกรรมออนไลน์ (OLTP) ที่มักจะใช้เวลานาน ในการส่งกลับผลลัพธ์ เพราะมีสาเหตุหลายประการดังต่อไปนี้ ประการแรก ฐานข้อมูล OLTP มักจะอยู่ในรูปนอร์มัลฟอร์มที่ 3 (ตามตำราการสร้างฐานข้อมูล เราจะถูกสอนกันว่าต้องจัดเก็บข้อมูลแยกเป็นหลาย ๆ ตาราง เป็นนอร์มัลฟอร์ม ที่มีระดับหนึ่ง สอง สาม สี่… แต่ที่นิยมสุด คือ ระดับสาม เพื่อให้การเก็บข้อมูลไม่ซ้ำซ้อน และเข้าใจง่าย) ดังนั้นเมื่อเราค้นหาข้อมูลเพื่อการวิเคราะห์ เราต้องทำการ JOIN ที่ซับซ้อนกันในหลายตาราง ซึ่งอาจจะต้องเสียเวลาในการคํานวณเป็นอย่างมาก ประการที่สอง ถ้าจะเพิ่มประสิทธิภาพความเร็วในการเขียนข้อมูลของฐานข้อมูล OLTP เราจะต้องมี Index น้อย ซึ่งขัดกับการสืบค้นข้อมูลเพื่อวิเคราะห์ที่ต้องมี Index ปริมาณมากถึงจะมีคุณภาพ ประการที่สาม ฐานข้อมูล OLTP มักจะถูกใช้ในกลุ่มธุรกิจบริการ ซึ่งมักจะมีธุรกรรมย่อย ๆ ปริมาณมาก และเกิดขึ้นอย่างต่อเนื่อง ซึ่งอาจทําให้เกิดความขัดแย้ง เพราะส่วนใหญ่ เมื่อเราดำเนินการกับธุรกรรมย่อย ๆ จำนวนมากก็จะใช้ Index มากตาม และเมื่อเรากำลังค้นหาข้อมูลเชิงวิเคราะห์ที่ใช้เวลานาน เลยทำให้ทั้งการทำธุรกรรม และการค้นหาข้อมูลทำงานช้าลงไปด้วย ฐานข้อมูล OLAP จะแก้ปัญหาที่ได้กล่าวไปข้างต้น โดยแยกฐานข้อมูลออกมา และปรับให้เหมาะสมกับการค้นหา หรือสืบค้นเชิงวิเคราะห์ นอกจากนี้ยังมีหลายวิธีในการเพิ่มประสิทธิภาพฐานข้อมูลสําหรับการวิเคราะห์ที่เราจะขอพูดถึงต่อไปนี้ มารู้จักกับ OLAP ฐานข้อมูล OLAP ได้ถูกออกแบบมา เพื่อเพิ่มมิติในการวิเคราะห์ข้อมูล ให้สามารถวิเคราะห์ข้อมูลปริมาณมากจากคลังข้อมูลหรือ Data Mart ได้รวดเร็วขึ้น โดยมีหลักการคือ แยกข้อมูลเชิงสัมพันธ์ออกเป็นรูปแบบหลายมิติที่เรียกว่า OLAP Cube   เริ่มต้นจากการโหลดข้อมูลที่ต้องการวิเคราะห์ลงในหน่วยความจํา จัดเก็บข้อมูลตามลําดับคอลัมน์ และใช้ CPU หลายตัวควบคู่กันในการวิเคราะห์ (เช่น การประมวลผลแบบขนานหรือที่เรียกว่า MPP – Massively Parallel Processing) ETL และ ELT การใช้ OLAP มีอุปสรรคอย่างหนึ่งก็คือ การสร้างกระบวนการ หรือ Process ในการนําข้อมูลออกจากฐานข้อมูลธุรกรรม และเข้าสู่ฐานข้อมูลการวิเคราะห์ ซึ่งเราคุ้นเคยดีว่าระบบจะจัดข้อมูลเป็นชุดข้อมูลทุกคืน เพื่อแยก แปลง และโหลด (ETL) ข้อมูล แต่เมื่อฮาร์ดแวร์ และซอฟต์แวร์ได้รับการปรับปรุงให้ดีขึ้น เราจึงเริ่มใช้การสตรีมข้อมูลอย่างต่อเนื่องมาแทนที่ชุดการทำงานที่เป็น ETL Batch จนทำให้ในบางครั้งขั้นตอนการแปลงข้อมูล ถูกเลื่อนสลับไปทำหลังจากโหลดแทนด้วยซ้ำ (เลยกลายเป็น ELT แทน)  และด้วยเหตุผลนี้เอง ELT จึงถูกนำมาใช้มากขึ้น เพราะตอบโจทย์ในการทำวิศวกรรมสําหรับ Machine Learning ที่ทํางานกับฐานข้อมูลการวิเคราะห์ตลอดเวลา การเก็บข้อมูลแบบเรียงเป็นคอลัมน์ ฐานข้อมูลธุรกรรมจะเก็บข้อมูลในตารางเป็นแถว ๆ ไว้ด้วยกัน ซึ่งมันจะทำให้คุณสามารถดูข้อมูลได้ง่าย แต่ถ้าเราใช้ฐานข้อมูล OLAP การจัดเก็บข้อมูลจะถูกเรียงตามคอลัมน์ไว้ด้วย เป็นการรวมข้อมูลหลาย ๆ ค่าเข้าด้วยกันที่จะทำให้คุณสามารถดูข้อมูลได้ง่ายขึ้นกว่าเดิมอีก (ยกตัวอย่างแต่ละแถว เราจะเก็บข้อมูลรายชื่อลูกค้า อายุ หรือยอดที่ซื้อ แต่ส่วนใหญ่เวลาเราวิเคราะห์ข้อมูล เรามักจะหาเป็นรายคอลัมน์มากกว่าเป็นแถว เช่น หาค่าเฉลี่ยอายุลูกค้า ยอดขายแต่ละจังหวัด ซึ่งหากฐานข้อมูลเก็บเป็นคอลัมน์ มันจะคำนวณได้เร็วกว่าเก็บแบบเป็นแถวแน่ ๆ ) นอกจากนี้การเก็บคอลัมน์ที่ใช้งานไว้ในหน่วยความจำ ทำให้การทำงานของฐานข้อมูล OLAP รวดเร็วขึ้น ไม่เพียงเท่านี้ การรวมคอลัมน์ของข้อมูลที่คล้ายกันจะทำให้การจัดเก็บแบบคอลัมน์ใช้ความจำน้อยลงไปอีก OLAP Cube คืออะไร OLAP Cubes หรือ Hypercubes คือ วิธีการจัดระเบียบข้อมูลด้วยมิติลําดับชั้น เพื่อให้สามารถดําเนินการวิเคราะห์ได้อย่างรวดเร็วโดยไม่ต้องมี SQL JOINs และ UNIONS มากมายนัก OLAP cubes จะมาปฏิวัติระบบ Business Intelligence (BI) ไปเลย โดยก่อนหน้านี้นักวิเคราะห์ตัวเลขจะต้องมาทำการสรุปสิ่งที่ต้องการสืบค้นในทุก ๆ วัน และจะดำเนินการหาผลลัพธ์ของการวิเคราะห์ในวันถัดไป แต่หลังจากมีระบบฐานข้อมูล OLAP Cubes วิศวกรข้อมูลสามารรถรันงานเพื่อสร้าง Cube ได้ในตอนกลางคืนและนักวิเคราะห์จะสามารถหาคำตอบ บอกสิ่งที่ต้องการสืบค้นแบบโต้ตอบReal-time กับ Cubes ในตอนเช้าได้เลย OLAP Cubes รองรับการจัดการข้อมูลแบบ “สไลซ์และทอยลูกเต๋า”  ทั้ง 5 ชนิด ซึ่งการสไลซ์หมายถึงหั่นแยก Cube ที่มีมิติไม่มากด้วยเซ็ตมิติหนึ่งค่าเป็นค่าเดียว (เลยคล้าย ๆ กับการหั่นบาง ๆ ) เช่น MONTH=6 ส่วนลูกเต๋าหมายถึงการดึง  Sub-cube ที่มีมิติข้อมูลหลายตัว ตั้งค่าเป็นค่าเดียว เช่น STORE=95 AND MONTH=6 และมาดูรายละเอียดให้ลึกลงไป การดูรายละเอียดแนวลึกช่วยให้นักวิเคราะห์สามารถเปลี่ยนมุมจากการดูแค่ผลสรุป  ไปเป็นการดูค่าโดยละเอียดได้ และเราจะมีค่าที่รวบรวมหรือสรุปผลข้อมูลตามแต่ละคอลัมน์ แต่ละมิติ ส่วนการทำ Pivot คือการหมุน cube เพื่อดูมุมมองอื่นของชุดข้อมูล ซึ่งการหมุน OLAP Cube มีประสิทธิภาพมากกว่าการทำบน Excel อีกด้วย โดยเราจะใช้ภาษา MDX ซึ่งเป็นชุดคำสั่งรูปแบบ SQL ในการค้นหา OLAP Cubes ในช่วงไม่กี่ปีที่ผ่านมา OLAP Cubes ส่วนใหญ่ถูกแทนที่โดยคลังข้อมูลที่ใช้ที่เก็บข้อมูลแบบคอลัมน์ที่บีบอัด (ควรอยู่ในหน่วยความจํา) และ MPP (Massively Parallel Processing คือ ฐานข้อมูลชนิดหนึ่งที่ออกแบบมาเพื่อทำหน้าที่เป็น OLAP Database) MOLAP คืออะไร? MOLAP คือ การประมวลผลการวิเคราะห์ทางออนไลน์หลายมิติ (MOLAP) โดยเป็นต้นแบบของ OLAP ที่ใช้ OLAP Cubes แบบหลายมิติ ซึ่งการใช้การประมวลผลเบื้องต้นของ OLAP Cubes จะใช้เวลานานมาก เมื่อเทียบกับ MOLAP ที่สามารถวิเคราะห์ข้อมูลได้อย่างรวดเร็ว โดย MOLAP จะมีประสิทธิภาพมากที่สุด เมื่อเราใช้ Data Field เป็นตัวเลขที่สามารถรวมกันได้ ROLAP คืออะไร? การทำงานของ Relational OLAP...
7 May 2022

บทความ

5 เคล็ดลับ เลือกฐานข้อมูลอย่างไรให้เหมาะสม
การเลือกฐานข้อมูลที่ผิดสำหรับแอปพลิเคชันที่ต้องใช้ข้อมูลจำนวนมาก เป็นเหมือนการเปิดประตูสู่ความท้าทายและความซับซ้อนให้เป็นทวีคูณทั้ง ๆ ที่ไม่จำเป็น เชื่อเถอะว่าเลือกฐานข้อมูลให้ถูกแล้วชีวิตจะง่ายขึ้น ( เลือกฐานข้อมูล อย่างไรให้เหมาะสม ) ฐานข้อมูลที่คุณเลือกในวันนี้จะส่งผลต่อแอปพลิเคชันและความพยายามในการพัฒนาของคุณในอนาคต ทว่าการเลือกฐานข้อมูลของนักพัฒนามักเป็นการตัดสินใจทางด้านอารมณ์ และนักพัฒนามักเลือกฐานข้อมูลโดยพิจารณาจากสิ่งที่แอปพลิเคชันของตนต้องการในตอนเริ่มต้นเท่านั้น ส่วนใหญ่นักพัฒนาอาจจะใช้กึ๋นของตัวเองตัดสินใจ เพราะพวกเขาละเลยการวิเคราะห์ว่าฐานข้อมูลจะทำงานดีกับแอปพลิเคชันของพวกเขาในวันนี้และในอนาคตหรือไม่ นักพัฒนาอาจรู้สึกหนักใจที่ต้องเลือกว่าจะใช้ฐานข้อมูลตัวไหน เพราะมันมีอยู่มากมายซึ่งมันจะสร้างความชะงักงัน ตามด้วยวิธีเลือกฐานข้อมูลที่ต้องสอดคล้องว่าแอปพลิเคชันเริ่มต้นขึ้นอย่างไร แต่คุณไม่เคยรู้หรอกว่าแอปจะมีเคสการใช้งานทั้งหมดเป็นอย่างไร และความจริงก็คือการใช้งานในแอปพลิเคชันมักจะเริ่มต้นจากง่าย ๆ ก่อนจะซับซ้อนขึ้นเมื่อเวลาผ่านไป โดยทั่วไปนักพัฒนาอาจเริ่มต้นด้วย PostgreSQL จากนั้นจึงเพิ่ม MongoDB เนื่องจากพวกเขาต้องการทำงานกับข้อมูลกึ่งมีโครงสร้างหรือไม่มี เลยต้องการอะไรที่ยืดหยุ่นขึ้น อย่าง ProstgreSQL ก็จะเก็บข้อมูลที่อยู่ในรูปแบบเป็นตารางเหมือน Excel ซึ่งเคสนี้ถือว่าเป็นข้อมูลที่มีโครงสร้างชัดเจนแต่โลกสมัยใหม่ มันมีข้อมูลที่เริ่มไม่เป็นโครงสร้างเยอะขึ้นเลยต้องมาใช้ MongoDB ซึ่งเหมาะกับข้อมูลที่โครงสร้างไม่ตายตัวกว่าแทน จากนั้นนักพัฒนาจึงเพิ่ม Elasticsearch ซึ่งก็คือการสร้าง Search Engine เหมือนเช่น Google ในแอปเราเอง เพื่อค้นหาพวก Log ที่ข้อมูลที่บันทึกประวัติ กิจกรรมต่าง ๆ ที่เกิดขึ้นบนแอป หรือ Faceted Search ค้นหาแบบสร้างหมวดหมู่ให้ก่อน (เช่นแอปเราขายเสื้อผ้าเราน่าจะเดาได้ว่าลูกค้าน่าจะค้นหาด้วยไซส์ ด้วยสี) และเมื่อเหล่านักพัฒนาพบว่าระบบทำงานช้า เขาก็จะเอา Redis ซึ่งเป็นเทคโนโลยีเรื่อง Cache (คือเทคโนโลยีที่ทำให้อะไรที่เราเคยค้นหามาแล้ว พอมาหาใหม่อีกทีมันจะเร็วขึ้น) มาช่วยในส่วนนี้ หรือถ้าพวกเขาต้องการทำการวิเคราะห์ นักพัฒนาก็จะสร้างคลังข้อมูล เช่น Snowflake มาอีก ผลจากการมีข้อมูลเยอะจนต้องขยายฐานข้อมูล รวมถึงการใช้ ETL (Extract, Transform, and Load คือบางทีข้อมูลที่เราได้มาต้องมีการดึง =Extract เอามาแปลรูปเช่นเปลี่ยน ค.ศ. เป็น พ.ศ. =Transform และเอาไปใส่ที่ระบบอื่น=Load) ที่มีค่าใช้จ่ายสูง ทำให้นักพัฒนาเกิดความกังวลและสับสนเวลาย้ายข้อมูลระหว่างฐานข้อมูล แต่มันก็ไม่จำเป็นต้องทำเป็นนี้เสมอไป เราขอเสนอวิธีการเลือกฐานข้อมูลที่ต่างออกไปเพื่อตอบสนองทุกความต้องการของนักพัฒนาอย่างคุณ 1.มองไปให้ไกลกว่าอนาคตอันใกล้ การโยกย้ายฐานข้อมูลและการปรับแพลตฟอร์มใหม่ไม่ใช่เรื่องแปลก ตอนเลือกฐานข้อมูล นักพัฒนาควรคำนึงไว้ว่าคุณกำลังเลือกสิ่งที่ยากต่อการปรับเปลี่ยนและทำให้คุณต้องติดกับการเก็บข้อมูลรูปแบบนั้น ๆ ลองนึกดูว่าฐานข้อมูลที่คุณเลือกมีคุณสมบัติตรงตามข้อความต้องการปัจจุบันของคุณและสามารถช่วยให้คุณดำเนินการต่อในอนาคตได้หรือไม่ ถามตัวเองด้วยคำถามเหล่านี้: คุณอาจจะเอนเอียงไปที่ MongoDB แล้วปล่อยผ่านให้มันเป็นแบบนั้น แต่จำไว้ว่าการตัดสินใจอย่างฉับพลันในวันนี้อาจทำให้คุณเสียใจในภายหลัง 2. หลีกเลี่ยงความสับสนเมื่อคุณขยายระบบ ฐานข้อมูลแบบเดิมจะใช้สถาปัตยกรรมแบบ Scale-up โดยมีหลักการคือเวลาระบบขยาย ต้องปรับให้ทรัพยากรภายใต้การออกแบบเดิมสามารถทำงานให้เยอะขึ้น เก่งขึ้น ซึ่งหมายความว่าหากคุณต้องการทำงานให้เร็วขึ้น คุณต้องเปลี่ยนไปใช้ฮาร์ดแวร์ที่ใหญ่ขึ้น ซึ่งเป็นการเพิ่มค่าใช้จ่ายจำนวนมาก แต่โดยทั่วไป ฐานข้อมูลสมัยใหม่จะอิงตามสถาปัตยกรรมแบบ Scale-out โดยมีหลักการคือไปเพิ่มคนมาช่วยทำแทน แน่นอนคุณยังต้องเพิ่มฮาร์ดแวร์แต่ราคามันจะเป็นสัดส่วนกับมูลค่าที่คุณต้องเพิ่ม ดังนั้นมันอาจจะเป็นทางเลือกที่ดีกว่า ฐานข้อมูลแบบเก่าอย่าง MySQL และ PostgreSQL ได้มีการแก้ไขในความสามารถในการขยายขนาด โดยวิธีการทั่วไปที่ใช้ก็มักจะเกี่ยวข้องกับการแบ่งส่วนข้อมูลหรือแบ่งฐานข้อมูลออกเป็นส่วน ๆ (Sharding) ผลลัพธ์ที่ได้คือ แทนที่จะมีฐานข้อมูล MySQL ขนาดใหญ่เพียงก้อนเดียว คุณอาจมี MySQL เล็ก ๆ กว่า 10 ก้อน แต่สิ่งที่คุณต้องควรระวังคือหากคุณเลือกผู้ที่จะใช้วิธีนี้ในการขยายระบบ และต้องการเรียกค้นข้อมูลที่ต้องการแชร์ข้อมูลระหว่างชาร์ดต่าง ๆ คุณอาจประสบปัญหา อย่างเช่น หากเราผู้จะหาว่าใครใช้งานแอปมากที่สุดในเขต หรือภูมิภาคนี้ ข้อมูลการใช้งานที่ถูกกระจายเรียกใช้ระหว่างฐานข้อมูลยิบย่อยหลายก้อนย่อมถูกนำมาคำนวณเปรียบเทียบร่วมกันได้ลำบาก 3. ทำงานได้ทั้งแนวตั้งและแนวนอน การเก็บข้อมูลเชิงคอลัมน์ Column Stores เหมาะมากสำหรับการวิเคราะห์เพราะช่วยให้คุณสแกนข้อมูลจำนวนมากได้อย่างรวดเร็ว ในขณะที่ถ้าเก็บแบบเชิงแถว Row Stores จะเหมาะกับงานที่สนใจข้อมูลของทั้งรายการมากกว่า ซึ่งสมัยก่อนในการเลือกระบบฐานข้อมูลคุณต้องเลือกระหว่างพื้นที่เก็บข้อมูลเชิงคอลัมน์และหน่วยเก็บเชิงแถว แต่ตอนนี้คุณไม่จำเป็นต้องเลือกแบบใดแบบหนึ่งอีกต่อไป เพราะฐานข้อมูลสมัยใหม่เป็นแบบรวมหน่วยแบบเก็บเชิงแถวและคอลัมน์ไว้ในตารางเดียวกันแล้ว ในกรณีนี้ ข้อมูลจะถูกเขียนลงในที่จัดเก็บแถวในหน่วยความจำเพื่อให้สามารถทำธุรกรรมและค้นหาได้รวดเร็วมาก ๆ ในขณะที่เทคโนโลยี Data Quiesces จะทำให้ข้อมูลที่ไม่ได้เอามาใช้วิเคราะห์จะถูกเขียนกลับไปที่ที่เก็บคอลัมน์ ซึ่งช่วยให้คุณวิเคราะห์ข้อมูลได้อย่างมีประสิทธิภาพเช่นกัน 4. ทำให้เร็วขึ้น แต่ไม่ใช่ที่กายภาพ ฐานข้อมูลแบบดั้งเดิมได้รับการออกแบบโดยใช้ดิสก์แม่เหล็กซึ่งเป็นปัจจัยหลักของเวลาแฝงที่ใช้ค้นหา ในขณะที่ผู้จำหน่ายฐานข้อมูลได้ออกแบบ Algorithm เพื่อลดเวลาแฝงนั้นให้เหลือน้อยที่สุด แต่ก็มีการจำกัดทางกายภาพสำหรับระยะเวลาที่ใช้ในการหมุนดิสก์และหัวดิสก์เพื่อให้ได้ตำแหน่งอยู่ดี คุณลดความล่าช้าที่เกี่ยวข้องกับการอินพุต/เอาต์พุตได้ผ่านการใช้อุปกรณ์เก็บข้อมูลชนิดใหม่ที่ไม่มีชิ้นส่วนเคลื่อนไหวอย่าง Solid State Drive (SSD) ซึ่งจัดการข้อมูลได้เร็วกว่าดิสก์ที่หมุนได้ถึง 200 เท่า หากเป็นการเขียนข้อมูลเพิ่มลงในฐานข้อมูลที่ออกแบบไว้ คุณเพียงแค่ต้องต่อท้ายเข้าไป แต่หากคุณแค่อ่านหรือค้นหาข้อมูล คุณแทบจะไม่จำเป็นต้องยุ่งกับดิสก์เลย 5. เข้าใจให้น้อยลงแต่ได้ประสิทธิภาพมากขึ้น ฐานข้อมูลในอดีตขาดความเร็ว ความยืดหยุ่น และความสามารถในการรองรับแอปพลิเคชันทั้งหมดของคุณ ด้วยเหตุนี้ ธุรกิจจำนวนมากที่มีการดำเนินการมายาวนานจึงได้รวบรวมฐานข้อมูลที่แตกต่างกันจำนวนมากเมื่อเวลาผ่านไป แอปพลิเคชันสมัยใหม่ที่มีการใช้ข้อมูลจำนวนมากย่อมต้องการเทคโนโลยีฐานข้อมูลรูปแบบใหม่ ฐานข้อมูลที่เลือกใช้จำเป็นต้องเอื้อให้มีการขยายขนาดได้อย่างมีประสิทธิภาพและเอื้อต่อความเรียบง่ายในเชิงสถาปัตยกรรมไปพร้อมกัน การออกแบบฐานข้อมูลควรรองรับการใช้งานทั้งในเชิงธุรกรรม (เพิ่ม แก้ไข ลบ ข้อมูลในทะเบียน) และในเชิงการวิเคราะห์ รองรับการสืบค้นบนคลังข้อมูลขนาดใหญ่เพื่อการวิเคราะห์ได้อย่างรวดเร็วและพร้อมกันจากหลากหลายการเรียกใช้ รวมไปถึงครอบคลุมข้อมูลที่หลากหลายประเภทตามการใช้งาน บทความโดย Jordan Tiganiเนื้อหาจากบทความของ InfoWorldแปลและเรียบเรียงโดย วิน เวธิตตรวจทานและปรับปรุงโดย พีรดล สามะศิริ
5 May 2022

บทความ

เทคโนโลยี Database : พัฒนาการเพื่อหลอมรวมกับ Machine Learning และการจัดเก็บข้อมูล
เมื่อ Bob Van Luijt ซีอีโอของ SeMI Technologies ดูประวัติความเป็นมาของ Database เขาเน้นย้ำถึงคลื่นแห่งความเปลี่ยนแปลงที่แตกต่างกันในแต่ละครั้ง คลื่นแรกคือโลกของ SQL ที่ย่อมาจาก Structured Query Language ซึ่งเป็นภาษาที่ใช้ในการจัดการฐานข้อมูลซึ่งได้รับการยอมรับมากที่สุดในโลก เพื่อจัดการกับฐานข้อมูล โดยที่ข้อมูลทั้งหมดจัดวางอย่างเป็นระเบียบในตารางสี่เหลี่ยม คลื่นถัดไปคือการปฏิวัติ NoSQL หรือ Not only SQL ก็มาถึง เป็นยุคที่มีความยืดหยุ่นของรูปแบบข้อมูล โดยข้อมูลไม่จำเป็นต้องมาจัดเก็บในตารางสี่เหลี่ยมอีกต่อไป และแต่ละรายการไม่จำเป็นต้องมีเก็บ Field ที่เหมือนกัน ยิ่งตอนนี้บริษัทของเขากำลังจะเอา Weaviate เข้าสู่ตลาด นี่เป็นส่วนหนึ่งของคลื่นลูกใหม่ “Database ที่ใช้ AI” ผสานพลังกับ Machine Learning เข้ากับการจัดเก็บข้อมูล ( เทคโนโลยี Database ) โมเดลใหม่นี้ไม่เพียงแค่จะดึงศักยภาพของ AI Algorithm ออกมาเท่านั้น แต่จะไปถึงขั้นพัฒนา Search Engine ที่มีความยืดหยุ่นกว่า ซึ่งไม่ได้จำกัดการค้นหาการจับคู่ที่ตรงกันอย่าง Database ในโลกแบบเดิมต้องการการสะกดชื่อที่ถูกต้องหรือรหัสยืนยันที่ถูกต้อง แต่ Weaviate สามารถค้นหารายการที่คล้ายคลึงกันมากที่สุด ความคล้ายคลึงกันหมายความว่าอย่างไร นั่นยังคงเป็นคำถามเปิดกว้างสำหรับผู้ใช้หลาย ๆ คน ซึ่งส่วนใหญ่จะไปในทางกำหนดวิธีการคำนวณว่าข้อมูลในของสองชิ้น คิดออกมามีค่าใกล้หรือห่างกันเพียงใด การค้นหาค่ารายการที่ใกล้เคียงที่สุดใน Database สามารถทำได้โดย การหาตัวชี้วัดหรือวิธีการระบุความหมายของการอยู่ใกล้หรือไกลกัน โดยคิดมาจากหลาย ๆ Field และกำหนดโดย AI ยกตัวอย่างเช่น เราอยากเทียบว่า งูหลามกับงูเหลือมคล้ายกันยังไง เราก็เอาค่าต่าง ๆ เช่น ความยาวของงู ขนาดรอบวง สีของงู และแปลงค่าเฉดสี น้ำหนัก มาใส่ลงในแต่ละ Field และก็คำนวณ ว่ามันแตกต่างกันมากน้อยอย่างไร SeMI Technologies ซึ่งเป็นผู้ระดมทุนหลัก ในการที่พัฒนา Weaviate ซึ่งเป็น Database แบบ Open Source ที่เป็นระบบที่ใคร ๆ ก็สามารถมาช่วยพัฒนาได้ ไม่ได้มีใครเป็นเจ้าของ บริษัทต่าง ๆ สามารถดาวน์โหลด Code หรือซื้อ Weaviate ที่เป็นบริการ Outsource ก็ได้ โดยผู้ใช้ Weaviate หลายคนอาศัยแบบจำลองที่ Weaviate  สร้างไว้ทั้งในภาษาอังกฤษและภาษาอื่น ๆ ที่เป็นที่นิยม มีแบบจำลองอันนึงที่สร้างขึ้นจากบทความ Wikipedia ทั้งหมดที่ SeMI ทำไว้และเปิดให้ผู้ที่สนใจก็สามารถเอาไปทดลองได้ และยังมีโมเดลที่สร้างไว้อีกจำนวนหนึ่งที่พร้อมใช้งานอย่างเช่น Haystack ของ Deepset (โมเดลที่สร้างเพื่อพัฒนาคอมพิวเตอร์เข้าใจภาษามนุษย์มากยิ่งขึ้น) ที่ใช้การค้นหาเชิงความหมาย – Semantic Search (ค้นหาผลโดยพิจารณาจากความตั้งใจในการค้นหา ไม่ใช่แค่คำหลัก) หรือการค้นหาเอกสารของ Jina.ai (เป็นโมเดลอีกอันที่พยายามให้ AI ช่วยเราค้นหาได้ดีขึ้นโดยใช้หลักการ Semantic Search) Database เวกเตอร์คืออะไร? กลไกหลักของ Weaviate จะสามารถทำงานกับชุดข้อมูลต่าง ๆ ได้แบบอิสระ จึงเป็นเหตุผลที่บางคนเรียกระบบเหล่านี้ว่า “Database เวกเตอร์” (คือไปได้ทุกทิศทาง) “การใช้งานส่วนใหญ่ยังคงอยู่ในแบบตัวอักษร” โดย Van Luijt กล่าวไว้ว่า “แต่สังเกตได้ว่ามีคนจำนวนมากขึ้นเรื่อย ๆ เริ่มเข้าใจและพูดว่า ‘โอ้โห ถ้าฉันสามารถค้นหาแบบนี้ได้ผ่านทางข้อความ ขอฉันลองใส่รูปภาพลงไปด้วยเถอะ’”Van Luijt บอกว่าหลังจากทดลองกับภาพและเสียง ผู้ใช้บางคนกำลังนำเข้าข้อมูลอื่น ๆ เช่นลำดับ DNA ข้อมูลสำรวจทางธรณีวิทยา การค้นหาเรื่อง Genome (จีโนม) เรื่อง DNA ถือเป็นเรื่องที่เหมาะมากกับเทคโนโลยีตัวนี้ เพราะมีงานวิจัยบอกว่าลำดับวงศ์ตระกูล สายพันธุ์บางอย่าง มันแค่คล้าย ๆ ไม่ได้ตรงกันเป๊ะ ๆ เทคโนโลยีอันนี้แหล่ะจะทำให้เหล่านักวิจัยสามารถติดตามการโยกย้ายของผู้คนผ่านเวลาและสถานที่ เป็นโอกาสที่เปิดทางให้เราศึกษาประวัติศาสตร์มนุษย์ผ่านข้อมูล DNA ตัวอย่างอื่น ๆ ผุดขึ้นมากมายเมื่อผู้ใช้จินตนาการถึงตัววัดความคล้ายคลึงกันใหม่ การทดลองเบื้องต้นอย่างหนึ่งคือการแบ่งพื้นผิวโลกออกเป็นสี่เหลี่ยมเล็ก ๆ และจัดระดับความไวต่อการเกิดน้ำท่วม พวกเขาหวังว่าจะสร้างโมเดลใหม่ที่จะเพิ่มความเสี่ยงด้านราคาประกัน แนะนำการลงทุนในระดับโลก หรือเรื่องภาวะโลกร้อน วิธีค้นหาที่แกร่งขึ้นเมื่อเจอชุดข้อมูลขนาดใหญ่ Van Luijt กล่าวว่าเครื่องมือค้นหาใหม่ของ Weaviate และ SeMI สร้างผลการหาที่เร็วและมีประสิทธิภาพมากขึ้นสำหรับชุดข้อมูลขนาดใหญ่ มันเหนือกว่า Database แบบเดิมที่เอา AI Algorithm มาใช้ บางคนจะใช้ Database สำหรับการค้นหาพื้นฐานแล้วส่งออกคำตอบที่เป็นไปได้เหล่านี้ไปยังโมเดล Machine Learning ให้มันเรียนรู้ เพื่อเลือกคำตอบที่ดีที่สุด “ถ้าคุณทำอย่างนั้นกับเอกสารเป็นพัน ๆ ชิ้น คุณก็จะสบาย และไม่สังเกตเห็นอะไรเลย” Van Luijt กล่าว “แต่คุณไม่สามารถค้นหา Database ทั้งหมดและทำงานอย่างเช่นการตอบคำถามภายในเวลาไม่กี่วินาทีได้แน่ ๆ” โอกาสที่เปิดกว้างแบบนี้ยิ่งขับเคลื่อนให้เกิดการทดลองและการลงทุน เมื่อสัปดาห์ที่แล้ว SeMI ปิดการระดมทุนได้ถึง 16 ล้านดอลลาร์ซึ่งนำโดย New Enterprise Associates (NEA) และ Cortical Ventures ในเดือนสิงหาคม 2020 Zetta Venture Partners เป็นผู้นำที่ได้เงินลงทุน 1.6 ล้านกับ ING Ventures “เราจับตาดูความก้าวหน้าของ Machine Learning และ AI อย่างใกล้ชิด รอทีมและผลิตภัณฑ์ที่เหมาะสมเพื่อคิดค้นวิธีการทำงานกับข้อมูล” Tony Florence ผู้จัดการหุ้นส่วนทั่วไปฝ่ายเทคโนโลยีของ NEA กล่าวในการแถลงข่าว “Database เวกเตอร์ของ Weaviate สามารถจัดการกับข้อมูลที่ไม่ได้มีโครงสร้างตายตัว ทั้งในข้อความ เสียง และรูปภาพได้ นี่เป็นการปลดล็อกไปสู่การใช้งานในเรื่องใหม่ ๆ ที่ทรงพลังเกินจินตนาการ” การประเมินสมรภูมิแข่งขัน การแข่งขันแตกต่างกันไปเนื่องจากมี Database เวกเตอร์ Open Source อื่น ๆ อีกหลายตัวที่มีคุณสมบัติคล้ายคลึงกัน อย่างเช่น Milvus เกิดจากโปรแกรมของ LF AI & Data Foundation ที่ฟูมฟักมาอย่างดีและยังสนับสนุนการค้นหาข้อมูลเพื่อหาผลลัพธ์ที่คล้ายคลึงกันได้ด้วย ส่วน Pinecone.io ที่ไปรวมกับ Kafka (ระบบซอฟท์แวร์ที่โดดเด่นเรื่องประมวลผล กระจายการคำนวณ) ของ Apache เด่นเรื่องการค้นหาข้อมูลสตรีมมิ่งที่คล้ายคลึงกัน และก็ยังมี Vespa...
1 April 2022

บทความ

ป้องกันไว้ดีกว่าแก้ สำรองข้อมูลไว้ก่อนหาย (PostgreSQL)
การสำรองและกู้คืนข้อมูล PostgreSQL และการ sync ไฟล์ด้วย rsync แบบอัตโนมัติ
31 January 2022
PDPA Icon

We use cookies to optimize your browsing experience and improve our website’s performance. Learn more at our Privacy Policy and adjust your cookie settings at Settings

Privacy Preferences

You can choose your cookie settings by turning on/off each type of cookie as needed, except for necessary cookies.

Accept all
Manage Consent Preferences
  • Strictly Necessary Cookies
    Always Active

    This type of cookie is essential for providing services on the website of the Personal Data Protection Committee Office, allowing you to access various parts of the site. It also helps remember information you have previously provided through the website. Disabling this type of cookie will result in your inability to use key services of the Personal Data Protection Committee Office that require cookies to function.
    Cookies Details

  • Performance Cookies

    This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

  • Functional Cookies

    This type of cookie enables the Big Data Institute (Public Organization)’s website to remember the choices you have made and deliver enhanced features and content tailored to your usage. For example, it can remember your username or changes you have made to font sizes or other customizable settings on the page. Disabling these cookies may result in the website not functioning properly.

  • Targeting Cookies

    "This type of cookie helps the Big Data Institute (Public Organization) understand user interactions with its website services, including which pages or areas of the site are most popular, as well as analyze other related data. The Big Data Institute (Public Organization) also uses this information to improve website performance and gain a better understanding of user behavior. Although the data collected by these cookies is non-identifiable and used solely for statistical analysis, disabling them will prevent the Big Data Institute (Public Organization) from knowing the number of website visitors and from evaluating the quality of its services.

Save settings
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.