สถาบันข้อมูลขนาดใหญ่ (องค์การมหาชน)

Logo BDI For web

จะดึงข้อมูลบน CKAN เข้า Power BI อย่างไร

Sep 15, 2022

สำหรับใครที่อยู่ในแวดวงการบริหารจัดการข้อมูล น่าจะเคยได้ยินเรื่องราวของระบบบัญชีข้อมูลหรือดาต้าแคตตาล็อก (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 ช่วยให้ผู้ใช้สามารถสืบค้นข้อมูลที่เจ้าของข้อมูลรวบรวมไว้บนระบบได้โดยง่าย โดยอาจเลือกค้นได้จากคำสำคัญ ซึ่งระบบจะคัดเฉพาะชุดข้อมูลที่เกี่ยวข้องกับคำสำคัญดังกล่าวมาแสดงผล

results from ckan
รูปที่ 1 ผลลัพธ์จากการสืบค้นชุดข้อมูล CKAN

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

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

ข้อมูลบนดาต้าแคตตาล็อก

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

กรณีที่ข้อมูลสามารถแสดงผลได้ถูกต้องบนหน้าต่างตัวอย่างข้อมูล แสดงว่าข้อมูลชุดดังกล่าวพร้อมสามารถถูกเรียกใช้ผ่าน CKAN API ผู้ใช้งานสามารถศึกษา API เบื้องต้น โดยคลิกที่ปุ่ม Data API

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

Where to find the syntax for CKAN API
รูปที่ 3 แสดงการดูตัวอย่าง API ที่ใช้ดึงข้อมูลที่ต้องการใช้

ข้อมูลที่ได้จากการเรียก 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 output from CKAN
รูปที่ 4 เปรียบเทียบผลลัพธ์ JSON ที่ได้จากการเรียก API กับข้อมูลที่ถูกแสดงผลในลักษณะตาราง

เมื่อพิจารณาผลลัพธ์ JSON ที่ได้ เทียบกับข้อมูลจริง จะเห็นว่าเนื้อหาข้อมูลที่ต้องการนั้น มีการจัดลำดับขั้นอยู่ภายใต้ result > records

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

How to configure CKAN API
รูปที่ 5 การปรับแต่ง URL ที่ใช้เรียก API ให้เรียกข้อมูลมากกว่าแค่ตัวอย่างข้อมูล 5 แถว

ต่อข้อมูลเข้า Power BI

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

หากเป็นการต่อเข้ากับเว็บไซต์ CKAN เป็นครั้งแรก จะปรากฏหน้าต่างให้ตั้งค่าสิทธิ์การเข้าถึง ในกรณีนี้สามารถเลือก Anonymous ตามค่าเริ่มต้น แล้วกด Connect

Import the data to Power BI using API
รูปที่ 6 การต่อ Power BI เข้ากับข้อมูลประเภทเว็บไซต์ ซึ่งสามารถระบุ URL ของ API ที่เราต้องการใช้งานได้

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

How Power Query sees CKAN API by default
รูปที่ 7 ผลลัพธ์พื้นฐานที่ได้จากโปรแกรม เมื่อต่อเข้ากับ API

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

How to correctly select where the data is, to show on Power Query
รูปที่ 8 ขั้นตอนการดำเนินการเพื่อเลือกเอาเนื้อหาของข้อมูลขึ้นมาแสดงผลเป็นตาราง

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

Expand the API to show data in a tabular form
รูปที่ 9 ขั้นตอนการขยายคอลัมน์ ซึ่งจะช่วยแปลงจากตารางของแถว (Records) ซึ่งมีคอลัมน์เดียว ให้มีหลายคอลัมน์ตามรายการคอลัมน์ในแถวนั้น ๆ

บทส่งท้าย

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



เนื้อหาโดย พีรดล สามะศิริ

ตรวจทานและปรับปรุงโดย นนทวิทย์ ชีวเรืองโรจน์

Peeradon Samasiri, PhD

Senior Project Manager & Data Scientist at Big Data Institute (Public Organization), BDI

© Big Data Institute | Privacy Notice