Apache NiFi : Example SFTP –> SQL Server

Apache NiFi logo

เริ่มขอเล่าไอเดียก่อนครับผม เริ่มจากการตั้งค่าให้ระบบ Cloud วางไฟล์ข้อมูลสกุล.CSV ลงใน SFTP Server ก่อน แล้วหลังจากนั้นให้ระบบ Apache NiFi กระทำการอ่านไฟล์จาก SFTP แล้วนำข้อมูลที่ได้มาจากไฟล์นั้นมาประเมินผล Data Processing หลังจากนั้นก็ทำ Load เข้าฐานข้อมูล SQL Server ก็เป็นอันจบกระบวนขอรับ ฟังดูเหมือนจะง่ายไม่สลับซับซ้อน แม้กระนั้นถ้าหากขาดวัสดุที่ดีสำหรับเพื่อการทำ UFABET ก็บางทีก็อาจจะใช้เวลานานพอเหมาะพอควร เพื่อไม่ให้เสียเวล่ำเวลาผมจะขอชี้แจงขั้นตอนการตั้งค่าให้ได้ตามไอเดียข้างต้นครั้งละ step ดังนี้


1. สร้าง NiFi Processor ชื่อ GetSFTP หลังจากนั้นกำหนด Properties ของ SFTP ที่พวกเราจะอ่านไฟล์ข้อมูล แบบอย่างตามรูป




2. สร้าง NiFi Processor ชื่อ UpdateAttribute สำหรับสร้างฐานะแปร 3 ตัวหมายถึงcurrent_date, data_date, table_name เพื่อใช้ใน Data Flow โดยเขียนด้วยภาษาApache NiFi Expression ดังแบบอย่างตามรูปข้างล่างครับผม




3. สร้าง NiFi Processor ชื่อ RouteOnAttribute สำหรับเพื่อกรองข้อมูลโดยใช้ตัวแปรcurrent_date เทียบกับ data_date หากเทียบเคียงแล้วน้อยกว่าหรือพอๆกับให้ไปต่อได้




4. สร้าง NiFi Processor ชื่อ Execute Script สำหรับเอาข้อมูลที่ได้รับมาจากไฟล์ .csvมาจัดเป็นชุด SQL Query เพื่อนำเข้า SQL Server โดยใน Execute Script สามารถเขียนได้หลายภาษา ผมเลือกภาษา Python สำหรับในการเขียนคราวนี้ สำหรับ Source Code ที่เขียนก็ตามข้างล่างนี้ครับผม


5. สร้าง NiFi Processor ชื่อ putSQL สำหรับส่ง SQL Query ที่ได้เตรียมในตอนExecute Script เข้าไปประเมินผลใน SQL Server ซึ่งก่อน putSQL จะปฏิบัติงานได้พวกเราจะต้องตั้งค่า JDBC Connection Pool ให้ Apache NiFi สามารถเชื่อต่อกับ SQL Server UFABET ให้เป็นระเบียบก่อนนะครับ ต่อจากนั้นก็เพียงแต่เลือก JDBC Connection Pool ที่อยากได้มาใช้งาน


6. ขั้นตอนสุดท้ายสำหรับให้ระบบส่งเมลหาเมื่อมีเหตุเปลี่ยนไปจากปกติ กรรมวิธีเป็นสร้าง NiFi Processor ชื่อ putEmail รวมทั้งกระทำการตั้งค่าเกี่ยวกับ SMTP Server ให้เป็นระเบียบเรียบร้อย UFABET แล้วต่อจากนั้นเมื่อต่อการให้ Apche NiFi ส่งเมลหาพวกเราจังหวะไหน ก็เพียงแต่ขีดเส้น Connection จาก NiFi Processor กล่องอื่นเข้ามาพร้อมเจาะจงเรื่องที่ต้งการ ในโปรเจคนี้ผมพอใจสถานะการณ์ failure ของ Execute Script รวมทั้งputSQL


เมื่อตั้งค่าเสร็จเป็นระเบียบ พวกเราเพียงลากสาย Connection จาก NiFi Processorแต่ละกล่องให้เชื่อมกันเป็นสายพร้อมกด Run เพื่อ Apache NiFi ปฏิบัติงาน ก็เป็นอันจบขั้นตอนกรรมวิธีการของกระบวนการทำ Data Flow ในโปรเจคกล้วยๆของผมซึ่งหลังจากที่ใช้งาน Apache NiFi มาพักหนึ่ง รู้สึกชื่นชอบในวัสดุนี้มากมาย ข้างในยังมีฟีพบร์ที่เด่นอีกเยอะมากที่ผมมิได้เขียนในเนื้อหานี้ อาทิเช่น แนวทางการทำ Data Provenance หรือการดู Data Change ในทุกขั้นตอน แล้วก็ระบบมีการบันทึก log ที่ละเอียดมาก UFABET ผมหวังว่าเนื้อหานี้จะมีประโยชน์สำหรับผู้ที่กำลังมองหาเครื่องไม้เครื่องมือETL ที่ดีแถมใช้งานได้ฟรีขอรับ