Utiliser Kinesis avec Python

Qu'est-ce qu'un flux Kinesis?

Collectez et traitez un grand nombre d'enregistrements de données en temps réel. Vous pouvez acquérir et enregistrer en continu de nombreux téra de données par heure. La période de conservation des données est de 24 heures. Il peut être prolongé jusqu'à 7 jours en chargeant.

Tesson

Une unité de débit de flux. Vous pouvez augmenter le débit du flux en augmentant la partition.

Enregistrement de données

Une unité de données stockée dans un flux. L'enregistrement se compose d'un numéro de séquence, d'une clé de partition et d'un BLOB de données. Data BLOB est la donnée elle-même. Base64 encodé et enregistré.

Limites de Kinesis

en train de lire

Si vous êtes pris dans l'un ou l'autre, une erreur se produira.

―― 2 Mo / s par partition --5 transactions par partition

l'écriture

Si vous êtes pris dans l'un ou l'autre, une erreur se produira.

―― 1 Mo / s par partition --1000 transactions par partition

Récupérer / mettre Kinesis en Python

Préparation

Installez boto avec pip. Obtenez la clé d'accès et la clé secrète sur AWS. Créez le fichier suivant en tant que .boto dans la même hiérarchie que le programme.

.boto


[Credentials]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

avoir

from boto impor kinesis

#Spécifiez la région Kinesis à utiliser
conn = kinesis.connect_to_region(region_name = 'Nom de la région')

#Obtenir les informations du flux spécifié
stream = conn.describe_stream('Nom du flux')

#Obtenez des informations sur les fragments à partir des informations de flux que vous venez d'obtenir
#S'il y a plusieurs fragments, retournez dans la liste
shards = stream['StreamDescription']['Shards']

#Obtenez de tous les éclats
for shard in shards:
  shard_id = shard['ShardId']

  #Obtenez la position pour obtenir
  #Premier argument: nom du flux
  #Deuxième argument: ID de partition
  #Troisième argument: type de lecture
  #         LATEST:Lire de la toute fin du fragment
  #         TRIM_HORIZON:Lire depuis le tout début du fragment
  #         AT_SEQUENCE_NUMBER:Lire à partir du numéro de séquence spécifié. Spécifiez le numéro de séquence dans le 4ème argument
  #         AFTER_SEQUENCE_NUMBER:Lit le suivant du numéro de séquence spécifié. Spécifiez le numéro de séquence dans le 4ème argument
  iterator = conn.get_sahrd_iterator(stream['StreamDescription']['StreamName'], shard_id, shard_iterator_type='LATEST')['ShardIterator']

  #Obtenir des données de Kinesis
  #La limite supérieure d'acquisition peut être spécifiée avec le deuxième argument(limit)
  result = conn.get_records(iterator)
  print result

Je pense que ce sera plus facile à comprendre si vous imprimez celui qui décrit le flux.

mettre

from boto import kinesis


#Spécifiez la région Kinesis à utiliser
conn = kinesis.connect_to_region(region_name = 'Nom de la région')

#mettre
conn.put_record('Nom du flux', data = 'hogehoge', partition_key = 'partition_key')

partition_key

Les clés de partition sont utilisées pour isoler les enregistrements de données et les acheminer vers différentes partitions du flux. Si votre flux comporte deux partitions, vous pouvez utiliser deux clés de partition pour contrôler quelles données sont stockées dans quelle partition.

référence

Recommended Posts

Utiliser Kinesis avec Python
Faire fonctionner Blender avec Python
Utiliser Excel avec Python (1)
Utiliser Excel avec Python (2)
Exploitez Excel avec Python open pyxl
Exploitez TwitterBot avec Lambda, Python
[Note] Faites fonctionner MongoDB avec Python
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Faites fonctionner l'imprimante de reçus avec python
Essayez d'exploiter Facebook avec Python
Faites fonctionner les appareils électroménagers ECHONET Lite avec Python
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Faire fonctionner l'alimentation smartlife avec python (de-IFTTT)
[GCP] Exploitez Google Cloud Storage avec Python
[Pyto] Faites fonctionner le Taptic Engine de l'iPhone avec Python
[Python] Utiliser automatiquement le navigateur avec Selenium
Faites fonctionner des appareils électroménagers avec Python et IRKit
Communication série avec Python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
"Orienté objet" appris avec python
Manipuler Redmine à l'aide de Python Redmine
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
Exploitez Filemaker depuis Python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
Exécutez prepDE.py avec python3
1.1 Premiers pas avec Python
Collecter des tweets avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS
Publier des tweets avec python
Conduisez WebDriver avec python