aws-kinesis-firehose

___ tag123amazonkinesis ___ Amazon Kinesis ist ein vollständig verwalteter Dienst für die Echtzeitverarbeitung von Streaming-Daten in großem Umfang. ___ qstnhdr ___ Kann ich automatisch Zeilenumbrüche an AWS Firehose-Datensätze anhängen? ___ qstntxt ___

Ich versuche, eine Kinesis Analytics-Anwendung mit den folgenden Einstellungen zu konfigurieren:

  • Der Eingabestream ist ein Kinesis-Firehose, der stringulierte JSON-Werte verwendet
  • Das SQL ist ein einfaches Passthrough (es muss später komplizierter sein, aber zum Testen sendet es nur die Daten durch)
  • Ausgabestrom ist ein zweiter Kinesis-Firehose, der Datensätze an einen S3-Bucket
  • liefert

Später werde ich den Inhalt des S3-Buckets mit Hive + JSONSERDE importieren, der erwartet, dass jeder JSON-Datensatz in einer eigenen Zeile lebt. Die Firehose-Ausgabe hängt nur alle JSON-Datensätze an, die JSONSERDE auflösen.

Ich konnte einen AWS-Lambda-Datenformatierer an den Ausgabestream anhängen, aber das erscheint teuer. Alles was ich will, ist jeden Datensatz mit einem Zeilenumbruch zu teilen.

Wenn ich ohne eine Analytics-App auskommen würde, würde ich die neue Zeile an jeden Firehose-Datensatz anhängen. Es scheint seltsam, dass es im SQL der App keine Möglichkeit gibt, dies zu tun:

%Vor%

Ist die beste Antwort, um den Lambda-Datenformatierer hinzuzufügen? Ich möchte das wirklich vermeiden.

    
___ answer49122914 ___

Ein einfaches Beispiel, wie wir es implementiert haben. Wir haben Javascript verwendet, um Datensätze in Kinesis Stream zu speichern, und Firehose verwendet, um mit gzip-Komprimierung in den s3-Speicherort umzuleiten. Später wird athena vom s3-Standort abfragen, um Datensätze von s3 zu holen.

Below Code zum Hinzufügen einer neuen Zeile vor dem Senden an Kinesis Stream mit JavaScript-Code.

%Vor%     
___ tag123awskinesisfirefhose ___ Amazon Kinesis Firehose ist ein vollständig verwalteter Dienst für die Bereitstellung von Echtzeit-Streaming-Daten an Ziele ___ answer45449395 ___

Ich hatte eine ähnliche Anforderung, um neue Zeilen zu den generierten Dateien hinzuzufügen. In unserer Anwendung wird firehose über API Gateway aufgerufen.

Dies wird in den Body-Mapping-Templates unter Integrationsanforderung angegeben.

Der folgende Befehl im API-Gateway generiert neue Zeilen für die Kinesis-Firehose-Datensätze.

Methode 1:

%Vor%

Methode 2:

%Vor%

Wenn Sie eine andere Trennzeichenänderung (\ n) zu einem Trennzeichen Ihrer Wahl benötigen.

Keine einfache Antwort auf Ihre Frage, aber das funktioniert perfekt, wenn Sie Firehose über API Gateway aufrufen.

Danke & amp; Grüße, Srivignesh KN

    
___
2
Antworten

Kann ich automatisch Zeilenumbrüche an AWS Firehose-Datensätze anhängen?

Ich versuche, eine Kinesis Analytics-Anwendung mit den folgenden Einstellungen zu konfigurieren: Der Eingabestream ist ein Kinesis-Firehose, der stringulierte JSON-Werte verwendet Das SQL ist ein einfaches Passthrough (es muss später kompl...
29.05.2017, 16:01