paint-brush
DeltaStream คืออะไรกันแน่?โดย@progrockrec
231 การอ่าน

DeltaStream คืออะไรกันแน่?

โดย Shawn Gordon5m2024/12/12
Read on Terminal Reader

นานเกินไป; อ่าน

DeltaStream เป็นบริการที่ได้รับการจัดการซึ่งช่วยให้คุณใช้ Flink ได้โดยไม่ต้องยุ่งเกี่ยวกับ Flink
featured image - DeltaStream คืออะไรกันแน่?
Shawn Gordon HackerNoon profile picture


เมื่อเราถามครั้งล่าสุดว่า "มันคืออะไรกันแน่???" เรากำลังดูแพลตฟอร์มสตรีมมิ่งข้อมูลที่เข้ากันได้กับโปรโตคอล __ Apache Kafka __® วาร์ปสตรีม . ด้วยการสตรีมข้อมูล คุณต้องทำบางอย่างกับมัน วางไว้ที่ไหนสักแห่ง เช่น ภูเขาน้ำแข็งอาปาเช่ - เกล็ดหิมะ , หรือ ดาต้าบริคส์ หรือสอบถามข้อมูลในเที่ยวบินนั้นเพื่อเสริมและ/หรือกรองข้อมูลก่อนจะลงจอด มีตัวเลือกอื่นๆ สำหรับอย่างหลัง แต่ตัวเลือกที่ใหญ่ที่สุดคือโครงการโอเพ่นซอร์สอย่างไม่ต้องสงสัย อาปาเช่ ฟลิงค์ การมองไปที่ Flink ทำให้ฉันพบว่า เดลต้าสตรีม ซึ่งเป็นหัวข้อที่เราพูดถึงในวันนี้ DeltaStream คืออะไรกันแน่ มันทำงานร่วมกับ Flink ได้อย่างไร และมันทำงานคู่กับ Kafka ได้อย่างไร

Flink คืออะไร?

Flink ได้รับการยอมรับให้เป็นโครงการ Apache ในเดือนธันวาคม 2014 ดังนั้นจึงมีมาสักระยะแล้ว การเติบโตของการประมวลผลแบบสตรีมทำให้มีผู้สนใจและใช้งานเพิ่มมากขึ้นในช่วงไม่กี่ปีที่ผ่านมา Flink เป็นระบบที่ค่อนข้างท้าทายในการสร้างและใช้งานภายในองค์กร ซึ่งต้องใช้บุคลากรด้านวิศวกรรมที่ทุ่มเท แม้แต่ เอเอสเอ็มเอสเอฟ บริการนั้นแม้จะง่ายกว่าแต่ก็ยังค่อนข้างซับซ้อน ตัวอย่างเช่น การใช้ Java จำเป็นต้องให้คุณเขียนแบบสอบถาม Java สร้างไฟล์ jar บีบอัดไฟล์ อัปโหลดไปยัง S3 ตั้งค่าสิทธิ์ของคุณ จากนั้นจึงดำเนินการ


ฉันจะยืมมาจากเว็บเพจ Apache Flink ที่นี่ Apache Flink เป็นเฟรมเวิร์กและกลไกการประมวลผลแบบกระจายสำหรับการคำนวณแบบมีสถานะบนสตรีมข้อมูลที่ไม่มีขอบเขตและมีขอบเขต Flink ได้รับการออกแบบมาให้ทำงานในสภาพแวดล้อมคลัสเตอร์ทั่วไปและดำเนินการคำนวณด้วยความเร็วในหน่วยความจำและในทุกระดับ ฉันไม่ต้องการทำซ้ำสิ่งที่อยู่ในเว็บไซต์ของพวกเขามากเกินไป ดังนั้นหากคุณไม่แน่ใจเกี่ยวกับ Flink ให้ลองดู

การใช้ DeltaStream

