บทช่วยสอน Sqoop: Apache Sqoop คืออะไร Archiการสอนและตัวอย่าง
SQOOP ใน Hadoop คืออะไร
อาปาเช่ SQOOP (SQL-to-Hadoop) เป็นเครื่องมือที่ออกแบบมาเพื่อรองรับการส่งออกและนำเข้าข้อมูลจำนวนมากไปยัง HDFS จากที่เก็บข้อมูลที่มีโครงสร้าง เช่น ฐานข้อมูลเชิงสัมพันธ์ คลังข้อมูลขององค์กร และระบบ NoSQL เป็นเครื่องมือย้ายข้อมูลที่ใช้สถาปัตยกรรมตัวเชื่อมต่อซึ่งรองรับปลั๊กอินเพื่อให้เชื่อมต่อกับระบบภายนอกใหม่ๆ
ตัวอย่างการใช้งานของ Hadoop Sqoop คือองค์กรที่ดำเนินการนำเข้า Sqoop ทุกคืนเพื่อโหลดข้อมูลของวันจาก RDBMS ของธุรกรรมการผลิตลงใน รัง คลังข้อมูลเพื่อการวิเคราะห์ต่อไป
ในบทช่วยสอน Apache Sqoop ต่อไปนี้ เราจะเรียนรู้เกี่ยวกับสถาปัตยกรรม Apache Sqoop
สควอช Archiเทคเจอร์
ที่มีอยู่ทั้งหมด ระบบการจัดการฐานข้อมูล ได้รับการออกแบบด้วย SQL มาตรฐานในใจ อย่างไรก็ตาม แต่ละ DBMS มีความแตกต่างกันในเรื่องของภาษาถิ่นในระดับหนึ่ง ดังนั้นความแตกต่างนี้ทำให้เกิดความท้าทายในการถ่ายโอนข้อมูลข้ามระบบ Sqoop Connectors เป็นส่วนประกอบที่ช่วยเอาชนะความท้าทายเหล่านี้
การถ่ายโอนข้อมูลระหว่าง Sqoop Hadoop และระบบจัดเก็บข้อมูลภายนอกสามารถทำได้ด้วยความช่วยเหลือของตัวเชื่อมต่อของ Sqoop
Sqoop มีตัวเชื่อมต่อสำหรับการทำงานกับฐานข้อมูลเชิงสัมพันธ์ยอดนิยมมากมาย รวมถึง MySQL, PostgreSQL, Oracle, เซิร์ฟเวอร์ SQL และ DB2 ตัวเชื่อมต่อแต่ละตัวเหล่านี้รู้วิธีโต้ตอบกับ DBMS ที่เกี่ยวข้อง นอกจากนี้ยังมีตัวเชื่อมต่อ JDBC ทั่วไปสำหรับการเชื่อมต่อกับฐานข้อมูลใดๆ ที่รองรับ Javaโปรโตคอล JDBC ของ นอกจากนี้ Sqoop Big data ยังมอบการปรับให้เหมาะสมอีกด้วย MySQL และ PostgreSQL ตัวเชื่อมต่อที่ใช้ API เฉพาะฐานข้อมูลเพื่อทำการถ่ายโอนจำนวนมากอย่างมีประสิทธิภาพ

