Sammeln und verarbeiten Sie eine große Anzahl von Datensätzen in Echtzeit. Sie können kontinuierlich viele Tera Daten pro Stunde erfassen und speichern. Die Aufbewahrungsfrist für Daten beträgt 24 Stunden. Es kann durch Aufladen auf bis zu 7 Tage verlängert werden.
Eine Einheit des Stromdurchsatzes. Sie können den Durchsatz des Streams erhöhen, indem Sie den Shard erhöhen.
Eine in einem Stream gespeicherte Dateneinheit. Der Datensatz besteht aus einer Sequenznummer, einem Partitionsschlüssel und einem Daten-BLOB. Daten-BLOB sind die Daten selbst. Base64 codiert und gespeichert.
Wenn Sie in eines der beiden Probleme geraten, tritt ein Fehler auf.
―― 2 MB / s pro Shard
Wenn Sie in eines der beiden Probleme geraten, tritt ein Fehler auf.
―― 1 MB / s pro Shard
Installieren Sie boto mit pip. Beziehen Sie den Zugriffsschlüssel und den geheimen Schlüssel in AWS. Erstellen Sie die folgende Datei als ".boto" in derselben Hierarchie wie das Programm.
.boto
[Credentials]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
from boto impor kinesis
#Geben Sie die zu verwendende Kinesis-Region an
conn = kinesis.connect_to_region(region_name = 'Regionsname')
#Rufen Sie die Informationen des angegebenen Streams ab
stream = conn.describe_stream('Stream-Name')
#Holen Sie sich Shard-Informationen aus den Stream-Informationen, die Sie gerade erhalten haben
#Wenn mehrere Shards vorhanden sind, kehren Sie in die Liste zurück
shards = stream['StreamDescription']['Shards']
#Holen Sie sich von allen Scherben
for shard in shards:
shard_id = shard['ShardId']
#Holen Sie sich die Position zu bekommen
#Erstes Argument: Streamname
#Zweites Argument: Shard ID
#Drittes Argument: Lesetyp
# LATEST:Lesen Sie vom Ende der Scherbe
# TRIM_HORIZON:Lesen Sie von Anfang an die Scherbe
# AT_SEQUENCE_NUMBER:Lesen Sie aus der angegebenen Sequenznummer. Geben Sie die Sequenznummer im 4. Argument an
# AFTER_SEQUENCE_NUMBER:Lesen Sie vom nächsten der angegebenen Sequenznummer. Geben Sie die Sequenznummer im 4. Argument an
iterator = conn.get_sahrd_iterator(stream['StreamDescription']['StreamName'], shard_id, shard_iterator_type='LATEST')['ShardIterator']
#Holen Sie sich Daten von Kinesis
#Die Obergrenze für die Erfassung kann mit dem zweiten Argument angegeben werden(limit)
result = conn.get_records(iterator)
print result
Ich denke, es wird einfacher zu verstehen sein, wenn Sie den drucken, der den Stream beschreibt.
from boto import kinesis
#Geben Sie die zu verwendende Kinesis-Region an
conn = kinesis.connect_to_region(region_name = 'Regionsname')
#stellen
conn.put_record('Stream-Name', data = 'hogehoge', partition_key = 'partition_key')
partition_key
Partitionsschlüssel werden verwendet, um Datensätze zu isolieren und an verschiedene Shards im Stream weiterzuleiten. Wenn Ihr Stream zwei Shards enthält, können Sie mit zwei Partitionsschlüsseln steuern, welche Daten in welchem Shard gespeichert sind.
Recommended Posts