

Nach reiflicher Überlegung haben wir uns entschieden, Amazon Kinesis Data Analytics für SQL-Anwendungen einzustellen:

1. Ab dem **1. September 2025** werden wir keine Bugfixes für Amazon Kinesis Data Analytics for SQL-Anwendungen bereitstellen, da wir aufgrund der bevorstehenden Einstellung nur eingeschränkten Support dafür haben werden.

2. Ab dem **15. Oktober 2025** können Sie keine neuen Kinesis Data Analytics for SQL-Anwendungen mehr erstellen.

3. Wir werden Ihre Anwendungen ab dem **27. Januar 2026** löschen. Sie können Ihre Amazon Kinesis Data Analytics for SQL-Anwendungen nicht starten oder betreiben. Ab diesem Zeitpunkt ist kein Support mehr für Amazon Kinesis Data Analytics for SQL verfügbar. Weitere Informationen finden Sie unter [Einstellung von Amazon Kinesis Data Analytics für SQL-Anwendungen](discontinuation.md).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiele: Umwandeln von Zeichenfolgewerten
<a name="examples-transforming-strings"></a>

Amazon-Kinesis-Data-Analytics unterstützt Formate wie JSON und CSV für Datensätze in einer Streaming-Quelle. Details hierzu finden Sie unter [RecordFormat](API_RecordFormat.md). Diese Datensätze werden anschließend gemäß der Eingabekonfiguration Zeilen in einem In-Application-Stream zugeordnet. Details hierzu finden Sie unter [Konfigurieren der Anwendungseingabe](how-it-works-input.md). Die Eingabekonfiguration gibt an, wie Datensatzfelder in der Streaming-Quelle Spalten in einem In-Application-Stream zugeordnet werden. 

Diese Zuordnung funktioniert, wenn die Datensätze in der Streaming-Quelle die unterstützten Formate berücksichtigen, wodurch es zu einem In-Application-Stream mit normalisierten Daten kommt. Was passiert jedoch, wenn die Daten in Ihrer Streaming-Quelle nicht den unterstützten Standards entsprechen? Was geschieht beispielsweise, wenn Ihre Streaming-Quelle Daten wie z. B. Clickstream-Daten, IoT-Sensoren und Anwendungsprotokolle umfasst? 

