Kinesis mit Python betreiben

Was ist ein Kinesis-Stream?

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.

Scherbe

Eine Einheit des Stromdurchsatzes. Sie können den Durchsatz des Streams erhöhen, indem Sie den Shard erhöhen.

Datensatz

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.

Kinesis Grenzen

lesen

Wenn Sie in eines der beiden Probleme geraten, tritt ein Fehler auf.

―― 2 MB / s pro Shard

Schreiben

Wenn Sie in eines der beiden Probleme geraten, tritt ein Fehler auf.

―― 1 MB / s pro Shard

Holen Sie sich von Kinesis in Python

Vorbereitung

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

erhalten

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.

stellen

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.

Referenz

Recommended Posts

Kinesis mit Python betreiben
Betreiben Sie Blender mit Python
Betreiben Sie Excel mit Python (1)
Betreiben Sie Excel mit Python (2)
Betreiben Sie Excel mit Python Open Pyxl
Betreiben Sie TwitterBot mit Lambda, Python
[Hinweis] Betreiben Sie MongoDB mit Python
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Bedienen Sie den Belegdrucker mit Python
Versuchen Sie, Facebook mit Python zu betreiben
Betreiben Sie ECHONET Lite-Haushaltsgeräte mit Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Betreiben Sie das Smartlife-Netzteil mit Python (de-IFTTT).
[GCP] Betreiben Sie Google Cloud Storage mit Python
[Pyto] Betreibe die Taptic Engine des iPhone mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
Betreiben Sie Haushaltsgeräte mit Python und IRKit
Serielle Kommunikation mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Bearbeiten Sie Redmine mit Python Redmine
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
Bedienen Sie Filemaker von Python aus
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten
Fahren Sie WebDriver mit Python