จะดึงข้อมูลบน CKAN เข้า Power BI อย่างไร
สำหรับใครที่อยู่ในแวดวงการบริหารจัดการข้อมูล น่าจะเคยได้ยินเรื่องราวของระบบบัญชีข้อมูลหรือดาต้าแคตตาล็อก (Data Catalog) กันมาแล้วไม่มากก็น้อย
ปัจจุบัน หน่วยงานภาครัฐหลายที่ได้ดำเนินการนำชุดข้อมูลของตนขึ้นเผยแพร่บนดาต้าแคตตาล็อกแล้ว แต่อาจยังเกิดข้อคำถามตามมาว่า แล้วเราจะนำข้อมูลบนแคตตาล็อกมาใช้เพื่อการวิเคราะห์อย่างไร? จำเป็นต้องดาวน์โหลดลงมาเพื่อเอาเข้าเครื่องมือวิเคราะห์ข้อมูล อย่าง BI tools ในรูปแบบใดได้บ้าง สำหรับบทความนี้ผู้เขียนจึงขอยกวิธีหนึ่งที่จะสามารถเชื่อมต่อข้อมูลจาก CKAN ซึ่งเป็นระบบดาต้าแคตตาล็อกที่ใช้กันแพร่หลายในภาครัฐโดยเฉพาะกับการเผยแพร่ข้อมูลเปิด (Open Data) เข้ากับโปรแกรม Power BI ที่เป็นเครื่องมือธุรกิจอัจฉริยะที่กำลังได้รับความนิยมได้ในรูปแบบใดบ้าง

อะไรคือดาต้าแคตตาล็อก
สำหรับใครที่ไม่เคยได้ยินเกี่ยวกับดาต้าแคตตาล็อกมาก่อนนั้น ผู้เขียนขอยกคำจำกัดความของดาต้าแคตตาล็อกที่บริษัท ไอบีเอ็ม ให้ไว้ ดังนี้ “A data catalog is a detailed inventory of all data assets in an organization, designed to help data professionals quickly find the most appropriate data for any analytical or business purpose.”
กล่าวคือ ดาต้าแคตตาล็อก คือรายการของข้อมูลภายในองค์กร ซี่งจัดระเบียบอยู่ในรูปแบบที่ช่วยให้ผู้ใช้งานสามารถสืบค้นข้อมูลที่ต้องการ สำหรับนำไปวิเคราะห์หรือตอบโจทย์ด้านธุรกิจได้โดยง่าย
เพื่อผลักดันภาครัฐให้เกิดวัฒนธรรมการตัดสินใจโดยใช้ข้อมูลเป็นสำคัญ (Data Driven Decision) หนึ่งในสิ่งสำคัญคือการทำให้เกิดการแลกเปลี่ยนข้อมูล ทั้งระหว่างหน่วยงานภาครัฐด้วยกันเอง และที่ผ่านการเปิดเผยข้อมูลสู่สาธารณะ (Open Data) จากหลักการดังกล่าว ดาต้าแคตตาล็อกเป็นเครื่องมือสำคัญที่จะช่วยผลักดันการพัฒนาระบบข้อมูลให้เป็นดิจิทัล อันจะช่วยให้หน่วยงานสามารถใช้ประโยชน์จากข้อมูลเพื่อการตัดสินใจได้อย่างเป็นรูปธรรม
เพื่อให้การบริหารจัดการข้อมูลเกิดขึ้นอย่างมีประสิทธิภาพ สำนักงานพัฒนารัฐบาลดิจิทัล (สพร.) ร่วมกับ เนคเทค จึงได้พัฒนา Data Catalog Platform ขึ้น สำหรับบริบทของสังคมไทย โดยใช้ชื่อว่า Open-D ซึ่งพัฒนาขึ้นจากซอฟต์แวร์ CKAN (Comprehensive Knowledge Archive Network) ซอฟต์แวร์พื้นฐานด้านดาต้าแคตตาล็อก ซึ่งใช้กันอยู่อย่างแพร่หลายในการบริหารจัดการข้อมูลภาครัฐของหลากหลายประเทศ เช่น สหรัฐอเมริกา สหราชอาณาจักร สหภาพยุโรป ออสเตรเลีย ญี่ปุ่น สิงคโปร์ ฯลฯ
การใช้งานดาต้าแคตตาล็อก
เพื่อขับเคลื่อนการจัดทำดาต้าแคตตาล็อกของประเทศ กระทรวงดิจิทัลเพื่อเศรษฐกิจและสังคม โดยสำนักงานสถิติแห่งชาติ และสถาบันส่งเสริมการวิเคราะห์และบริหารข้อมูลขนาดใหญ่ภาครัฐ (GBDi) ร่วมด้วยสำนักงานพัฒนารัฐบาลดิจิทัล (สพร.) และเนคเทค จึงได้ดำเนินการโครงการระบบบัญชีข้อมูลภาครัฐ (Government Data Catalog: GD-catalog) ขึ้น เพื่อช่วยให้หน่วยงานภาครัฐสามารถนำชุดข้อมูลที่หน่วยงานตนดูแลอยู่ มาขึ้นบนระบบ CKAN Open-D ที่พัฒนาขึ้น เพื่อให้หน่วยงานอื่นรวมถึงภาคประชาชนสามารถสืบค้นข้อมูลของภาครัฐได้โดยง่าย ซึ่งขณะนี้ได้พร้อมให้บริการสืบค้นแล้วบนหน้าเว็บไซต์ระบบบัญชีข้อมูลภาครัฐ
นอกจากดาต้าแคตตาล็อกของแต่ละหน่วยงานภาครัฐแล้ว ยังมีการจัดทำดาต้าแคตตาล็อกตามธีมการใช้งาน เช่น ข้อมูลด้านการท่องเที่ยว ข้อมูลด้านเด็กและเยาวชน และข้อมูลด้านการเกษตร เป็นต้น รวมไปถึงการจัดทำดาต้าแคตตาล็อกของแพลตฟอร์มข้อมูลเมือง (City Data Platform) ภายใต้โครงการเมืองอัจฉริยะ (Smart Cities) ที่มุ่งขับเคลื่อนการใช้ประโยชน์ข้อมูลภายใต้พื้นที่รับผิดชอบ
ดาต้าแคตตาล็อกเหล่านี้ ล้วนพัฒนาขึ้นภายใต้ซอฟต์แวร์ CKAN ที่ได้กล่าวไปในข้างต้น โดยในปัจจุบันหน่วยงานเจ้าผู้รับผิดชอบข้อมูลได้ดำเนินการนำเข้าข้อมูลขึ้นบนระบบแล้วส่วนหนึ่ง ทั้งในรูปแบบที่เป็นการนำเข้าไฟล์พร้อมให้ผู้สืบค้นเข้ามาดาวน์โหลด หรือทั้งในรูปแบบที่นำเข้าเฉพาะเมทาดาตา (Metadata) ซึ่งมีเฉพาะคำอธิบายชุดข้อมูล
ระบบ CKAN ช่วยให้ผู้ใช้สามารถสืบค้นข้อมูลที่เจ้าของข้อมูลรวบรวมไว้บนระบบได้โดยง่าย โดยอาจเลือกค้นได้จากคำสำคัญ ซึ่งระบบจะคัดเฉพาะชุดข้อมูลที่เกี่ยวข้องกับคำสำคัญดังกล่าวมาแสดงผล