Berücksichtigen Sie die folgenden Beispiele:
+ Streaming-Quelle enthält Anwendungsprotokolle– Die Anwendungsprotokolle befolgen das standardmäßige Apache-Protokollformat und werden im JSON-Format in den Stream geschrieben. 

  ```
  {
     "Log":"192.168.254.30 - John [24/May/2004:22:01:02 -0700] "GET /icons/apache_pb.gif HTTP/1.1" 304 0"
  }
  ```

  Weitere Informationen zum standardmäßigen Apache-Protokollformat finden Sie unter [Log Files](https://httpd.apache.org/docs/2.4/logs.html) auf der Apache-Website. 

   
+ Streaming-Quelle enthält teilweise strukturierte Daten – Im folgenden Beispiel sind zwei Datensätze zu sehen. Der Wert des Feldes `Col_E_Unstructured` besteht aus einer Reihe von durch Kommas getrennten Werten. Es gibt fünf Spalten: die ersten vier haben Werte vom Typ "Zeichenfolge" und die letzte Spalte enthält durch Kommas getrennte Werte.

  ```
  { "Col_A" : "string",
    "Col_B" : "string",
    "Col_C" : "string",
    "Col_D" : "string",
    "Col_E_Unstructured" : "value,value,value,value"}
  
  { "Col_A" : "string",
    "Col_B" : "string",
    "Col_C" : "string",
    "Col_D" : "string",
    "Col_E_Unstructured" : "value,value,value,value"}
  ```
+ Die Aufzeichnungen in Ihrer Streaming-Quelle enthalten URLs, und Sie benötigen einen Teil des URL-Domainnamens für Analysen.

  ```
  { "referrer" : "http://www.amazon.com"}
  { "referrer" : "http://www.stackoverflow.com" }
  ```

In diesen Fällen lassen sich mit dem folgenden zwei Schritte umfassenden Prozess in der Regel In-Application-Streams mit normalisierten Daten erstellen:

1. Konfigurieren Sie die Anwendungseingabe, um das unstrukturierte Feld einer Spalte des Typs `VARCHAR(N)` in dem erstellten In-Application-Eingabe-Stream zuzuordnen.

1. Verwenden Sie in Ihrem Anwendungscode Zeichenfolgefunktionen, um diese einzelne Spalte in mehrere Spalten aufzuteilen, und speichern Sie die Zeilen anschließend in einem anderen In-Application-Stream. Dieser über Ihren Anwendungscode erstellte In-Application-Stream enthält normalisierte Daten. Sie können dann an diesem In-Application-Stream Analysen durchführen.

Amazon-Kinesis-Data-Analytics bietet die folgenden Zeichenfolgeoperationen, SQL-Standardfunktionen und Erweiterungen des SQL-Standards für die Arbeit mit Zeichenfolgespalten: 
+ **Zeichenfolgeoperatoren** – Operatoren wie `LIKE` und `SIMILAR` sind hilfreich für den Vergleich von Zeichenfolgen. Weitere Informationen finden Sie unter [String-Operatoren](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-string-operators.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink.*
+ **SQL-Funktionen** – Die folgenden Funktionen sind bei der Bearbeitung einzelner Zeichenfolgen hilfreich. Weitere Informationen finden Sie unter [Zeichenketten- und Suchfunktionen](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-string-and-search-functions.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink*.
  + `CHAR_LENGTH` – Gibt die Länge einer Zeichenfolge an. 
  + `INITCAP` – Gibt eine konvertierte Version der Eingabezeichenfolge zurück: jeder Anfangsbuchstabe eines Worts – Leerzeichen als Trennzeichen – ist ein Großbuchstabe, die restlichen Buchstaben sind Kleinbuchstaben. 
  + `LOWER/UPPER` – Konvertiert eine Zeichenfolge in Klein- oder Großbuchstaben. 
  + `OVERLAY` – Ersetzt einen Teil der ersten Zeichenfolgenarguments (die ursprüngliche Zeichenfolge) mit dem zweiten Zeichenfolgenargument (die Ersetzungszeichenfolge).
  + `POSITION` – Sucht nach einer Zeichenfolge in einer anderen Zeichenfolge. 
  + `REGEX_REPLACE` – Ersetzt eine Teilzeichenfolge durch eine andere Teilzeichenfolge.
  + `SUBSTRING` – Extrahiert einen Teil einer Quell-Zeichenfolge ab einer bestimmten Position. 
  + `TRIM` – Entfernt Instances des angegebenen Zeichens ab dem Anfang oder Ende der Quellzeichenfolge. 
+ **SQL-Erweiterungen** — Diese sind nützlich für die Arbeit mit unstrukturierten Zeichenketten wie Logs und URIs. Weitere Informationen finden Sie unter [Funktionen zum Analysieren von Protokollen](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-pattern-matching-functions.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink*.
  + `FAST_REGEX_LOG_PARSER` – Arbeitet ähnlich wie der regex-Parser, nimmt jedoch einige „Abkürzungen“, um schneller Ergebnisse bereitzustellen. Beispielsweise stoppt der schnelle Parser für reguläre Ausdrücke bei der ersten ermittelten Übereinstimmung (auch als *träge Semantik* bekannt).
  + `FIXED_COLUMN_LOG_PARSE` – Analysiert Felder mit fester Breite und konvertiert diese automatisch in die gegebenen SQL-Typen.
  + `REGEX_LOG_PARSE` – Analysiert eine Zeichenfolge basierend auf regulären Java-Standardausdrücken.
  + `SYS_LOG_PARSE`— Analysiert Einträge, die häufig in UNIX/Linux Systemprotokollen zu finden sind.
  + `VARIABLE_COLUMN_LOG_PARSE` – Teilt eine Eingabezeichenfolge in durch ein Trennzeichen oder eine Trennzeichenfolge getrennte Felder.
  + `W3C_LOG_PARSE` – Kann zum schnellen Formatieren von Apache-Protokollen verwendet werden.

Beispiele für die Verwendung dieser Funktionen finden Sie in den folgenden Themen:

**Topics**
+ [Beispiel: Extrahieren eines Teils einer Zeichenfolge (Funktion SUBSTRING)](examples-transforming-strings-substring.md)
+ [Beispiel: Ersetzen einer Teilzeichenfolge mit Regex (Funktion REGEX\$1REPLACE)](examples-transforming-strings-regexreplace.md)
+ [Beispiel: Analysieren von Protokollzeichenfolgen basierend auf regulären Ausdrücken (Funktion REGEX\$1LOG\$1PARSE)](examples-transforming-strings-regexlogparse.md)
+ [Beispiel: Analysieren von Web-Protokolle (Funktion W3C\$1LOG\$1PARSE)](examples-transforming-strings-w3clogparse.md)
+ [Beispiel: Aufteilen von Zeichenfolgen auf mehrerer Felder (Funktion VARIABLE\$1COLUMN\$1LOG\$1PARSE)](examples-transforming-strings-variablecolumnlogparse.md)

# Beispiel: Extrahieren eines Teils einer Zeichenfolge (Funktion SUBSTRING)
<a name="examples-transforming-strings-substring"></a>

In diesem Beispiel wird die Funktion `SUBSTRING` zum Umwandeln einer Zeichenfolge in Amazon-Kinesis-Data-Analytics verwendet. Die Funktion `SUBSTRING` extrahiert einen Teil einer Quell-Zeichenfolge ab einer bestimmten Position. Weitere Informationen finden Sie unter [SUBSTRING](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-substring.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink*. 

In diesem Beispiel schreiben Sie die folgenden Datensätze in einen Amazon-Kinesis-Datenstrom. 

```
{ "REFERRER" : "http://www.amazon.com" }
{ "REFERRER" : "http://www.amazon.com"}
{ "REFERRER" : "http://www.amazon.com"}
...
```



Anschließend erstellen Sie eine Kinesis Data Analytics-Anwendung in der Konsole mit dem Kinesis-Datenstrom als Streaming-Quelle. Der Erkennungsvorgang liest Beispieldatensätze auf der Streaming-Quelle und erschließt ein In-Application-Schema mit einer Spalte (`REFERRER`), wie hier gezeigt.

![\[Konsolen-Screenshot, der das Anwendungsschema mit einer Liste von Schemas URLs in der Referrer-Spalte zeigt.\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/referrer-10.png)


Anschließend verwenden Sie die Anwendungscode mit der Funktion `SUBSTRING` zum Analysieren der URL-Zeichenfolge, um den Namen des Unternehmens abzurufen. Fügen Sie die resultierenden Daten dann wie nachstehend dargestellt in einen anderen In-Application-Stream ein: 



![\[Screenshot der Konsole mit der Registerkarte für die Echtzeitanalyse mit den resultierenden Daten im In-Application-Stream.\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/referrer-20.png)


**Topics**
+ [Schritt 1: Erstellen eines Kinesis-Datenstroms](#examples-transforming-strings-substring-1)
+ [Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung](#examples-transforming-strings-substring-2)

## Schritt 1: Erstellen eines Kinesis-Datenstroms
<a name="examples-transforming-strings-substring-1"></a>

Erstellen Sie einen Amazon-Kinesis-Datenstrom und füllen Sie die Protokolldatensätze wie folgt aus:

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Kinesis-Konsole unter [https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis).

1. Klicken Sie im Navigationsbereich auf **Data Streams (Daten-Streams)**.

1. Klicken Sie auf **Create Kinesis stream (Kinesis-Stream erstellen)** und erstellen Sie einen Stream mit einer Shard. Weitere Informationen finden Sie unter [Einen Stream erstellen](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html) im *Amazon-Kinesis-Data-Streams-Entwicklerhandbuch*.

1. Führen Sie den folgenden Python-Code aus, um Beispiel-Protokolldatensätze zu füllen. Dieser einfache Code schreibt kontinuierlich denselben Protokolldatensatz in den Stream.

   ```
    
   import json
   import boto3
   
   STREAM_NAME = "ExampleInputStream"
   
   
   def get_data():
       return {"REFERRER": "http://www.amazon.com"}
   
   
   def generate(stream_name, kinesis_client):
       while True:
           data = get_data()
           print(data)
           kinesis_client.put_record(
               StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey"
           )
   
   
   if __name__ == "__main__":
       generate(STREAM_NAME, boto3.client("kinesis"))
   ```

## Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung
<a name="examples-transforming-strings-substring-2"></a>

Erstellen Sie als Nächstes wie folgt eine Kinesis Data Analytics-Anwendung:

1. [Öffnen Sie die Managed Service for Apache Flink-Konsole unter /kinesisanalytics. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesisanalytics)

1. Klicken Sie auf **Create application (Anwendung erstellen)**, geben Sie einen Anwendungsnamen ein und klicken Sie erneut auf **Create application (Anwendung erstellen)**.

1. Wählen Sie auf der Detailseite der Anwendung **Connect streaming data (Streaming-Daten verbinden)**.

1. Gehen Sie auf der Seite **Connect to source (Mit Quelle verbinden)** wie folgt vor:

   1. Wählen Sie den Stream aus, den Sie im vorherigen Abschnitt erstellt haben. 

   1. Wählen Sie die Option zum Erstellen einer IAM-Rolle.

   1. Klicken Sie auf **Discover schema (Schema erkennen)**. Warten Sie, bis die Konsole das abgeleitete Schema und die Beispieldatensätze anzeigt, die zum Ableiten des Schemas für den erstellten In-Application-Stream verwendet werden. Das abgeleitete Schema weist nur eine Spalte auf.

   1. Wählen Sie **Save and continue** aus.

   

1. Klicken Sie auf der Detailseite der Anwendung auf **Go to SQL editor (Gehe zu SQL-Editor)**. Um die Anwendung zu starten, wählen Sie im angezeigten Dialogfeld **Yes, start application (Ja, Anwendung starten)** aus.

1. Schreiben Sie im SQL-Editor den Anwendungscode und überprüfen Sie die Ergebnisse wie folgt:

   1. Kopieren Sie den folgenden Anwendungscode und fügen Sie diesen in den Editor ein.

      ```
      -- CREATE OR REPLACE STREAM for cleaned up referrer
      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
          "ingest_time" TIMESTAMP,
          "referrer" VARCHAR(32));
          
      CREATE OR REPLACE PUMP "myPUMP" AS 
         INSERT INTO "DESTINATION_SQL_STREAM"
            SELECT STREAM 
               "APPROXIMATE_ARRIVAL_TIME", 
               SUBSTRING("referrer", 12, (POSITION('.com' IN "referrer") - POSITION('www.' IN "referrer") - 4)) 
            FROM "SOURCE_SQL_STREAM_001";
      ```

   1. Klicken Sie auf **Save and run SQL** (SQL speichern und ausführen). Auf der Registerkarte **Real-time analytics (Echtzeitanalyse)** können Sie alle In-Application-Streams sehen, die von der Anwendung erstellt wurden, und die Daten überprüfen. 

# Beispiel: Ersetzen einer Teilzeichenfolge mit Regex (Funktion REGEX\$1REPLACE)
<a name="examples-transforming-strings-regexreplace"></a>

In diesem Beispiel wird die Funktion `REGEX_REPLACE` zum Umwandeln einer Zeichenfolge in Amazon-Kinesis-Data-Analytics verwendet. `REGEX_REPLACE` ersetzt eine Teilzeichenfolge durch eine andere Teilzeichenfolge. Weitere Informationen finden Sie unter [REGEX\$1REPLACE](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-regex-replace.html) in der *SQL-Referenz Amazon-Managed-Service für Apache Flink*.

In diesem Beispiel schreiben Sie die folgenden Datensätze in einen Amazon-Kinesis-Datenstrom: 

```
{ "REFERRER" : "http://www.amazon.com" }
{ "REFERRER" : "http://www.amazon.com"}
{ "REFERRER" : "http://www.amazon.com"}
...
```



Anschließend erstellen Sie eine Kinesis Data Analytics-Anwendung in der Konsole mit dem Kinesis-Datenstrom als Streaming-Quelle. Der Erkennungsvorgang liest Beispieldatensätze auf der Streaming-Quelle und erschließt ein In-Application-Schema mit einer Spalte (REFERRER), wie hier gezeigt.

![\[Screenshot der Konsole mit einem anwendungsinternen Schema mit einer Liste von in der Referrer-Spalte. URLs\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/referrer-10.png)


Anschließend verwenden Sie den Anwendungscode mit der Funktion `REGEX_REPLACE`, um die URL so umzuwandeln, dass sie `https://` anstelle von `http://` verwendet. Sie fügen Sie die resultierenden Daten dann wie nachstehend dargestellt in einen anderen In-Application-Stream ein: 



![\[Screenshot der Konsole mit der resultierenden Datentabelle mit den Spalten "ROWTIME", "ingest_time" und "referrer".\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/ex_regex_replace.png)


**Topics**
+ [Schritt 1: Erstellen eines Kinesis-Datenstroms](#examples-transforming-strings-regexreplace-1)
+ [Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung](#examples-transforming-strings-regexreplace-2)

## Schritt 1: Erstellen eines Kinesis-Datenstroms
<a name="examples-transforming-strings-regexreplace-1"></a>

Erstellen Sie einen Amazon-Kinesis-Datenstrom und füllen Sie die Protokolldatensätze wie folgt aus:

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Kinesis-Konsole unter [https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis).

1. Klicken Sie im Navigationsbereich auf **Data Streams (Daten-Streams)**.

1. Klicken Sie auf **Create Kinesis stream (Kinesis-Stream erstellen)** und erstellen Sie einen Stream mit einer Shard. Weitere Informationen finden Sie unter [Einen Stream erstellen](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html) im *Amazon-Kinesis-Data-Streams-Entwicklerhandbuch*.

1. Führen Sie den folgenden Python-Code aus, um die Beispiel-Protokolldatensätze zu füllen. Dieser einfache Code schreibt kontinuierlich denselben Protokolldatensatz in den Stream.

   ```
    
   import json
   import boto3
   
   STREAM_NAME = "ExampleInputStream"
   
   
   def get_data():
       return {"REFERRER": "http://www.amazon.com"}
   
   
   def generate(stream_name, kinesis_client):
       while True:
           data = get_data()
           print(data)
           kinesis_client.put_record(
               StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey"
           )
   
   
   if __name__ == "__main__":
       generate(STREAM_NAME, boto3.client("kinesis"))
   ```

## Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung
<a name="examples-transforming-strings-regexreplace-2"></a>

Erstellen Sie als Nächstes wie folgt eine Kinesis Data Analytics-Anwendung:

1. [Öffnen Sie die Managed Service for Apache Flink-Konsole unter /kinesisanalytics. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesisanalytics)

1. Klicken Sie auf **Create application (Anwendung erstellen)**, geben Sie einen Anwendungsnamen ein und klicken Sie erneut auf **Create application (Anwendung erstellen)**.

1. Wählen Sie auf der Detailseite der Anwendung **Connect streaming data (Streaming-Daten verbinden)**. 

1. Gehen Sie auf der Seite **Connect to source (Mit Quelle verbinden)** wie folgt vor:

   1. Wählen Sie den Stream aus, den Sie im vorherigen Abschnitt erstellt haben. 

   1. Wählen Sie die Option zum Erstellen einer IAM-Rolle.

   1. Klicken Sie auf **Discover schema (Schema erkennen)**. Warten Sie, bis die Konsole das abgeleitete Schema und die Beispieldatensätze anzeigt, die zum Ableiten des Schemas für den erstellten In-Application-Stream verwendet werden. Das abgeleitete Schema weist nur eine Spalte auf.

   1. Wählen Sie **Save and continue** aus.

   

1. Klicken Sie auf der Detailseite der Anwendung auf **Go to SQL editor (Gehe zu SQL-Editor)**. Um die Anwendung zu starten, wählen Sie im angezeigten Dialogfeld **Yes, start application (Ja, Anwendung starten)** aus.

1. Schreiben Sie im SQL-Editor den Anwendungscode und überprüfen Sie die Ergebnisse wie folgt:

   1. Kopieren Sie den folgenden Anwendungscode und fügen Sie diesen in den Editor ein:

      ```
      -- CREATE OR REPLACE STREAM for cleaned up referrer
      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
          "ingest_time" TIMESTAMP,
          "referrer" VARCHAR(32));
          
      CREATE OR REPLACE PUMP "myPUMP" AS 
         INSERT INTO "DESTINATION_SQL_STREAM"
            SELECT STREAM 
               "APPROXIMATE_ARRIVAL_TIME", 
               REGEX_REPLACE("REFERRER", 'http://', 'https://', 1, 0)
            FROM "SOURCE_SQL_STREAM_001";
      ```

   1. Klicken Sie auf **Save and run SQL** (SQL speichern und ausführen). Auf der Registerkarte **Real-time analytics (Echtzeitanalyse)** können Sie alle In-Application-Streams sehen, die von der Anwendung erstellt wurden, und die Daten überprüfen. 

# Beispiel: Analysieren von Protokollzeichenfolgen basierend auf regulären Ausdrücken (Funktion REGEX\$1LOG\$1PARSE)
<a name="examples-transforming-strings-regexlogparse"></a>

In diesem Beispiel wird die Funktion `REGEX_LOG_PARSE` zum Umwandeln einer Zeichenfolge in Amazon-Kinesis-Data-Analytics verwendet. `REGEX_LOG_PARSE` analysiert eine Zeichenfolge basierend auf regulären Java-Standardausdrücken. Weitere Informationen finden Sie unter [REGEX\$1LOG\$1PARSE](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-regex-log-parse.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink*.

In diesem Beispiel schreiben Sie die folgenden Datensätze in einen Amazon-Kinesis-Stream: 

```
{"LOGENTRY": "203.0.113.24 - - [25/Mar/2018:15:25:37 -0700] \"GET /index.php HTTP/1.1\" 200 125 \"-\" \"Mozilla/5.0 [en] Gecko/20100101 Firefox/52.0\""}
{"LOGENTRY": "203.0.113.24 - - [25/Mar/2018:15:25:37 -0700] \"GET /index.php HTTP/1.1\" 200 125 \"-\" \"Mozilla/5.0 [en] Gecko/20100101 Firefox/52.0\""}
{"LOGENTRY": "203.0.113.24 - - [25/Mar/2018:15:25:37 -0700] \"GET /index.php HTTP/1.1\" 200 125 \"-\" \"Mozilla/5.0 [en] Gecko/20100101 Firefox/52.0\""}
...
```



Anschließend erstellen Sie eine Kinesis Data Analytics-Anwendung in der Konsole mit dem Kinesis-Datenstrom als Streaming-Quelle. Der Erkennungsvorgang liest Beispieldatensätze auf der Streaming-Quelle und erschließt ein In-Application-Schema mit einer Spalte (LOGENTRY), wie im Folgenden gezeigt:

![\[Screenshot der Konsole mit In-Application-Schema mit der Spalte "LOGENTRY".\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/ex_regex_log_parse_0.png)


Anschließend verwenden Sie den Anwendungscode mit der Funktion `REGEX_LOG_PARSE` zum Analysieren der Protokollzeichenfolge, um die Datenelemente abzurufen. Fügen Sie die resultierenden Daten wie im folgenden Screenshot dargestellt in einen anderen In-Application-Stream ein: 



![\[Screenshot der Konsole mit der resultierenden Datentabelle mit ROWTIME, LOGENTRY und Spalten. MATCH1 MATCH2\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/ex_regex_log_parse_1.png)


**Topics**
+ [Schritt 1: Erstellen eines Kinesis-Datenstroms](#examples-transforming-strings-regexlogparse-1)
+ [Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung](#examples-transforming-strings-regexlogparse-2)

## Schritt 1: Erstellen eines Kinesis-Datenstroms
<a name="examples-transforming-strings-regexlogparse-1"></a>

Erstellen Sie einen Amazon-Kinesis-Datenstrom und füllen Sie die Protokolldatensätze wie folgt aus:

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Kinesis-Konsole unter [https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis).

1. Klicken Sie im Navigationsbereich auf **Data Streams (Daten-Streams)**.

1. Klicken Sie auf **Create Kinesis stream (Kinesis-Stream erstellen)** und erstellen Sie einen Stream mit einer Shard. Weitere Informationen finden Sie unter [Einen Stream erstellen](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html) im *Amazon-Kinesis-Data-Streams-Entwicklerhandbuch*.

1. Führen Sie den folgenden Python-Code aus, um Beispiel-Protokolldatensätze zu füllen. Dieser einfache Code schreibt kontinuierlich denselben Protokolldatensatz in den Stream.

   ```
    
   import json
   import boto3
   
   STREAM_NAME = "ExampleInputStream"
   
   
   def get_data():
       return {
           "LOGENTRY": "203.0.113.24 - - [25/Mar/2018:15:25:37 -0700] "
           '"GET /index.php HTTP/1.1" 200 125 "-" '
           '"Mozilla/5.0 [en] Gecko/20100101 Firefox/52.0"'
       }
   
   
   def generate(stream_name, kinesis_client):
       while True:
           data = get_data()
           print(data)
           kinesis_client.put_record(
               StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey"
           )
   
   
   if __name__ == "__main__":
       generate(STREAM_NAME, boto3.client("kinesis"))
   ```

## Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung
<a name="examples-transforming-strings-regexlogparse-2"></a>

Erstellen Sie als Nächstes wie folgt eine Kinesis Data Analytics-Anwendung:

1. [Öffnen Sie die Managed Service for Apache Flink-Konsole unter /kinesisanalytics. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesisanalytics)

1. Wählen Sie **Create application** aus und geben Sie einen Anwendungsnamen an.

1. Wählen Sie auf der Detailseite der Anwendung **Connect streaming data (Streaming-Daten verbinden)**. 

1. Gehen Sie auf der Seite **Connect to source (Mit Quelle verbinden)** wie folgt vor:

   1. Wählen Sie den Stream aus, den Sie im vorherigen Abschnitt erstellt haben. 

   1. Wählen Sie die Option zum Erstellen einer IAM-Rolle.

   1. Klicken Sie auf **Discover schema (Schema erkennen)**. Warten Sie, bis die Konsole das abgeleitete Schema und die Beispieldatensätze anzeigt, die zum Ableiten des Schemas für den erstellten In-Application-Stream verwendet werden. Das abgeleitete Schema weist nur eine Spalte auf.

   1. Wählen Sie **Save and continue** aus.

   

1. Klicken Sie auf der Detailseite der Anwendung auf **Go to SQL editor (Gehe zu SQL-Editor)**. Um die Anwendung zu starten, wählen Sie im angezeigten Dialogfeld **Yes, start application (Ja, Anwendung starten)** aus.

1. Schreiben Sie im SQL-Editor den Anwendungscode und überprüfen Sie die Ergebnisse wie folgt:

   1. Kopieren Sie den folgenden Anwendungscode und fügen Sie diesen in den Editor ein.

      ```
      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (logentry VARCHAR(24), match1 VARCHAR(24), match2 VARCHAR(24));
      
      CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
          SELECT STREAM T.LOGENTRY, T.REC.COLUMN1, T.REC.COLUMN2
          FROM 
               (SELECT STREAM LOGENTRY,
                   REGEX_LOG_PARSE(LOGENTRY, '(\w.+) (\d.+) (\w.+) (\w.+)') AS REC
                   FROM SOURCE_SQL_STREAM_001) AS T;
      ```

   1. Klicken Sie auf **Save and run SQL** (SQL speichern und ausführen). Auf der Registerkarte **Real-time analytics (Echtzeitanalyse)** können Sie alle In-Application-Streams sehen, die von der Anwendung erstellt wurden, und die Daten überprüfen.

# Beispiel: Analysieren von Web-Protokolle (Funktion W3C\$1LOG\$1PARSE)
<a name="examples-transforming-strings-w3clogparse"></a>

In diesem Beispiel wird die Funktion `W3C_LOG_PARSE` zum Umwandeln einer Zeichenfolge in Amazon-Kinesis-Data-Analytics verwendet. Sie können `W3C_LOG_PARSE` verwenden, um Apache-Protokolle schnell zu formatieren. Weitere Informationen finden Sie unter [W3C\$1LOG\$1PARSE](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-w3c-log-parse.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink*.

In diesem Beispiel schreiben Sie Protokolldatensätze in einen Amazon-Kinesis-Datenstrom. Beispielprotokolle werden nachfolgend angezeigt:

```
{"Log":"192.168.254.30 - John [24/May/2004:22:01:02 -0700] "GET /icons/apache_pba.gif HTTP/1.1" 304 0"}
{"Log":"192.168.254.30 - John [24/May/2004:22:01:03 -0700] "GET /icons/apache_pbb.gif HTTP/1.1" 304 0"}
{"Log":"192.168.254.30 - John [24/May/2004:22:01:04 -0700] "GET /icons/apache_pbc.gif HTTP/1.1" 304 0"}
...
```



Anschließend erstellen Sie eine Kinesis Data Analytics-Anwendung in der Konsole mit dem Kinesis-Datenstrom als Streaming-Quelle. Der Erkennungsvorgang liest Beispieldatensätze auf der Streaming-Quelle und erschließt ein In-Application-Schema mit einer Spalte (Protokoll), wie im Folgenden gezeigt:

![\[Screenshot der Konsole mit der Registerkarte für den formatierten Stream mit In-Application-Schema mit der Protokollspalte.\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/log-10.png)


Anschließend verwenden Sie den Anwendungscode mit der Funktion `W3C_LOG_PARSE` zum Analysieren des Protokolls und erstellen einen anderen In-Application-Stream mit verschiedenen Protokollfeldern in separaten Spalten, wie im Folgenden gezeigt:

![\[Screenshot der Konsole mit der Registerkarte für die Echtzeitanalyse mit In-Application-Stream.\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/log-20.png)


**Topics**
+ [Schritt 1: Erstellen eines Kinesis-Datenstroms](#examples-transforming-strings-w3clogparse-1)
+ [Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung](#examples-transforming-strings-w3clogparse-2)

## Schritt 1: Erstellen eines Kinesis-Datenstroms
<a name="examples-transforming-strings-w3clogparse-1"></a>

Erstellen Sie einen Amazon-Kinesis-Datenstrom und füllen Sie die Protokolldatensätze wie folgt aus:

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Kinesis-Konsole unter [https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis).

1. Klicken Sie im Navigationsbereich auf **Data Streams (Daten-Streams)**.

1. Klicken Sie auf **Create Kinesis stream (Kinesis-Stream erstellen)** und erstellen Sie einen Stream mit einer Shard. Weitere Informationen finden Sie unter [Einen Stream erstellen](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html) im *Amazon-Kinesis-Data-Streams-Entwicklerhandbuch*.

1. Führen Sie den folgenden Python-Code aus, um die Beispiel-Protokolldatensätze zu füllen. Dieser einfache Code schreibt kontinuierlich denselben Protokolldatensatz in den Stream.

   ```
    
   import json
   import boto3
   
   STREAM_NAME = "ExampleInputStream"
   
   
   def get_data():
       return {
           "log": "192.168.254.30 - John [24/May/2004:22:01:02 -0700] "
           '"GET /icons/apache_pb.gif HTTP/1.1" 304 0'
       }
   
   
   def generate(stream_name, kinesis_client):
       while True:
           data = get_data()
           print(data)
           kinesis_client.put_record(
               StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey"
           )
   
   
   if __name__ == "__main__":
       generate(STREAM_NAME, boto3.client("kinesis"))
   ```

## Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung
<a name="examples-transforming-strings-w3clogparse-2"></a>

Erstellen Sie wie folgt eine Kinesis Data Analytics-Anwendung:

1. [Öffnen Sie die Managed Service for Apache Flink-Konsole unter /kinesisanalytics. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesisanalytics)

1. Klicken Sie auf **Create application (Anwendung erstellen)**, geben Sie einen Anwendungsnamen ein und klicken Sie erneut auf **Create application (Anwendung erstellen)**.

1. Wählen Sie auf der Detailseite der Anwendung **Connect streaming data (Streaming-Daten verbinden)**.

1. Gehen Sie auf der Seite **Connect to source (Mit Quelle verbinden)** wie folgt vor:

   1. Wählen Sie den Stream aus, den Sie im vorherigen Abschnitt erstellt haben. 

   1. Wählen Sie die Option zum Erstellen einer IAM-Rolle.

   1. Klicken Sie auf **Discover schema (Schema erkennen)**. Warten Sie, bis die Konsole das abgeleitete Schema und die Beispieldatensätze anzeigt, die zum Ableiten des Schemas für den erstellten In-Application-Stream verwendet werden. Das abgeleitete Schema weist nur eine Spalte auf.

   1. Wählen Sie **Save and continue** aus.

   

1. Klicken Sie auf der Detailseite der Anwendung auf **Go to SQL editor (Gehe zu SQL-Editor)**. Um die Anwendung zu starten, wählen Sie im angezeigten Dialogfeld **Yes, start application (Ja, Anwendung starten)** aus.

1. Schreiben Sie im SQL-Editor den Anwendungscode und überprüfen Sie die Ergebnisse wie folgt:

   1. Kopieren Sie den folgenden Anwendungscode und fügen Sie diesen in den Editor ein.

      ```
      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
      column1 VARCHAR(16),
      column2 VARCHAR(16),
      column3 VARCHAR(16),
      column4 VARCHAR(16),
      column5 VARCHAR(16),
      column6 VARCHAR(16),
      column7 VARCHAR(16));
      
      CREATE OR REPLACE PUMP "myPUMP" AS 
      INSERT INTO "DESTINATION_SQL_STREAM"
              SELECT STREAM
                  l.r.COLUMN1,
                  l.r.COLUMN2,
                  l.r.COLUMN3,
                  l.r.COLUMN4,
                  l.r.COLUMN5,
                  l.r.COLUMN6,
                  l.r.COLUMN7
              FROM (SELECT STREAM W3C_LOG_PARSE("log", 'COMMON')
                    FROM "SOURCE_SQL_STREAM_001") AS l(r);
      ```

   1. Klicken Sie auf **Save and run SQL** (SQL speichern und ausführen). Auf der Registerkarte **Real-time analytics (Echtzeitanalyse)** können Sie alle In-Application-Streams sehen, die von der Anwendung erstellt wurden, und die Daten überprüfen.

# Beispiel: Aufteilen von Zeichenfolgen auf mehrerer Felder (Funktion VARIABLE\$1COLUMN\$1LOG\$1PARSE)
<a name="examples-transforming-strings-variablecolumnlogparse"></a>

Dieses Beispiel verwendet die Funktion `VARIABLE_COLUMN_LOG_PARSE` zum Bearbeiten von Zeichenfolgen in Kinesis Data Analytics. `VARIABLE_COLUMN_LOG_PARSE` teilt eine Eingabezeichenfolge in durch ein Trennzeichen oder eine Trennzeichenfolge getrennte Felder. Weitere Informationen finden Sie unter [VARIABLE\$1COLUMN\$1LOG\$1PARSE](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-variable-column-log-parse.html) in der *SQL-Referenz zu Amazon-Managed-Service für Apache Flink*.

In diesem Beispiel schreiben Sie semistrukturierte Datensätze in einen Amazon-Kinesis-Datenstrom. Die Beispieldatensätze sind wie folgt:

```
{ "Col_A" : "string",
  "Col_B" : "string",
  "Col_C" : "string",
  "Col_D_Unstructured" : "value,value,value,value"}
{ "Col_A" : "string",
  "Col_B" : "string",
  "Col_C" : "string",
  "Col_D_Unstructured" : "value,value,value,value"}
```



Anschließend erstellen Sie eine Kinesis Data Analytics-Anwendung in der Konsole mit dem Kinesis Stream als Streaming-Quelle. Der Erkennungsvorgang liest Beispieldatensätze auf der Streaming-Quelle und erschließt ein In-Application-Schema mit vier Spalten, wie im Folgenden gezeigt:

![\[Screenshot der Konsole mit In-Application-Schema mit 4 Spalten.\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/unstructured-10.png)


Anschließend verwenden Sie den Anwendungscode mit der Funktion `VARIABLE_COLUMN_LOG_PARSE` zum Analysieren der durch Komma getrennten Werte und fügen normalisierte Zeilen in einen anderen In-Application-Stream ein, wie im Folgenden gezeigt:



![\[Screenshot der Konsole mit der Registerkarte für die Echtzeitanalyse mit In-Application-Stream.\]](http://docs.aws.amazon.com/de_de/kinesisanalytics/latest/dev/images/unstructured-20.png)


**Topics**
+ [Schritt 1: Erstellen eines Kinesis-Datenstroms](#examples-transforming-strings-variablecolumnlogparse-1)
+ [Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung](#examples-transforming-strings-variablecolumnlogparse-2)

## Schritt 1: Erstellen eines Kinesis-Datenstroms
<a name="examples-transforming-strings-variablecolumnlogparse-1"></a>

Erstellen Sie einen Amazon-Kinesis-Datenstrom und füllen Sie die Protokolldatensätze wie folgt aus:

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Kinesis-Konsole unter [https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis).

1. Klicken Sie im Navigationsbereich auf **Data Streams (Daten-Streams)**.

1. Klicken Sie auf **Create Kinesis stream (Kinesis-Stream erstellen)** und erstellen Sie einen Stream mit einer Shard. Weitere Informationen finden Sie unter [Einen Stream erstellen](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html) im *Amazon-Kinesis-Data-Streams-Entwicklerhandbuch*.

1. Führen Sie den folgenden Python-Code aus, um die Beispiel-Protokolldatensätze zu füllen. Dieser einfache Code schreibt kontinuierlich denselben Protokolldatensatz in den Stream.

   ```
    
   import json
   import boto3
   
   STREAM_NAME = "ExampleInputStream"
   
   
   def get_data():
       return {"Col_A": "a", "Col_B": "b", "Col_C": "c", "Col_E_Unstructured": "x,y,z"}
   
   
   def generate(stream_name, kinesis_client):
       while True:
           data = get_data()
           print(data)
           kinesis_client.put_record(
               StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey"
           )
   
   
   if __name__ == "__main__":
       generate(STREAM_NAME, boto3.client("kinesis"))
   ```

   

## Schritt 2: Erstellen Sie die Amazon-Kinesis-Data-Analytics-Anwendung
<a name="examples-transforming-strings-variablecolumnlogparse-2"></a>

Erstellen Sie wie folgt eine Kinesis Data Analytics-Anwendung:

1. [Öffnen Sie die Managed Service for Apache Flink-Konsole unter /kinesisanalytics. https://console.aws.amazon.com](https://console.aws.amazon.com/kinesisanalytics)

1. Klicken Sie auf **Create application (Anwendung erstellen)**, geben Sie einen Anwendungsnamen ein und klicken Sie erneut auf **Create application (Anwendung erstellen)**.

1. Wählen Sie auf der Detailseite der Anwendung **Connect streaming data (Streaming-Daten verbinden)**. 

1. Gehen Sie auf der Seite **Connect to source (Mit Quelle verbinden)** wie folgt vor:

   1. Wählen Sie den Stream aus, den Sie im vorherigen Abschnitt erstellt haben.

   1. Wählen Sie die Option zum Erstellen einer IAM-Rolle.

   1. Klicken Sie auf **Discover schema (Schema erkennen)**. Warten Sie, bis die Konsole das abgeleitete Schema und die Beispieldatensätze anzeigt, die zum Ableiten des Schemas für den erstellten In-Application-Stream verwendet werden. Beachten Sie, dass das abgeleitete Schema nur eine Spalte aufweist.

   1. Wählen Sie **Save and continue** aus.

   

1. Klicken Sie auf der Detailseite der Anwendung auf **Go to SQL editor (Gehe zu SQL-Editor)**. Um die Anwendung zu starten, wählen Sie im angezeigten Dialogfeld **Yes, start application (Ja, Anwendung starten)** aus.

1. Schreiben Sie den Anwendungscode im SQL-Editor und überprüfen Sie die Ergebnisse wie folgt:

   1. Kopieren Sie den folgenden Anwendungscode und fügen Sie diesen in den Editor ein:

      ```
      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM"(
                  "column_A" VARCHAR(16),
                  "column_B" VARCHAR(16),
                  "column_C" VARCHAR(16),
                  "COL_1" VARCHAR(16),             
                  "COL_2" VARCHAR(16),            
                  "COL_3" VARCHAR(16));
      
      CREATE OR REPLACE PUMP "SECOND_STREAM_PUMP" AS
      INSERT INTO "DESTINATION_SQL_STREAM"
         SELECT STREAM  t."Col_A", t."Col_B", t."Col_C",
                        t.r."COL_1", t.r."COL_2", t.r."COL_3"
         FROM (SELECT STREAM 
                 "Col_A", "Col_B", "Col_C",
                 VARIABLE_COLUMN_LOG_PARSE ("Col_E_Unstructured",
                                           'COL_1 TYPE VARCHAR(16), COL_2 TYPE VARCHAR(16), COL_3 TYPE VARCHAR(16)',
                                           ',') AS r 
               FROM "SOURCE_SQL_STREAM_001") as t;
      ```

   1. Klicken Sie auf **Save and run SQL** (SQL speichern und ausführen). Auf der Registerkarte **Real-time analytics (Echtzeitanalyse)** können Sie alle In-Application-Streams sehen, die von der Anwendung erstellt wurden, und die Daten überprüfen.