Page 59 - ระบบธุรกิจอัจฉริยะ
P. 59

ระบบธรุ กิจอจั ฉรยิ ะกับส่อื สงั คม 14-47
       จากภาพท่ี 14.18 เมอื่ เพนทาโฮนำ� เขา้ ขอ้ มลู จากทวติ เตอร์ ซงึ่ ทางทวติ เตอรจ์ ะอนญุ าตและใหส้ ทิ ธิ์
ผใู้ ชง้ านทวติ เตอรท์ มี่ บี ญั ชผี ใู้ ชง้ าน สามารถเรยี กใชง้ านทวติ เตอรด์ ว้ ยพารามเิ ตอรท์ ที่ ำ� หนา้ ทจี่ ดั การการอนญุ าต
และให้สิทธิ์ที่ชื่อว่า โอออธ (OAUTH) ท�ำการตรวจสอบสิทธิ์ของผู้ใช้งานบนทวิตเตอร์ เม่ือผู้ใช้งาน
ทวติ เตอร์ไดร้ บั สิทธ์ิ เพนทาโฮจะน�ำข้อมูลยูอารแ์ อล (URL) ของผ้ใู ช้งานนนั้ ซงึ่ ในท่นี ้ีคือ ยูอารแ์ อลของ
ทวิตเตอร์ของโคคา-โคล่า @CocaCola และทวิตเตอรเ์ อพไี อคยี ์ (Twitter API Key) ท�ำการเข้ารหัส
ข้อมูลเพ่ือป้องกันข้อมูลและเพิ่มความปลอดภยั มากยง่ิ ขน้ึ จากนัน้ ข้อมลู จะถกู สง่ ไปวเิ คราะห์และประมวล
ผลการท�ำงาน ซ่ึงข้อมูลท่ีส่งไปในนั้นจะมีการก�ำหนดส่วนหัว (header) ของข้อมูลเพ่ือบอกจุดเร่ิม ส่วน
เนอื้ หา (body) เปน็ ขอ้ มลู จากทวติ เตอร์ และสว่ นทา้ ย (footer) เพอื่ บอกจดุ จบของขอ้ มลู แตล่ ะชดุ ส�ำหรบั
ขอ้ มลู แตล่ ะชดุ ทน่ี ำ� เขา้ มาจากทวติ เตอรจ์ ะทำ� การรบั และสง่ ขอ้ มลู ตามหลกั การทำ� งานแบบ RESTful ทำ� ให้
สามารถสอ่ื สารขอ้ มลู ระหว่างกัน เพ่อื รองรับคำ� สง่ั หรอื คำ� คน้ จากผู้ใชง้ านและตอบกลบั โดยขอ้ มูลท้ังหมด
ของทวติ เตอรจ์ ะถกู แปลงใหอ้ ยใู่ นรปู เอกสารแบบเจสนั (JSON) ทม่ี ลี กั ษณะน�ำขอ้ มลู ตา่ งๆ มาเรยี งตอ่ กนั
เป็นคู่ ระหว่างคีย์ (key) และค่าของคีย์ (value) เช่น {tweetple: @CocaCola} คือ ผู้ใช้ทวิตเตอร์
(tweetple) เปน็ คีย์ และค่าของคยี น์ ้ีคือ @CocaCola ซ่งึ จะใช้โคลอน (:) ในการระบุค่าขอ้ มลู ที่เป็นคกู่ นั
และหากมีข้อมูลหลายๆ ชุดจะคั่นระหว่างข้อมูลด้วยคอมมา (,) จากการแปลงข้อมูลเป็นแบบเจสันนี้
จะท�ำให้ขอ้ มูลมขี นาดเล็กลงและสะดวกในการรับหรือส่งข้อมลู
       ดว้ ยเพนทาโฮนน้ั นอกจากผใู้ ชง้ านสามารถทำ� การวเิ คราะหข์ อ้ มลู จากฟงั กช์ นั สำ� เรจ็ รปู ทจ่ี ดั เตรยี ม
ไว้ให้แล้ว นกั พฒั นาซอฟตแ์ วรส์ ามารถเขยี นคำ� ส่ังเพอื่ ทำ� การสอบถามขอ้ มลู (query) ตามเงอ่ื นไขตา่ งๆ
ได้อีกด้วย ส�ำหรับภาษาที่ใช้ในการสอบถามข้อมูลบนเพนทาโฮ นิยมใช้ไฮฟ์คิวแอล (HiveQL) เพื่อ
สอบถามข้อมูลจากส่ือสังคมที่เป็นแบบไม่มีโครงสร้างบนฐานข้อมูลโนเอสคิวแอล และไฮฟ์คิวแอลเป็น
ภาษาที่คล้ายกบั ภาษาเอสคิวแอล (Structured Query Lanaguage: SQL) ทีใ่ ชส้ อบถามข้อมูลบนฐาน
ข้อมูลเชงิ สัมพันธ์
       ตวั อย่างที่ 14.1 การหาจ�ำนวนคนทีท่ วตี สงู สดุ ประจ�ำวันน้ี
  SELECT tweet, user.time_zone, COUNT (*) AS total_count
  FROM tweets
  WHERE user.time_zone IS NOT NULL
  ORDER BY total_count DESC

       ค�ำอธิบายค�ำสั่งจากตัวอย่างที่ 14.1 ค�ำส่ัง SELECT เป็นการเลือกข้อมูล 3 ค่า ได้แก่ ข้อมูล
ทวตี (tweet) ขอ้ มลู เขตเวลาของผใู้ ชง้ านจากทว่ั โลก (user. time_zone) และการใชฟ้ งั กช์ นั การนบั จำ� นวน
ขอ้ มลู (COUNT) คนทท่ี วตี จากตารางทวตี (tweets) ทม่ี เี งอื่ นไขวา่ คา่ ของขอ้ มลู เขตเวลาของผใู้ ชง้ านจาก
ทว่ั โลกจะตอ้ งมีค่าข้อมูลและไมเ่ ป็นค่าวา่ ง (IS NOT NULL) โดยท�ำการจัดเรยี งล�ำดับข้อมลู (ORDER
BY) ตามจำ� นวนคนทท่ี วตี จากมากไปนอ้ ยดว้ ยฟงั กช์ นั DESC โดยจะแสดงขอ้ มลู ผลลพั ธจ์ ำ� นวนคนทที่ วตี
สงู สดุ ประจำ� วนั นี้
   54   55   56   57   58   59   60   61   62   63   64