AWS Kinesis คืออะไร รูปแบบการออกแบบ กรณีใช้งาน & การเปรียบเทียบ

เผยแพร่แล้ว: 2022-07-01

เราอยู่ในยุคของการผสานการทำงานข้ามแอปพลิเคชัน การแจ้งเตือนทันที และการอัปเดตข้อมูลทันที ในสถานการณ์เช่นนี้ การสร้าง บำรุงรักษา และแก้ไขระบบแบบเรียลไทม์มีความสำคัญมากขึ้น

ตลอดหลายปีที่ผ่านมา มีเครื่องมือที่มีประโยชน์มากมายที่พัฒนาขึ้นเพื่อช่วยในการสร้างและบำรุงรักษาระบบข้ามแพลตฟอร์มดังกล่าว RabbitMQ, Kafka และ AWS Kinesis เป็นเครื่องมือสามอย่างที่ช่วยให้นักพัฒนาและวิศวกรทำงานกับข้อมูลแบบเรียลไทม์ได้อย่างราบรื่น ระบบเหล่านี้ถูกสร้างขึ้นและบำรุงรักษาโดยคำนึงถึงเป้าหมายที่แตกต่างกัน ดังนั้นจึงมีข้อดีและข้อจำกัดที่แตกต่างกันไปตามงานที่ทำอยู่

บทความนี้จะพูดถึงรายละเอียดเกี่ยวกับ AWS Kinesis และวิธีการทำงาน

Kinesis เป็นบริการสตรีมที่สร้างขึ้นบน AWS สามารถใช้ในการประมวลผลข้อมูลทุกประเภท ตั้งแต่บันทึก ข้อมูล IoT ข้อมูลวิดีโอ โดยพื้นฐานแล้วจะเป็นรูปแบบข้อมูลใดๆ วิธีนี้ช่วยให้คุณเรียกใช้โมเดลการเรียนรู้ของเครื่องต่างๆ และประมวลผลข้อมูลแบบเรียลไทม์ขณะที่ไหลผ่านระบบของคุณ ดังนั้นจึงช่วยลดความยุ่งยากในการเข้าถึงฐานข้อมูลแบบเดิมในขณะที่เพิ่มประสิทธิภาพโดยรวม

สารบัญ

สำรวจหลักสูตร MBA ยอดนิยมของเรา

ปริญญาโทบริหารธุรกิจจาก Golden Gate University ปริญญาโทบริหารธุรกิจ (MBA) Liverpool Business School MBA จาก Deakin Business School
MBA สาขาการตลาดดิจิทัลจาก Dekin University Executive MBA จาก SSBM ดูหลักสูตร MBA ทั้งหมด

รูปแบบการออกแบบผับ/ย่อย

ก่อนที่เราจะเจาะลึกถึงวิธีการใช้ Kinesis อย่างละเอียด คุณจำเป็นต้องรู้เพิ่มเติมอีกเล็กน้อยเกี่ยวกับรูปแบบการออกแบบที่ใช้ ในกรณีนี้ เรากำลังพูดถึงการออกแบบของผู้เผยแพร่และสมาชิก ซึ่งมักเรียกกันว่ารูปแบบการออกแบบผับ/ย่อย รูปแบบการออกแบบนี้ได้รับการพัฒนาเพื่อให้ผู้จัดพิมพ์ – ผู้ส่งข้อความ พุชเหตุการณ์ใน Kinesis – บัสเหตุการณ์ จากนั้นบัสเหตุการณ์นี้จะกระจายข้อมูลอินพุตไปยังสมาชิกทั้งหมดได้สำเร็จ

องค์ประกอบสำคัญประการหนึ่งที่ต้องจำไว้ในที่นี้คือ ผู้เผยแพร่ไม่ทราบว่ามีสมาชิกรายใดอยู่ การส่งข้อความและการรับส่งข้อความทั้งหมดได้รับการจัดการโดย AWS Kinesis ทั้งหมด

กล่าวอีกนัยหนึ่ง รูปแบบการออกแบบผับ/ย่อยใช้สำหรับการสื่อสารข้อความอย่างมีประสิทธิภาพโดยไม่ต้องสร้างการออกแบบที่เชื่อมโยงกันมาก Kinesis มุ่งเน้นที่การใช้ส่วนประกอบอิสระและสร้างเวิร์กโฟลว์แบบกระจายโดยรวม