โดยพื้นฐานแล้ว DeltaStream ช่วยให้คุณใช้ Flink ได้โดยไม่ต้องยุ่งเกี่ยวกับ Flink เลย สำหรับการทดสอบของฉัน ฉันใช้ คู่มือเริ่มต้นอย่างรวดเร็ว สำหรับ UI บนเว็บ โปรดทราบว่าพวกเขามี CLI ด้วย ซึ่งฉันไม่ได้ทดสอบ


เมื่อคุณสมัครใช้งาน คุณจะได้รับสิทธิ์ทดลองใช้ฟรี 14 วัน คลัสเตอร์ Kafka ตัวอย่างที่เรียกว่า “trial_store” ถูกสร้างขึ้นเพื่อให้คุณใช้แทนข้อมูลของคุณเองเพื่อทดลองใช้งาน ตัวอย่างประกอบด้วยหัวข้อต่างๆ มากมายให้เลือกใช้ ไอคอนภายใต้ ACTIONS ช่วยให้คุณสามารถลบหัวข้อหรือดูรายละเอียดและเนื้อหาเกี่ยวกับหัวข้อนั้นได้


เบราว์เซอร์หัวข้อ DeltaStream


ต่อไปนี้เป็นรายละเอียดของหัวข้อ การดูหน้า เพื่อใช้ในการอ้างอิงซึ่งเราจะใช้ในภายหลัง

ผู้ตรวจสอบหัวข้อ DeltaStream


โอเค เรามีคลัสเตอร์ Kafka และหัวข้อต่างๆ อยู่ในนั้นแล้ว ตอนนี้มาทำสิ่งที่น่าสนใจกันดีกว่า ตามที่กล่าวไว้ในบทนำ สิ่งที่น่าสนใจที่สุดที่ฉันทำได้คือเพิ่มหรือกรองข้อมูลในขณะที่ข้อมูลกำลังดำเนินการอยู่ก่อนที่จะลงจอดที่จุดหมายปลายทางสุดท้าย เช่น ฐานข้อมูล/คลังสินค้า/ทะเลสาบ สำหรับจุดประสงค์ดังกล่าว เราจะไปที่พื้นที่ทำงาน

คำอธิบายพื้นที่ทำงาน DeltaStream


ส่วนนี้ต้องใช้เวลาในการทำความคุ้นเคยเล็กน้อย ฐานข้อมูลและโครงร่างใน DeltaStream เป็นเพียงโฟลเดอร์จัดระเบียบ คุณสามารถสร้างฐานข้อมูลได้ 'n' รายการ และภายในฐานข้อมูล คุณสามารถมีโครงร่างได้ 'n' รายการ โครงร่างจะเก็บเค้าโครงคำจำกัดความของวัตถุ DeltaStream ของคุณ ซึ่งเรียกว่า STREAM, CHANGELOG, MATERIALIZED VIEW และ TABLE ตารางเกี่ยวข้องกับตารางฐานข้อมูลในโปรแกรมบางอย่าง เช่น PostgreSQL และ Materialized View เป็นวิธีในการคงข้อมูลไว้ในชุดผลลัพธ์โดยไม่ต้องใส่ข้อมูลไว้ที่ไหนสักแห่งโดยเฉพาะ ฉันจะไม่ทำอะไรกับสิ่งเหล่านี้ในบล็อกนี้ ฉันจะเน้นที่ Stream และ Changelog


ฉันกำลังสร้างสตรีมของหัวข้อ การดูเพจ ในคลัสเตอร์ Kafka ในภาพหน้าจอต่อไปนี้ ฉันคิดว่ามันเป็นการสร้างตารางคำจำกัดความของหัวข้อ เราได้กำหนดชื่อของฟิลด์และบอกพวกเขาว่าจะใช้หัวข้อใดและรูปแบบข้อมูลคืออะไร เราไม่จำเป็นต้องระบุเหตุผลคลัสเตอร์ trial_store อย่างสมบูรณ์ เนื่องจากมันถูกตั้งค่าเป็นค่าเริ่มต้นในกล่องรวมที่ด้านบน เมื่อดำเนินการคำสั่งนั้นแล้ว คำสั่งนั้นจะปรากฏขึ้นภายใต้ TestDB.public จากนั้นฉันสามารถค้นหาโดยใช้คำสั่งเช่น SELECT * FROM PAGEVIEWS และฉันจะเริ่มเห็นข้อมูลในบานหน้าต่างผลลัพธ์ที่ด้านล่าง