เมื่อผู้ใช้พบชุดข้อมูลที่คาดว่าตรงกับความต้องการตัวเอง สามารถคลิกเข้าไปเพื่อพิจารณารายละเอียดชุดข้อมูลดังกล่าวได้เพิ่มเติม ซึ่งจะมีรายละเอียดในสามส่วนหลัก ได้แก่
- คำอธิบายชุดข้อมูล หรือ เมทาดาตา (Metadata) เป็นส่วนที่ให้รายละเอียดโดยสังเขปของชุดข้อมูลดังกล่าวว่ามีลักษณะเป็นอย่างไร ภายใต้ข้อมูลภาครัฐนั้น สพร. ได้ให้รายละเอียดแนวทางการกำหนดคำอธิบายชุดข้อมูลไว้ภายใต้กรอบการกำกับดูแลข้อมูลภาครัฐ
- คำสำคัญ ที่จะช่วยให้ผู้ใช้เข้าใจเนื้อหาของชุดข้อมูลในเชิงหัวข้อที่เกี่ยวข้องได้มากขึ้น นอกจากนี้การกำหนดคำสำคัญที่เหมาะสมจะช่วยให้ชุดข้อมูลดังกล่าวสามารถถูกสืบค้นได้โดยง่ายอีกด้วย
- ข้อมูลและทรัพยากร เป็นส่วนที่วางไฟล์ หรือลิงก์ที่อาจะจะชี้ไปยังตัวข้อมูล หรือไฟล์ที่เกี่ยวข้องกับชุดข้อมูลดังกล่าว เช่น data dictionary, คู่มือ, แบบสำรวจ ฯลฯ

