นักวิทยาศาสตร์ข้อมูลจะจัดกระบวนท่าเพื่อเริ่มต้นเล่น Big Data Processing ด้วย Apache Hive กันอย่างไรดี

Posted on Posted in Big Data

“นักวิทยาศาสตร์ข้อมูลจะจัดกระบวนท่าเพื่อเริ่มต้นเล่น Big Data Processing ด้วย Apache Hive กันอย่างไรดี”

            เราเริ่มได้ยินกันบ่อยขึ้นเรื่องของการนำ Apache Hive ไปใช้งานงานกับการจัดการข้อมูลขนาดใหญ่ทั้งทางด้านของเครื่องมือวิเคราะห์ข้อมูล ( Data Analytic ) ที่เล่นกับข้อมูลได้ด้วยภาษาที่ใช้เรียกข้อมูลที่คล้ายภาษา SQL  

            หลังจากที่เราเข้าไปศึกษา Hive กันลึกๆแล้วก็พบว่าปัจจุบัน ( 5 พ.ย. 2559 ) Hive มีการพัฒนาการไปเยอะมากกว่าการเป็นตัวกลางในการใช้งาน HDFS สำหรับเก็บข้อมูลและเรียกข้อมูลให้เป็นโครงสร้างแบบตารางแบบ RDBMS ที่จัดการกับข้อมูลด้วยรูปแบบภาษา SQL

            ปัจจุบัน Hive กำลังก้าวไปถึงการเป็น NoSQL ในอีกรูปแบบหนึ่งที่มีโครงสร้างระบบไฟล์ข้อมูลแบบ Columnar  มีโหมดการจัดการ Transaction Control  มีการทำ Index ข้อมูล และ มีการ Optimize Join Table ให้ได้ประสิทธิภาพการประมวลผลข้อมูลขนาดใหญ่มากๆๆได้เร็วขึ้นอีกด้วย

            แม้วันนี้เราพูดถึงการเป็นนักวิทยาศาสตร์ข้อมูล ( Data Scientist )กันมาก สำหรับบ้านเราแล้วในวันนี้นักวิทยาศาสตร์ข้อมูลในส่วนหนึ่งจำเป็นจะต้องจัดเตรียมข้อมูลเองสำหรับใช้ในกระบวนการวิเคราะห์ข้อมูล  รวมถึง การเป็นนักพัฒนาซอฟต์แวร์ที่จะต้องเริ่มพัฒนาโปรแกรมทำงานกับ Big Data Technology ที่จำเป็นต้องเข้าใจและเขียนโปรแกรมเพื่อเรียกข้อมูลจาก Hive ได้ และ ฝั่งของ Data Engineer ที่จะต้องเตรียมข้อมูลไว้ให้นักวิทยาศาสตร์ข้อมูล ด้วยเช่นกัน

         ถ้าเราเป็นหนึ่งในคนบทบาทเหล่านี้ เรามาสรุปแนวทางการเริ่มต้นใช้ Apache Hive สำหรับการประมวลผล Big Data กันอย่างมีประสิทธิภาพกัน

hiv1

เราจำเป็นต้องรู้อะไรบ้างถ้าจะเริ่มเล่น Hive

การเริ่มต้นใช้งาน Hive สำหรับเก็บข้อมูล และ เรียกข้อมูลไปใช้งานในการวิเคราะห์ข้อมูล เราจำเป็นต้องหาคำตอบในเรื่องต่างๆอะไรบ้าง มาดูกัน

  1. Hive มี Column Data Type อะไรบ้าง และ Data Type แบบใดคือของดีสำหรับ Big Data ที่ต่างจาก RDBMS ทั่วไป
  2. การสร้าง Hive Table มีรูปแบบการสร้างอย่างไร และ มี Data Store ประเภทไหนให้ใช้บ้าง
  3. การเอาข้อมูลเข้า Hive Table ทำได้กี่วิธี และ แตกต่างกันอย่างไร
  4. การเรียกข้อมูลจาก Hive ผ่าน HQL ใช้อย่างไร และ Operation Option แบบไหนที่ระบุแล้วดี หรือ ทำให้การทำ Data Analytic ง่ายขึ้น
  5. การใช้งาน Aggregation & Analytic Function สำหรับทำ Data Analytic ใช้อย่างไร

2

