Der Konsum einer kinesis-stream in python
Ich kann nicht scheinen zu finden, ein anständiges Beispiel, das zeigt, wie kann ich verbrauchen eine AWS Kinesis-stream via Python. Kann jemand bitte geben Sie mir einige Beispiele, die ich schauen konnte in?
Besten
- Wirklich zu schätzen einige helfen auf diese Jungs.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während diese Frage bereits beantwortet wurde, könnte es eine gute Idee für zukünftige Leser zu prüfen, mit der
Kinesis Client Library (KCL) for Python
anstattboto
direkt. Es vereinfacht Verzehr aus dem stream , wenn Sie mehrere Verbraucher Instanzen und/oder ändern von Splitter-Konfigurationen.https://aws.amazon.com/blogs/aws/speak-to-kinesis-in-python/
Mehr vollständige enumeration, was die KCL bietet
Die Elemente in Fettdruck sind diejenigen, die ich denke, sind die, wo die KCL-wirklich nicht-trivialen Wert über boto. Aber je nach Anwendungsfall boto viel viel viel einfacher.
sollten Sie verwenden, boto.kinesis:
Nachdem Sie erstellt einen stream:
Schritt 1: anschließen an die aws kinesis:
Schritt 2: Holen Sie sich die stream-info (wie, wie viele Scherben, wenn es aktiv ist ..)
Schritt 3 : Holen Sie sich alle Splitter ids, und für jede freigegebene id-Holen Sie sich die shard iterator:
Schritt 4 : Lesen Sie die Daten für die einzelnen Splitter
limit ist das limit der Datensätze, die Sie erhalten möchten. (Sie können bis zu 10 MB)
shard_iterator ist das gemeinsame aus den vorherigen Schritt.
in Ihrem nächsten Aufruf get_records, sollten Sie die shard_iterator, die Sie erhalten mit dem Ergebnis der vorherigen get_records.
Hinweis: in einem Aufruf zu get_records, (limit = None) erhalten Sie leere Datensätze.
wenn der Aufruf zu get_records mit einem limit, erhalten Sie die Datensätze in der gleichen partition key (wenn Sie Daten zu streamen, musst du den partition key :