ข้อมูลบนดาต้าแคตตาล็อก
ในกรณีที่ผู้ดูแลดาต้าแคตตาล็อกได้นำเข้าไฟล์ หรือเชื่อมต่อข้อมูลเข้าสู่ดาต้าแคตตาล็อกแล้วนั้น ผู้ใช้สามารถศึกษาข้อมูล หรือตัวอย่างข้อมูลได้จากส่วน “ข้อมูลและทรัพยากร” ของชุดข้อมูลนั้น ๆ โดยคลิกที่ปุ่ม “สำรวจ” > “ดูตัวอย่าง” หรืออาจคลิกที่ชื่อของทรัพยากรได้โดยตรง จากนั้นระบบ CKAN จะอ่านข้อมูลดังกล่าวและแสดงผลเบื้องต้นให้
กรณีที่ข้อมูลสามารถแสดงผลได้ถูกต้องบนหน้าต่างตัวอย่างข้อมูล แสดงว่าข้อมูลชุดดังกล่าวพร้อมสามารถถูกเรียกใช้ผ่าน CKAN API ผู้ใช้งานสามารถศึกษา API เบื้องต้น โดยคลิกที่ปุ่ม Data API
กรณีที่ข้อมูลไม่สามารถแสดงผลได้อย่างถูกต้อง มีความเป็นไปได้ว่าข้อมูลชุดดังกล่าวยังไม่อยู่ในรูปแบบที่สามารถอ่านได้ด้วยเครื่อง (machine readable) ในกรณีเช่นนี้ บรรณาธิการ (editor) ของดาต้าแคตตาล็อกในฐานะผู้ให้บริการข้อมูลสามารถอาจพิจารณาปรับรูปแบบข้อมูลให้เหมาะสมสำหรับการใช้งานเพื่อให้สามารถอ่านได้ด้วยเครื่องตามแนวทางของการจัดเตรียมข้อมูลเพื่อทำข้อมูลเปิด

ข้อมูลที่ได้จากการเรียก CKAN API
สำหรับตัวอย่างในบทความนี้ เราจะใช้ CKAN API ตัวที่ชื่อว่า datastore_search เพื่อดึงข้อมูลจากบน CKAN ให้สามารถเชื่อมต่อตรงเข้ากับ Power BI ซึ่งเป็นหนึ่งในเครื่องมือธุรกิจอัจฉริยะที่กำลังได้รับความนิยมในปัจจุบัน การทำเช่นนี้จะช่วยให้ข้อมูลที่แสดงผลบน Power BI นั้นได้รับการอัปเดตโดยอัตโนมัติ หากข้อมูลบน CKAN มีการเปลี่ยนแปลงไป ทั้งนี้สำหรับการต่อ API เข้ากับ Power BI นั้น ผู้เขียนได้เคยเขียนเล่าไปแล้วครั้งหนึ่งกับการต่อกับ API ของธนาคารแห่งประเทศไทย ซึ่งการต่อเข้ากับ CKAN API มีหลักการใกล้เคียงกัน แต่แตกต่างกันไปในรายละเอียดเนื่องจากความแตกต่างของโครงสร้างไฟล์ JSON ที่ได้จาก CKAN API
สำหรับ tutorial นี้จะขอเลือกใช้ชุดข้อมูลฝุ่น PM2.5 ที่อยู่ภายใต้ CKAN Open-D ของจังหวัดพิษณุโลก ซึ่งเป็นส่วนหนึ่งของ City Data Platform ของเมืองพิษณุโลก ที่ใช้ขับเคลื่อนเมืองอัจฉริยะ เพื่อให้เห็นภาพลักษณะผลลัพธ์ JSON ที่ได้จากการเรียกใช้ API ผู้อ่านสามารถคลิกดูตัวอย่างเรียกข้อมูล (5 ผลลัพธ์แรก)

เมื่อพิจารณาผลลัพธ์ JSON ที่ได้ เทียบกับข้อมูลจริง จะเห็นว่าเนื้อหาข้อมูลที่ต้องการนั้น มีการจัดลำดับขั้นอยู่ภายใต้ result > records
เมื่อศึกษารายละเอียดการใช้ API เพิ่มเติม จะพบว่า เราสามารถปรับให้ API ดังกล่าวให้ผลลัพธ์มากกว่าแค่ 5 แถวแรก ในกรณีนี้ผู้เขียนขอเปลี่ยนพารามิเตอร์ของ API จาก limit=5 เป็น limit=32000 ซึ่งเป็นขอบเขตบนสุดตามที่ระบุไว้ในคู่มือการใช้งาน API และเราจะคัดลอก URL ส่วนนี้ไว้เพื่อเตรียมใช้ใน Power BI