นอกจากนี้ Sqoop ในข้อมูลขนาดใหญ่ยังมีตัวเชื่อมต่อของบุคคลที่สามมากมายสำหรับการจัดเก็บข้อมูล ตั้งแต่ระดับองค์กร คลังข้อมูล (รวมถึง Netezza, Teradata และ Oracle) ไปยังร้านค้า NoSQL (เช่น Couchbase) อย่างไรก็ตาม ตัวเชื่อมต่อเหล่านี้ไม่ได้มาพร้อมกับชุด Sqoop จำเป็นต้องดาวน์โหลดแยกต่างหากและสามารถเพิ่มลงในการติดตั้ง Sqoop ที่มีอยู่ได้อย่างง่ายดาย
ทำไมเราถึงต้องการ Sqoop?
การประมวลผลเชิงวิเคราะห์โดยใช้ Hadoop จำเป็นต้องโหลดข้อมูลจำนวนมหาศาลจากแหล่งต่าง ๆ ลงในคลัสเตอร์ Hadoop กระบวนการโหลดข้อมูลจำนวนมากลงใน Hadoop จากแหล่งต่าง ๆ แล้วจึงประมวลผลนั้นมาพร้อมกับความท้าทายบางประการ การรักษาและรับรองความสอดคล้องของข้อมูลและการรับรองการใช้ทรัพยากรอย่างมีประสิทธิภาพเป็นปัจจัยบางประการที่ต้องพิจารณาก่อนเลือกวิธีการโหลดข้อมูลที่เหมาะสม
ประเด็นสำคัญ:
1. โหลดข้อมูลโดยใช้สคริปต์
วิธีการดั้งเดิมในการใช้สคริปต์ในการโหลดข้อมูลไม่เหมาะกับการโหลดข้อมูลจำนวนมากลงใน Hadoop วิธีการนี้ไม่มีประสิทธิภาพและใช้เวลานานมาก
2. เข้าถึงข้อมูลภายนอกได้โดยตรงผ่านแอปพลิเคชัน Map-Reduce
การให้การเข้าถึงโดยตรงไปยังข้อมูลที่อยู่ในระบบภายนอก (โดยไม่ต้องโหลดลงใน Hadoop) สำหรับแอปพลิเคชันลดแผนที่จะทำให้แอปพลิเคชันเหล่านี้ซับซ้อน ดังนั้นแนวทางนี้จึงไม่สามารถทำได้
3. นอกจากความสามารถในการทำงานกับข้อมูลจำนวนมหาศาลแล้ว Hadoop ยังสามารถทำงานกับข้อมูลในรูปแบบต่างๆ ได้หลายรูปแบบ ดังนั้น จึงได้มีการพัฒนาเครื่องมือต่างๆ ขึ้นมาเพื่อโหลดข้อมูลที่หลากหลายดังกล่าวลงใน Hadoop สควอช และ ไลเดอร์ เป็นเครื่องมือในการโหลดข้อมูลสองรายการดังกล่าว
ต่อไปในบทช่วยสอน Sqoop พร้อมตัวอย่างนี้ เราจะเรียนรู้เกี่ยวกับความแตกต่างระหว่าง Sqoop, Flume และ HDFS
Sqoop กับ Flume กับ HDFS ใน Hadoop
| สควอช | ไลเดอร์ | เอชดีเอฟเอส |
|---|---|---|
| Sqoop ใช้สำหรับการนำเข้าข้อมูลจากแหล่งข้อมูลที่มีโครงสร้าง เช่น RDBMS | Flume ใช้สำหรับย้ายข้อมูลการสตรีมจำนวนมากไปยัง HDFS | HDFS เป็นระบบไฟล์แบบกระจายที่ใช้โดยระบบนิเวศ Hadoop เพื่อจัดเก็บข้อมูล |
| Sqoop มีสถาปัตยกรรมแบบตัวเชื่อมต่อ ตัวเชื่อมต่อจะรู้วิธีเชื่อมต่อกับแหล่งข้อมูลที่เกี่ยวข้องและดึงข้อมูล | Flume มีสถาปัตยกรรมแบบใช้ตัวแทน โดยที่นี่จะมีการเขียนโค้ด (เรียกว่า 'ตัวแทน') ซึ่งทำหน้าที่ดึงข้อมูล | HDFS มีสถาปัตยกรรมแบบกระจาย โดยที่ข้อมูลจะกระจายไปทั่วโหนดข้อมูลหลายโหนด |
| HDFS เป็นปลายทางสำหรับการนำเข้าข้อมูลโดยใช้ Sqoop | ข้อมูลจะไหลไปยัง HDFS ผ่านช่องสัญญาณตั้งแต่ศูนย์ขึ้นไป | HDFS เป็นปลายทางขั้นสูงสุดสำหรับการจัดเก็บข้อมูล |
| โหลดข้อมูล Sqoop ไม่ได้ขับเคลื่อนด้วยเหตุการณ์ | โหลดข้อมูล Flume สามารถขับเคลื่อนโดยเหตุการณ์ได้ | HDFS เก็บข้อมูลที่ได้รับมาไม่ว่าจะด้วยวิธีใดก็ตาม |
| ในการนำเข้าข้อมูลจากแหล่งข้อมูลที่มีโครงสร้าง เราต้องใช้คำสั่ง Sqoop เท่านั้น เนื่องจากตัวเชื่อมต่อรู้วิธีโต้ตอบกับแหล่งข้อมูลที่มีโครงสร้างและดึงข้อมูลจากแหล่งข้อมูลเหล่านั้น | เพื่อโหลดข้อมูลสตรีมมิ่ง เช่น ทวีตที่สร้างบน Twitter หรือไฟล์บันทึกของเว็บเซิร์ฟเวอร์ ควรใช้ Flume เอเจนต์ Flume สร้างขึ้นเพื่อดึงข้อมูลการสตรีม | HDFS มีคำสั่งเชลล์ในตัวเพื่อจัดเก็บข้อมูลลงไป HDFS ไม่สามารถนำเข้าข้อมูลสตรีมมิ่งได้ |
