16 คะแนน โดย xguru 2020-12-17 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

เรื่องราวการทรานส์ฟอร์มสู่ดิจิทัลของหนังสือพิมพ์อายุ 130 ปี

G1. 2008~2014 : มุ่งเน้นการแนะนำข่าวตามบทความที่ผู้อ่านอ่านแล้ว โดยใช้ SQL Server

G2. 2014~2016 : เริ่มนำ ETL มาใช้ เกิดการวิเคราะห์ข้อมูลขนาดใหญ่และคำถามใหม่ ๆ ปริมาณข้อมูลเพิ่มขึ้น

→ SQL Server กลายเป็นคอขวด จึงเปลี่ยนไปใช้ Redshift + ETL Framework

→ ทำระบบอัตโนมัติสำหรับตั้งเวลาให้รัน SQL วันละหลายครั้ง

→ รองรับโมเดลข้อมูลที่ซับซ้อนด้วย SQL + Python

G3. 2016~2018 : จุดเริ่มต้นของ Big Data@FT

→ ตั้งเป้าลด data latency ให้ต่ำที่สุด การนำเข้าข้อมูลทำได้วันละครั้ง (24h) จำเป็นต้องลดเวลานี้เพื่อให้ตอบสนองต่อเทรนด์ได้เร็วขึ้น

→ พัฒนาไลบรารีติดตามของตนเองที่สามารถส่ง interaction ของผู้อ่านได้ทั้งหมด

→ ทุกอีเวนต์ไหลผ่าน AWS SNS → SQS → Kinesis → Parquet → Redshift

→ สร้างเซิร์ฟเวอร์ NodeJS สำหรับประมวลผล raw event โดยผสานข้อมูลทั้งภายในและภายนอกเพื่อ enrich อีเวนต์ก่อนส่งขึ้น Kinesis

→ ใช้ Kinesis Firehose แปลงอีเวนต์เป็น CSV แล้วเก็บไว้ใน S3

→ มีสถานการณ์ที่เกิดอีเวนต์ซ้ำ จึงสร้าง Redshift cluster แยกต่างหากเพื่อจัดการเรื่องนี้ แต่กลับทำให้ latency ช้าลง

G4. 2019 : สร้างแพลตฟอร์มใหม่โดยเน้นการเพิ่มคุณค่าทางธุรกิจ

→ ต้องการเปลี่ยนแพลตฟอร์มข้อมูลให้เป็น PaaS

→ นำ Kubernetes มาใช้ ย้ายจาก ECS ไป EKS

→ นำ Airflow มาใช้

→ AWS SNS → SQS → Kinesis → Parquet → Airflow → Redshift

G5. 2020 : ถึงยุคของข้อมูลแบบเรียลไทม์แล้ว

→ G4 ดีขึ้นมาก แต่ก็ยังทำแบบเรียลไทม์ไม่ได้

→ เปลี่ยนจากการตั้งค่าที่ซับซ้อนของ SNS, SQS, Kinesis ไปใช้ Kafka (Amazon MSK)

→ แพลตฟอร์ม stream processing คือ Apache Spark

→ kafka → spark → parquet(delta lake, redshift) ↔ airflow

→ นำ Apache Avro มาใช้เพื่อการตรวจสอบข้อมูล : Data Contract

→ ใช้ Presto เพื่อ query Redshift, S3, Kafka เป็นต้น

แผนต่อจากนี้

→ ปัจจุบันข้อมูลเข้ามาจาก 3 คอมโพเนนต์คือ Airflow, Spark, Kafka และมีแผนจะเปลี่ยนเป็นแบบอิง CDC(Change Data Capture)

→ ปรับให้ทุกคนเข้าถึงข้อมูลแบบเรียลไทม์ได้ พร้อมยกระดับ Data UI ให้ทำ stream processing แบบ drag & drop ได้

4 ความคิดเห็น

 
kbumsik 2020-12-17

โอ้ ชอบโพสต์บล็อกแบบนี้มากเลย มีทั้งประเด็นที่ต้องขบคิดของสถาปัตยกรรมแต่ละยุคอยู่ครบเลยนะ แม้แต่สำนักข่าวก็ยังออกแบบแพลตฟอร์มข้อมูลในระดับขนาดนี้กันด้วย

 
kbumsik 2020-12-17

ว่าแต่เขาเชื่อมต่อกันแบบ SQS -> ลูป Nodejs -> Kinesis แบบนี้สินะครับ เลยสงสัยว่าใช้แค่ Kinesis ตัวเดียวให้จบไปเลยไม่ได้เหรอครับ ผมยังไม่ค่อยเชี่ยวชาญ AWS เท่าไหร่เลย ฮือ

 
cbbatte 2020-12-17

ขอบคุณสำหรับการสรุปบทความดี ๆ ครับ!

 
xguru 2020-12-17

หากต้องการดูคำอธิบายของคำศัพท์ที่กล่าวถึงที่นี่

  • สถาปัตยกรรมใหม่สำหรับโครงสร้างพื้นฐานข้อมูลสมัยใหม่ https://th.news.hada.io/topic?id=3055

โปรดอ้างอิงบทความด้านบนและวิดีโอ GeekNews YouTube เรื่อง "ทำความเข้าใจโครงสร้างพื้นฐานข้อมูลสมัยใหม่"

และขอให้ดูเรื่องราวของ The New York Times ซึ่งประสบความสำเร็จในการทำ Digital Transformation ในลักษณะคล้ายกันประกอบด้วย

The New York Times ที่ไม่ล้มเหลว - NYT ประสบความสำเร็จในการเปลี่ยนผ่านสู่ดิจิทัลได้อย่างไร