ต่อข้อมูลเข้า Power BI
เมื่อเราได้ URL ของ API ที่ต้องการใช้งานแล้วนั้น เราจะมาต่อ Power BI เข้ากับ API ดังกล่าวกัน โดยเมื่อเปิดหน้าต่าง Power BI ขึ้นมาแล้วนั้น ให้เลือกที่ Get data > Web จะปรากฏหน้าต่างให้ใส่ URL ขึ้น ซึ่งผู้อ่านสามารถนำ URL ที่คัดลอกไว้มาใส่ลงไปในช่องดังกล่าว แล้วกด OK
หากเป็นการต่อเข้ากับเว็บไซต์ CKAN เป็นครั้งแรก จะปรากฏหน้าต่างให้ตั้งค่าสิทธิ์การเข้าถึง ในกรณีนี้สามารถเลือก Anonymous ตามค่าเริ่มต้น แล้วกด Connect

จากนั้นโปรแกรมจะดำเนินการเชื่อมต่อเข้ากับ URL ของ API ที่เราได้ให้ค่าไว้ และพยายามแปลความเพื่อจัดรูปแบบ และหน้าต่าง Power Query จะถูกเปิดขึ้นเพื่อให้เราพิจารณาผลลัพธ์ก่อนนำไปใช้งาน โดยทั่วไปโปรแกรมจะยังไม่สามารถอ่านข้อมูลได้ถูกต้องตามที่เราคาดไว้ ในที่นี้แนะนำให้ลบขั้นตอนในด้านขวามือออกทั้งหมด เหลือไว้เพียงแค่ขั้นตอนแรกขั้นเดียว

จากที่สำรวจทราบว่าเนื้อหาข้อมูลอยู่ภายใต้ result > records มาก่อนหน้านี้นั้น เพื่อเจาะลงไปถึงส่วนของข้อมูลที่ต้องการ ให้หาพารามิเตอร์ result ซึ่งเก็บค่าประเภท Record ไว้ หลังจากนั้นให้หาพารามิเตอร์ records ซึ่งเก็บค่าประเภท List จากนั้นให้แปลงลิสต์ที่ได้ให้เป็นตาราง โดยคลิกที่ปุ่ม To Table แล้วกด OK

สังเกตว่าโปรแกรมจะสร้างชื่อหัวตารางให้โดยอัตโนมัติ ได้ลักษณะเป็นตารางขนาด 1 คอลัมน์ โดยในแต่ละแถวจะเก็บค่าประเภท Record เอาไว้ เพื่อให้ Record ที่เก็บไว้ในแต่ละแถวถูกขยายเพื่อแสดงเนื้อหาข้อมูลภายใน Record หนึ่งๆ ให้คลิกที่ปุ่ม expand ด้านขวาบน จากนั้นเพื่อให้ชื่อตารางที่จะเกิดขึ้นมีความกะทัดรัด อาจเลือกเอาเครื่องหมายถูกที่ Use original column name as prefix ออก แล้วจึงกด OK จึงจะได้ตารางที่มีเนื้อข้อมูลตามต้องการ พร้อมให้ผู้ใช้จัดรูปแบบและทำความสะอาดข้อมูลตามความเหมาะสม

บทส่งท้าย
จากที่กล่าวมานี้ จะเห็นได้ว่า CKAN ที่หน่วยงานภาครัฐหลาย ๆ แห่งเลือกนำมาใช้พัฒนาดาต้าแคตตาล็อกของหน่วยงานตนนั้น นอกจากผู้ใช้จะสามารถดาวน์โหลดข้อมูลเป็นลักษณะไฟล์ดิจิทัลไปใช้งานผ่านหน้าจอผู้ใช้งาน (User Interface) ได้แล้วนั้น ยังมีบริการ API สำหรับเรียกใช้ข้อมูลผ่านการเขียนสคริปต์ เพื่อให้เครื่องคอมพิวเตอร์สามารถเชื่อมต่อข้อมูลได้โดยตรง และด้วยบริการ API นี้เองที่ช่วยอำนวยความสะดวกให้นักวิทยาศาสตร์ข้อมูลและนักวิเคราะห์ข้อมูล ให้สามารถเชื่อมโยงข้อมูลจาก CKAN เข้ากับเครื่องมือธุรกิจอัจฉริยะอย่างเช่น Power BI ที่ช่วยให้นำเสนอข้อมูลเชิงภาพ (Data Visualization) ได้โดยสะดวก และไม่ต้องกังวลว่าข้อมูลชิ้นดังกล่าวจะเก่าไป เพราะการต่อเชื่อมตรงเข้ากับ CKAN ผ่าน API นั้นจะทำให้ข้อมูลที่นำมาแสดงบนแดชบอร์ดนั้นถูกอัปเดตตามการอัปเดตข้อมูลบน CKAN โดยอัตโนมัติ
เนื้อหาโดย พีรดล สามะศิริ
ตรวจทานและปรับปรุงโดย นนทวิทย์ ชีวเรืองโรจน์