AWSSDK を使用してホットスポットを含む Kinesis ストリームを生成する - AWSSDK コードサンプル

AWSDocAWS SDKGitHub サンプルリポジトリには、さらに多くの SDK サンプルがあります

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWSSDK を使用してホットスポットを含む Kinesis ストリームを生成する

次のコード例は、ホットスポットで Kinesis ストリームを生成する方法を示しています。

詳細については、「例:ストリーム上のホットスポットの検出」を参照してください。

Python
SDK for Python (Boto3)
注記

他にもありますGitHub。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

import json from pprint import pprint import random import time import boto3 STREAM_NAME = "ExampleInputStream" def get_hotspot(field, spot_size): hotspot = { 'left': field['left'] + random.random() * (field['width'] - spot_size), 'width': spot_size, 'top': field['top'] + random.random() * (field['height'] - spot_size), 'height': spot_size } return hotspot def get_record(field, hotspot, hotspot_weight): rectangle = hotspot if random.random() < hotspot_weight else field point = { 'x': rectangle['left'] + random.random() * rectangle['width'], 'y': rectangle['top'] + random.random() * rectangle['height'], 'is_hot': 'Y' if rectangle is hotspot else 'N' } return {'Data': json.dumps(point), 'PartitionKey': 'partition_key'} def generate( stream_name, field, hotspot_size, hotspot_weight, batch_size, kinesis_client): """ Generates points used as input to a hotspot detection algorithm. With probability hotspot_weight (20%), a point is drawn from the hotspot; otherwise, it is drawn from the base field. The location of the hotspot changes for every 1000 points generated. """ points_generated = 0 hotspot = None while True: if points_generated % 1000 == 0: hotspot = get_hotspot(field, hotspot_size) records = [ get_record(field, hotspot, hotspot_weight) for _ in range(batch_size)] points_generated += len(records) pprint(records) kinesis_client.put_records(StreamName=stream_name, Records=records) time.sleep(0.1) if __name__ == "__main__": generate( stream_name=STREAM_NAME, field={'left': 0, 'width': 10, 'top': 0, 'height': 10}, hotspot_size=1, hotspot_weight=0.2, batch_size=10, kinesis_client=boto3.client('kinesis'))