โดยพื้นฐานแล้ว AWS Kinesis เป็นเครื่องมือการสตรีมที่ทรงพลังซึ่งมีข้อดีที่แตกต่างกัน โดยเฉพาะอย่างยิ่งเมื่อเปรียบเทียบกับเครื่องมือการสตรีมแบบเรียลไทม์อื่นๆ ข้อดีอย่างหนึ่งคือเป็นบริการที่มีการจัดการ ดังนั้นนักพัฒนาจึงไม่ต้องจัดการกับการดูแลระบบ ซึ่งช่วยให้นักพัฒนาสามารถมุ่งเน้นไปที่โค้ดและระบบของตนได้มากขึ้น และลดภาระหน้าที่ในการดูแลระบบ

ตอนนี้ มาดูกรณีการใช้งานของ Kinesis กันบ้าง

ใช้กรณีของ AWS Kinesis – การสตรีมข้อมูล

AWS Kinesis มีประโยชน์สำหรับบริษัทขนาดใหญ่และขนาดเล็กที่ต้องการจัดการและผสานรวมข้อมูลของตนในแพลตฟอร์มต่างๆ Kinesis มีประโยชน์ในสถานการณ์ขนาดใหญ่และขนาดเล็กสำหรับองค์กรที่ต้องการจัดการและผสานรวมข้อมูลในแพลตฟอร์มต่างๆ

มาดูกรณีการใช้งานขนาดใหญ่สองกรณีซึ่งบริษัทต่างๆ ใช้ AWS Kinesis เพื่อจัดการข้อมูลแบบเรียลไทม์จำนวนมากได้อย่างราบรื่น

Netflix

Netflix ใช้ AWS Kinesis เพื่อประมวลผลข้อมูลบันทึกหลาย TB ทุกวัน Netflix ต้องการแอปพลิเคชันแบบรวมศูนย์ที่บันทึกข้อมูลทั้งหมดในแบบเรียลไทม์ ด้วยการใช้ Kinesis Netflix ได้พัฒนา Dredge ซึ่งทำให้เนื้อหาสมบูรณ์ด้วยข้อมูลเมตาในแบบเรียลไทม์ ด้วยวิธีนี้ ข้อมูลจะได้รับการประมวลผลทันทีที่ผ่าน Kinesis วิธีนี้ช่วยขจัดขั้นตอนที่น่าเบื่อหน่ายในการโหลดข้อมูลลงในฐานข้อมูลเพื่อการประมวลผลในอนาคต

เวอริโทน

Veriton ให้บริการ AI และการเรียนรู้ของเครื่อง ใช้สตรีมวิดีโอ AWS Kinesis เพื่อประมวลผลข้อมูลลูกค้า Veriton ยังใช้โมเดล ML และ AI กับเนื้อหาแบบเรียลไทม์เพื่อปรับปรุงด้วยเมตริกและข้อมูลเมตา การใช้ข้อมูลเพิ่มเติม Veritone ช่วยให้ค้นหาวิดีโอสตรีมของ Kinesis ได้ง่ายขึ้นโดยดูจากเสียง การจดจำใบหน้า ข้อมูลที่ติดแท็ก ฯลฯ

นี่เป็นเพียงสองตัวอย่างมากมายที่แสดงให้เห็นว่าบริษัทต่างๆ ในปัจจุบันใช้ประโยชน์จาก AWS Kinesis เพื่อทำงานกับข้อมูลการสตรีมแบบเรียลไทม์ได้อย่างมีประสิทธิภาพมากขึ้นอย่างไร

มาดูเทคนิคและส่วนประกอบที่สำคัญของสตรีม AWS Kinesis กัน

เรียนรู้หลักสูตร AI & ML จากมหาวิทยาลัยชั้นนำของโลก รับ Masters, Executive PGP หรือ Advanced Certificate Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

สตรีม vs Firehose

AWS Kinesis นำเสนอผลิตภัณฑ์หลักสองผลิตภัณฑ์แก่นักพัฒนา ได้แก่ Kinetic Streams และ Kinesis Firehose