ตัวอย่างการสร้างสตรีม DeltaStream


จากนั้น ฉันจะประกาศบันทึกการเปลี่ยนแปลงที่ได้รับการสนับสนุนโดยหัวข้อ ของผู้ใช้ และจัดลำดับตาม ID ผู้ใช้ บันทึกการเปลี่ยนแปลงนั้นคล้ายกับสตรีม แต่ช่วยให้คุณตีความเหตุการณ์ในหัวข้อเป็นเหตุการณ์ UPSERT ได้ เหตุการณ์จำเป็นต้องใช้คีย์หลัก DeltaStream จะตีความเหตุการณ์แต่ละเหตุการณ์เป็นการแทรกหรือการอัปเดตสำหรับคีย์หลักที่กำหนด ในกรณีนี้ บันทึกการเปลี่ยนแปลงจะสะท้อนรายละเอียดเฉพาะตามผู้ใช้ เช่น เพศและความสนใจ

ตัวอย่างบันทึกการเปลี่ยนแปลงของ DeltaStream


นี่คือจุดที่เราเริ่มสนุกกัน ฉันจะสร้างสตรีมใหม่ที่เพิ่มข้อมูล การเข้าชมเพจ ด้วยข้อมูลจากบันทึกการเปลี่ยนแปลงของ users_log โดยใช้ userid เป็นค่าคีย์ในการเข้าร่วม ซึ่งตอนนี้ฉันจะได้หัวข้อเฉพาะในคลัสเตอร์ที่มีข้อมูลจากสองหัวข้อที่แตกต่างกัน จากตรงนี้ ฉันสามารถกรองหัวข้อโดยใช้บางอย่างเช่น regionid และเขียนผลลัพธ์ของการค้นหานั้นไปยังปลายทางสุดท้าย เช่น ฐานข้อมูล คลังสินค้า หรือทะเลสาบ วิธีนี้ทำให้ฉันสามารถเพิ่มข้อมูลและกรองข้อมูลระหว่างดำเนินการได้ก่อนจะลงจอด จึงช่วยลดเวลาแฝงและลดต้นทุนการประมวลผลและการจัดเก็บ

ตัวอย่างการเข้าร่วม DeltaStream

สรุป

DeltaStream คืออะไรกันแน่? เป็นวิธีง่ายๆ ในการใช้ Apache Flink โดยที่ไม่ต้องรู้เรื่องนี้หรือทำอะไรกับมันโดยตรง จากตัวอย่างของฉัน คุณจะเห็นได้ว่าการเชื่อมต่อกับ Apache Kafka จากนั้นอ่าน เข้าร่วม และกรองข้อมูลนั้นทำได้ง่ายเพียงใด การเชื่อมต่ออื่นๆ ที่รองรับในปัจจุบัน ได้แก่ Kinesis, PostgreSQL, Snowflake และ Databricks และฉันได้ยินมาว่า ClickHouse และ Iceberg จะพร้อมใช้งานเร็วๆ นี้


ในที่สุด DeltaStream มอบพลังของ Apache Flink ให้กับคุณโดยที่ไม่ต้องยุ่งเกี่ยวกับ Apache Flink และคุณสามารถทำได้โดยใช้ SQL แทน Java หากคุณกำลังจัดการกับข้อมูลแบบสตรีมหรือกำลังมองหาวิธีใช้งาน นี่คือโซลูชันที่ชาญฉลาดและสะดวกสบายอย่างยิ่ง


ลองดูบทความ What the Heck is… อื่นๆ ของฉันที่ลิงค์ด้านล่าง:




-

L O A D I N G
. . . comments & more!

About Author

Shawn Gordon HackerNoon profile picture
Shawn Gordon@progrockrec
Software designer/developer, developer advocate, writer, and musician.

แขวนแท็ก

บทความนี้ถูกนำเสนอใน...