ปัจจุบัน หน่วยงานภาครัฐหลายที่ได้ดำเนินการนำชุดข้อมูลของตนขึ้นเผยแพร่บนดาต้าแคตตาล็อกแล้ว แต่อาจยังเกิดข้อคำถามตามมาว่า แล้วเราจะนำข้อมูลบนแคตตาล็อกมาใช้เพื่อการวิเคราะห์อย่างไร? จำเป็นต้องดาวน์โหลดลงมาเพื่อเอาเข้าเครื่องมือวิเคราะห์ข้อมูล อย่าง 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.”
กรณีที่ข้อมูลสามารถแสดงผลได้ถูกต้องบนหน้าต่างตัวอย่างข้อมูล แสดงว่าข้อมูลชุดดังกล่าวพร้อมสามารถถูกเรียกใช้ผ่าน CKAN API ผู้ใช้งานสามารถศึกษา API เบื้องต้น โดยคลิกที่ปุ่ม Data 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 ผลลัพธ์แรก)
รูปที่ 4 เปรียบเทียบผลลัพธ์ JSON ที่ได้จากการเรียก API กับข้อมูลที่ถูกแสดงผลในลักษณะตาราง
เมื่อพิจารณาผลลัพธ์ JSON ที่ได้ เทียบกับข้อมูลจริง จะเห็นว่าเนื้อหาข้อมูลที่ต้องการนั้น มีการจัดลำดับขั้นอยู่ภายใต้ result > records
เมื่อศึกษารายละเอียดการใช้ API เพิ่มเติม จะพบว่า เราสามารถปรับให้ API ดังกล่าวให้ผลลัพธ์มากกว่าแค่ 5 แถวแรก ในกรณีนี้ผู้เขียนขอเปลี่ยนพารามิเตอร์ของ API จาก limit=5 เป็น limit=32000 ซึ่งเป็นขอบเขตบนสุดตามที่ระบุไว้ในคู่มือการใช้งาน API และเราจะคัดลอก URL ส่วนนี้ไว้เพื่อเตรียมใช้ใน Power BI
รูปที่ 5 การปรับแต่ง URL ที่ใช้เรียก API ให้เรียกข้อมูลมากกว่าแค่ตัวอย่างข้อมูล 5 แถว
ต่อข้อมูลเข้า Power BI
เมื่อเราได้ URL ของ API ที่ต้องการใช้งานแล้วนั้น เราจะมาต่อ Power BI เข้ากับ API ดังกล่าวกัน โดยเมื่อเปิดหน้าต่าง Power BI ขึ้นมาแล้วนั้น ให้เลือกที่ Get data > Web จะปรากฏหน้าต่างให้ใส่ URL ขึ้น ซึ่งผู้อ่านสามารถนำ URL ที่คัดลอกไว้มาใส่ลงไปในช่องดังกล่าว แล้วกด OK
รูปที่ 6 การต่อ Power BI เข้ากับข้อมูลประเภทเว็บไซต์ ซึ่งสามารถระบุ URL ของ API ที่เราต้องการใช้งานได้
จากนั้นโปรแกรมจะดำเนินการเชื่อมต่อเข้ากับ URL ของ API ที่เราได้ให้ค่าไว้ และพยายามแปลความเพื่อจัดรูปแบบ และหน้าต่าง Power Query จะถูกเปิดขึ้นเพื่อให้เราพิจารณาผลลัพธ์ก่อนนำไปใช้งาน โดยทั่วไปโปรแกรมจะยังไม่สามารถอ่านข้อมูลได้ถูกต้องตามที่เราคาดไว้ ในที่นี้แนะนำให้ลบขั้นตอนในด้านขวามือออกทั้งหมด เหลือไว้เพียงแค่ขั้นตอนแรกขั้นเดียว
รูปที่ 7 ผลลัพธ์พื้นฐานที่ได้จากโปรแกรม เมื่อต่อเข้ากับ API
จากที่สำรวจทราบว่าเนื้อหาข้อมูลอยู่ภายใต้ result > records มาก่อนหน้านี้นั้น เพื่อเจาะลงไปถึงส่วนของข้อมูลที่ต้องการ ให้หาพารามิเตอร์ result ซึ่งเก็บค่าประเภท Record ไว้ หลังจากนั้นให้หาพารามิเตอร์ records ซึ่งเก็บค่าประเภท List จากนั้นให้แปลงลิสต์ที่ได้ให้เป็นตาราง โดยคลิกที่ปุ่ม To Table แล้วกด OK
สังเกตว่าโปรแกรมจะสร้างชื่อหัวตารางให้โดยอัตโนมัติ ได้ลักษณะเป็นตารางขนาด 1 คอลัมน์ โดยในแต่ละแถวจะเก็บค่าประเภท Record เอาไว้ เพื่อให้ Record ที่เก็บไว้ในแต่ละแถวถูกขยายเพื่อแสดงเนื้อหาข้อมูลภายใน Record หนึ่งๆ ให้คลิกที่ปุ่ม expand ด้านขวาบน จากนั้นเพื่อให้ชื่อตารางที่จะเกิดขึ้นมีความกะทัดรัด อาจเลือกเอาเครื่องหมายถูกที่ Use original column name as prefix ออก แล้วจึงกด OK จึงจะได้ตารางที่มีเนื้อข้อมูลตามต้องการ พร้อมให้ผู้ใช้จัดรูปแบบและทำความสะอาดข้อมูลตามความเหมาะสม
และด้วยบริการ API นี้เองที่ช่วยอำนวยความสะดวกให้นักวิทยาศาสตร์ข้อมูลและนักวิเคราะห์ข้อมูล ให้สามารถเชื่อมโยงข้อมูลจาก CKAN เข้ากับเครื่องมือธุรกิจอัจฉริยะอย่างเช่น Power BI ที่ช่วยให้นำเสนอข้อมูลเชิงภาพ (Data Visualization) ได้โดยสะดวก และไม่ต้องกังวลว่าข้อมูลชิ้นดังกล่าวจะเก่าไป เพราะการต่อเชื่อมตรงเข้ากับ CKAN ผ่าน API นั้นจะทำให้ข้อมูลที่นำมาแสดงบนแดชบอร์ดนั้นถูกอัปเดตตามการอัปเดตข้อมูลบน CKAN โดยอัตโนมัติ