ในการทำงานกับ Kinesis Stream คุณจะต้องใช้ Kinesis Producer Library จะช่วยให้คุณใส่ข้อมูลแบบเรียลไทม์ทั้งหมดลงในสตรีมของคุณ นอกจากนี้ คุณสามารถเชื่อมต่อไลบรารีนี้กับแอปพลิเคชันหรือกระบวนการเกือบทั้งหมด อย่างไรก็ตาม Kinesis Streams ไม่ใช่บริการที่มีการจัดการ 100% ดังนั้น ทีมนักพัฒนาจะต้องปรับขนาดด้วยตนเองเมื่อจำเป็น นอกจากนี้ ข้อมูลที่ป้อนเข้าสู่สตรีมจะอยู่ที่นั่นเป็นเวลาเจ็ดวัน

Kinesis Firehose ใช้งานได้ง่ายกว่าเล็กน้อย ข้อมูลที่ส่งไปยัง Kinesis Firehose จะถูกส่งไปยัง Amazon Redshift, Amazon S3 และแม้แต่ Elasticsearch ซึ่งทั้งหมดนี้ใช้กลไก AWS Kinesis หลังจากนี้ คุณสามารถดำเนินการได้ตามความต้องการของคุณ หากข้อมูลถูกจัดเก็บไว้ใน Amazon S3 หรือระบบพื้นที่จัดเก็บของ AWS อื่นๆ คุณสามารถปล่อยไว้ที่นั่นได้นานเท่าที่คุณต้องการ

การตั้งค่าสตรีมบน Kinesis

ก่อนที่คุณจะเริ่มเข้าถึง Kinesis คุณต้องตั้งค่าสตรีมโดยเข้าถึง AWS CLI ใน command shell ให้ป้อนคำสั่งต่อไปนี้เพื่อสร้างสตรีมชื่อ DataProcessingStream

–stream ชื่อ DataProcessingStream \

–shard-count 1 \

–region eu-west-1

การสร้างท่อส่งกระแสข้อมูลด้วย Python

เมื่อคุณตั้งค่าสตรีมบน Kinesis แล้ว คุณต้องเริ่มสร้างผู้ผลิตและผู้บริโภค ส่วนประกอบหลักของ Kinesis ช่วยให้คุณสร้างชั้นการเข้าถึงเพื่อผสานรวมระบบ ซอฟต์แวร์ และแอปพลิเคชันอื่นๆ

ในบทช่วยสอนนี้ เราจะทำงานกับไลบรารี boto3 Python เพื่อเชื่อมต่อกับ Kinesis

การสร้างผู้ผลิต

ใช้รหัสที่กล่าวถึงด้านล่างเพื่อสร้างโปรดิวเซอร์โดยใช้ภาษาการเขียนโปรแกรม Python:

นำเข้า boto3

นำเข้า json

นำเข้าการบันทึก

logging.basicConfig (ระดับ = การบันทึก.INFO)