อะไรบ้างที่เป็นปัจจัยสำคัญที่ทำให้ Hive ประมวลผลข้อมูลได้อย่างมีประสิทธิภาพ

            หลังจากที่เราผ่านการทำเป็นในขั้นตอนพื้นฐานมาแล้ว จากการหาคำตอบจาก 5 ข้อด้านบน   เรามาดูการต่อยอดเพิ่มเติม ปรุงแต่งให้ Hive ประมวลผลให้เราได้อย่างรวดเร็วอย่างมีประสิทธิ ว่าต้องทำในเรื่องใดกันบ้างมาดูกันต่อ

  1. กำหนดหรือเลือกใช้ Table แบบ Partition Table สิ เพื่อความเร็วในการเข้าถึงข้อมูลจากการแบ่งข้อมูลเป็นกลุ่มๆ โดยปกติแล้วธรรมชาติใดๆแบ่งกลุ่มได้ด้วยตัวของมันเองตามโดเมนหรือลักษณะงานของมันอยู่แล้ว เช่น ข้อมูลลูกค้าแบ่งออกตามภูมิศาสตร์พื้นที่ ( ภาค , เมือง , ) ข้อมูลพวก Transaction ที่เกิดตามลำดับเวลาแบ่งออกตามเดือน เป็นต้น
  2. กำหนด Table Option เพิ่มให้เป็น Bucket สำหรับ Column หนึ่งๆ เพื่อให้ข้อมูลวางอยู่ในพื้นข้อมูลเดียวกันเพื่อ Performance การทำ Join Table
  3. กำหนด Index เพิ่มสิ Index feature เพิ่มมาตั้งแต่ Hive version 0.7.0 ซี่งคุณสมบัติก็เหมือนกับที่เรารู้จักกันใน RDBMS นั้นเอง
  4. กำหนด Table Data เป็นแบบ Record Columnar ที่สนับสนุนการเข้าถึงข้อมูลแบบ Parallel ที่ไม่ต้องหยุดรอการเข้าถึง Data Table เดียวกัน Record เดียวกัน ระหว่าง Client Process ที่เรียกเข้าอ่านข้อมูล โดยลักษณะของการเก็บข้อมูลแบบ Record Columnar ข้อมูลจะถูกแบ่งออกเป็นกลุ่ม  และ แต่ละกลุ่มจะถูกจัดกลุ่มย่อยข้อมูลแบบแนวตั้งหรือแนว Column เพื่อให้การเข้าถึง Record เดียวกันแต่ต่างคอลัมน์สามารถเข้าถึงข้อมูลได้พร้อมๆกันมากกว่า 1 Process ที่เรียกข้อมูลโดยไม่ต้องหยุดรอกัน ส่งผลให้ Hive ให้ผลลัพธ์ได้เร็วขึ้น  โดยประเภทของ Data Store หรือ File Format ที่สนับสนุนคุณสมบัติแบบนี้คือ RCFILE และ ORC ความแตกต่างระหว่าง 2 แบบนี้คือขนาดของ HDFS Block Size ที่ ORC ค่าปกติเริ่มต้นที่ 256 MB ขณะที่ RCFILE เริ่ม 4 MB ซึ่งก็ต้องคิดตัดสินใจเลือกให้สอดคล้องกับขนาดข้อมูลที่นำเข้าระบบในช่วงชีวิตของระบบที่ต้องจัดการข้อมูลและขนาดของ Hadoop Cluster ด้วย
  5. การปรับแต่ง Hive Process ในระดับ JVM ให้สนับสนุนการ Re-Use JVM การประมวลผล Map Reduce Job แบบขนานได้ เป็นต้น 

 

โดยสรุปแล้วแนวทางข้างต้น

            เราแค่ลองสรุปเป็นเส้นทางเดินไว้ให้เป็นไกด์ให้แน่ละคนถ้าจะเริ่มต้นกับ Big Data Analytic ด้วย Hive เราจะได้ตอบตัวเองได้ว่ามาเดินมาอยู่ ณ.จุดไหนของการเดินทางแล้ว หรือ เรายังขาดสิ่งใดเพื่อหาเพื่อเติมเต็มให้ตนเองเก่งและแกร่งมากๆขึ้นครับ

"ท้ายสุดคือลงมือปฏิบัติล่ะครับ ทำ ทำ แล้วก็ทำ" 

บทความถัดๆไปเราจะมาตอบคำถามที่ตั้งแนวทางไว้และเล่นตามตัวอย่างกันครับ

!แต่ถ้าอยากลองติดตั้งเอง หรือ อยากเล่นแบบด่วนๆไม่ต้องเสียเวลาติดตั้งก็สามารถดาวน์โหลด Image VirtualBox นี้ไปลองเล่นกันได้เลยครับ ดูรายละเอียดในบทความนี้เลยครับ การใช้งานและการติดตั้ง Apache Hive สำหรับ Big Data Processing

About Author

อวยชัย ภิรมย์รื่น

ทำงานมาแล้วในทุกตำแหน่งของทีมพัฒนาซอฟต์แวร์ มีประสบการณ์การวิเคราะห์และออกแบบระบบ Accounting&Warehouse , e-Payment , Freight forwarder , Logistic และ เคยดูงานด้านเทคนิคของระบบ Fraud Banking ที่ทำงานกับข้อมูลกว่า 7 ล้านรายการด้วยเข้าใจ Operation ของทุกระบบงานของธนาคารอย่างดี และ ถนัดเรื่องการบริหารจัดการโครงการพัฒนาระบบสารสนเทศ

| ปัจจุบันทำงานด้าน Big Data Solution Engineer โดยเอา Big Data Technology มาเพิ่มประสิทธิภาพการปฏิบัติงานของ Business and IT Operation

[  e-mail: p.auoychai@gmail.com , Tel. 086-813-5354 ]

Our Services

Big Data Engineering

ติดตั้ง Cloudera Enterprise Hadoop , อิมพลีเมนท์การเอาข้อมูลเข้า HDFS , Hive , HBase , Elasticsearch ผ่าน Talend  ETL Tool และ Custom Programming admin

Software&Solution

พัฒนา Smart Software Application ( Web , Mobile ) และ เชื่อมต่อกับอุปกรณ์ IoT  , พัฒนาระบบ Dashboard ทำ Visualize ข้อมูล , การพัฒนา API&Micro-Service , การเชื่อมต่อและประมวลผลข้อมูลบน Big Data Store ด้วยเทคนิค Machine Learning admin

IT Operation

อิมพลีเมนท์ระบบ IT  Monitoring สำหรับการเฝ้าระวังและแจ้งเตือนสภาพการทำงานของ Server , Application Server และ IoT Device ต่างๆ , การบริหารจัดการ Service & Application Log. admin

Leave a Reply

Your email address will not be published. Required fields are marked *