Skip to main content

Amazon Data Firehose

An image

Amazon Data Firehose เป็นบริการที่ออกแบบมาเพื่อ ส่งข้อมูลจากแหล่งต่าง ๆ ไปยังปลายทางที่ต้องการ

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

ผู้ผลิตข้อมูลและวิธีการนำเข้า (Data Producers & Ingestion Methods)

ข้อมูลสามารถส่งเข้า Amazon Data Firehose ผ่านหลายแหล่ง เช่น

  • แอปพลิเคชันของคุณ
  • ไคลเอนต์
  • เครื่องมือที่เขียนขึ้นเอง

สามารถใช้ได้ทั้ง:

  • AWS SDK
  • Kinesis Agent

นอกจากนี้ Firehose ยังสามารถ ดึงข้อมูลโดยตรงจากบริการ AWS บางตัว เช่น

  • Kinesis Data Streams
  • Amazon CloudWatch Logs และ Events
  • AWS IoT

การไหลและการแปลงข้อมูล (Data Flow & Transformation)

  • ข้อมูลที่ Firehose รับเข้ามาสามารถ แปลงข้อมูลโดยใช้ AWS Lambda ก่อนส่งต่อไปยังปลายทาง
  • ข้อมูลจะถูกสะสมใน buffer และถูก flush เป็น batch เพื่อเขียนข้อมูลไปยังปลายทางตามรอบ

ปลายทางที่รองรับ (Supported Destinations)

Amazon Data Firehose รองรับปลายทางหลายประเภท:

  1. AWS Destinations

    • Amazon S3
    • Amazon Redshift (สำหรับวิเคราะห์)
    • Amazon OpenSearch Service
  2. Third-party Partner Destinations

    • Datadog, Splunk, New Relic, MongoDB
  3. Custom Destinations

    • ผ่าน HTTP endpoint ส่งข้อมูลไปยังปลายทางใดก็ได้

ตัวเลือกการสำรองข้อมูล (Data Backup Options)

  • Firehose สามารถเขียน ข้อมูลทั้งหมด หรือ เฉพาะข้อมูลที่ส่งล้มเหลว ไปยัง Amazon S3
  • ช่วยให้ ข้อมูลมีความทนทานและสามารถกู้คืนได้

ภาพรวมและคุณสมบัติของ Amazon Data Firehose

  • เดิมชื่อว่า Kinesis Data Firehose
  • เป็น บริการ fully managed รองรับปลายทางทั้ง Redshift, S3, OpenSearch รวมถึง third-party และ HTTP endpoints
  • ปรับขนาดอัตโนมัติ (automatic scaling)
  • Serverless เต็มรูปแบบ
  • คิดค่าบริการ ตามการใช้งานจริง

การส่งข้อมูลแบบใกล้เรียลไทม์ (Near Real-Time Data Delivery)

  • Firehose ถือเป็น near real-time เพราะใช้ buffering
  • ข้อมูลถูกสะสมตาม ขนาดหรือเวลา ก่อน flush ไปยังปลายทาง
  • มี ความหน่วงเล็กน้อย จึงต่างจากบริการ real-time streaming

รูปแบบข้อมูลและการแปลง (Supported Data Formats & Transformations)

  • รองรับข้อมูล CSV, JSON, Parquet, Avro, text, binary
  • สามารถ แปลงเป็น Parquet หรือ ORC และใช้ compression เช่น gzip หรือ snappy
  • สามารถใช้ AWS Lambda แปลงข้อมูล เช่น แปลง CSV เป็น JSON ก่อนเก็บใน S3

เปรียบเทียบ Kinesis Data Streams กับ Amazon Data Firehose

FeatureKinesis Data StreamsAmazon Data Firehose
Service TypeStreaming data collection serviceData loading service into target destinations
Data Processingต้องเขียน producer และ consumer code เองFully managed พร้อม automatic scaling
LatencyReal-timeNear real-time
ModesProvisioned / On-demandFully serverless
Data Storageเก็บข้อมูลได้ถึง 1 ปี พร้อม replay capabilityไม่มีการเก็บข้อมูลหรือ replay
Destinationsต้องประมวลผลโดย consumer เองรองรับ S3, Redshift, OpenSearch, third-party, HTTP endpoints

สรุป

  • Amazon Data Firehose เป็น บริการ fully managed สำหรับส่งข้อมูลสตรีมไปยังปลายทางหลายประเภท
  • รองรับ near real-time delivery
  • มี buffering และ automatic scaling
  • สามารถ นำเข้าข้อมูลหลายแหล่ง, แปลงข้อมูลด้วย Lambda, และส่งต่อไปยัง AWS หรือ third-party
  • แตกต่างจาก Kinesis Data Streams ตรงที่ ไม่เก็บข้อมูลและไม่มี replay capability

Key Takeaways

  • เป็น บริการ fully managed และ serverless สำหรับส่งข้อมูลสตรีมไปยังปลายทางหลายประเภท
  • รองรับ near real-time delivery พร้อม buffering และ scaling อัตโนมัติ
  • สามารถ แปลงข้อมูลก่อนส่งด้วย AWS Lambda
  • ไม่เก็บข้อมูลหรือรองรับการ replay ต่างจาก Kinesis Data Streams