เซสชัน = boto3.Session(region_name='eu-west-1′)

ลูกค้า = session.client('kinesis')

test_data = {'data_tag': 'DataOne', 'score': '10', 'char': 'Database Warrior'}

ตอบกลับ = client.put_record(

StreamName='DataProcessingStream',

ข้อมูล=json.dumps({

“data_tag”: test_data['data_tag'],

“คะแนน”: test_data['score'],

“ถ่าน”: test_data['char']

})

PartitionKey='a01′

)

logging.info("ใส่ข้อมูลคะแนนใหม่: %s", test_data)

ในการดึงข้อมูล คุณต้องมีสคริปต์อื่นเพื่อฟังข้อมูลที่ป้อนไปยังผู้ผลิต เพื่อสิ่งนี้ คุณสามารถใช้ ShardIterator เพื่อเข้าถึงข้อมูลทั้งหมดที่ป้อนเข้าสู่ Kinesis ด้วยวิธีนี้ คุณจะสามารถเข้าถึงบันทึกแบบเรียลไทม์และในอนาคตใน Kinesis ได้

การสร้างผู้บริโภค

ใช้รหัสที่กล่าวถึงด้านล่างเพื่อสร้างผู้บริโภค Python:

นำเข้า boto3

นำเข้า json

นำเข้าsys

นำเข้าการบันทึก

logging.basicConfig (ระดับ = การบันทึก.INFO)

เซสชัน = boto3.Session(region_name='eu-west-1′)

ลูกค้า = session.client('kinesis')

aws_kinesis_stream = client.describe_stream (StreamName='DataProcessingStream)

shard_id = aws_kinesis_stream['StreamDescription']['Shards'][0]['ShardId']

stream_response = client.get_shard_iterator (

StreamName='DataProcessingStream',

ShardId=shard_id,

ShardIteratorType='TRIM_HORIZON'

)

ตัววนซ้ำ = stream_response['ShardIterator']

ในขณะที่จริง:

ลอง:

aws_kinesis_response = client.get_records (ShardIterator=iterator, Limit=5)

iterator = aws_kinesis_response['NextShardIterator']

สำหรับบันทึกใน aws_kinesis_response['Records']:

ถ้า 'ข้อมูล' ในบันทึกและ len (บันทึก ['ข้อมูล']) > 0:

logging.info(“ได้รับคะแนนข้อมูลใหม่: %s”, json.loads(record['Data']))

ยกเว้น KeyboardInterrupt:

sys.exit()

ในตัวอย่างข้างต้น เรากำลังพิมพ์ข้อมูลเท่านั้น

ปัญหาเกี่ยวกับท่อส่ง Kinesis

Kinesis มีประโยชน์จริง ๆ แต่ก็ไม่ได้มาโดยปราศจากความท้าทายและข้อบกพร่อง หนึ่งในความท้าทายที่สำคัญที่คุณจะต้องเผชิญขณะทำงานกับ Kinesis เรียกว่า 'การสังเกตได้'

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

อ่านบทความยอดนิยมของเราเกี่ยวกับ MBA

เงินเดือนนักวิเคราะห์การเงิน – นักศึกษาใหม่และมีประสบการณ์ คำถามสัมภาษณ์ยอดนิยมและคำตอบสำหรับHR ตัวเลือกอาชีพการตลาด MBA ในสหรัฐอเมริกา
ตัวเลือกอาชีพที่ดีที่สุดในสหรัฐอเมริกาหลังจาก MBA ในทรัพยากรมนุษย์ ตัวเลือกอาชีพ 7 อันดับแรกในการขาย งานการเงินที่จ่ายสูงที่สุดในสหรัฐอเมริกา: เฉลี่ยถึงสูงสุด
ตัวเลือกอาชีพ 7 อันดับแรกในด้านการเงินในสหรัฐอเมริกา : ต้องอ่าน แนวโน้มการตลาด 5 อันดับแรกในปี 2565 เงินเดือน MBA ในสหรัฐอเมริกาในปี 2565 [ความเชี่ยวชาญทั้งหมด]

สรุปแล้ว

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

วิทยาศาสตรมหาบัณฑิต ของ upGrad ในการเรียนรู้ของเครื่องและ AI นำเสนอโดยความร่วมมือของ IIIT-B และ LJMU เป็นหลักสูตรที่ครอบคลุม 18 เดือนที่ออกแบบมาเพื่อช่วยให้คุณเริ่มต้นด้วยการสำรวจข้อมูลเบื้องต้นและเข้าถึงแนวคิดที่สำคัญทั้งหมดของ NLP, Deep การเรียนรู้ การเรียนรู้การเสริมแรง และอื่นๆ ยิ่งไปกว่านั้น คุณจะได้ทำงานในโครงการอุตสาหกรรม การสนับสนุนด้านอาชีพ 360 องศา การให้คำปรึกษาเฉพาะบุคคล โอกาสในการสร้างเครือข่ายเพื่อน และอื่นๆ อีกมากมายเพื่อช่วยให้คุณเชี่ยวชาญการเรียนรู้ของเครื่องและ AI

1. AWS Kinesis สามารถดึงข้อมูลได้หรือไม่

Amazon Kinesis เป็นโซลูชันการสตรีมข้อมูลแบบเรียลไทม์ที่ปรับขนาดได้และทนทาน ซึ่งทำงานโดยการเก็บข้อมูล GB อย่างต่อเนื่องในแบบเรียลไทม์จากแหล่งที่มานับพัน

2. สตรีม Kinesis หนึ่งรายการสามารถมีผู้บริโภคหลายรายได้หรือไม่

ได้ ด้วยการใช้ตัวทำซ้ำชาร์ด คุณสามารถจัดหาผู้บริโภคหลายรายในสตรีม Kinesis เดียวได้

3. AWS Kinesis ทำงานกับคิวประเภทใด

AWS Kinesis คือ FIFO - เข้าก่อนออกก่อน - ในการดำเนินการและกระบวนการข้อมูล