Streaming-Aufnahme in eine materialisierte Ansicht - Amazon Redshift

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.

Streaming-Aufnahme in eine materialisierte Ansicht

In diesem Thema wird beschrieben, wie materialisierte Ansichten für den schnellen Zugriff auf Streaming-Daten verwendet werden.

Die Streaming-Aufnahme ermöglicht eine schnelle Datenaufnahme mit geringer Latenz und hoher Geschwindigkeit aus Amazon Kinesis Data Streams oder Amazon Managed Streaming for Apache Kafka in eine von Amazon Redshift bereitgestellte oder Amazon Redshift Serverless-Datenbank. Die Daten landen in einer materialisierten Redshift-Ansicht, die für diesen Zweck konfiguriert ist. Dies führt zu einem schnellen Zugriff auf externe Daten. Die Streaming-Aufnahme reduziert die Datenzugriffszeit und senkt die Speicherkosten. Sie können es mit einer kleinen Sammlung von Befehlen für Ihren Amazon Redshift-Cluster oder für Ihre Amazon Redshift Serverless-Arbeitsgruppe konfigurieren. SQL Nach der Einrichtung kann jede Materialized-View-Aktualisierung Hunderte von Megabyte an Daten pro Sekunde aufnehmen.

Wie Daten von einem Streaming-Dienst zu Redshift fließen

Es hilft zu verstehen, wie die Streaming-Aufnahme funktioniert und welche Datenbankobjekte dabei verwendet werden. Daten fließen direkt von einem Datenstream-Anbieter zu einem von Amazon Redshift bereitgestellten Cluster oder zu einer Amazon Redshift Serverless-Arbeitsgruppe. Es gibt keinen temporären Landebereich, wie z. B. einen Amazon S3 S3-Bucket. Der bereitgestellte Cluster oder die bereitgestellte Arbeitsgruppe ist der Stream-Verbraucher. In der Redshift-Datenbank landen die aus dem Stream gelesenen Daten in einer materialisierten Ansicht. Die Daten werden verarbeitet, sobald sie ankommen. JSONWerte können beispielsweise mithilfe von verwendet und den Datenspalten einer materialisierten Ansicht zugeordnet werden. SQL Wenn die materialisierte Ansicht aktualisiert wird, verwendet Redshift Daten von zugewiesenen Kinesis-Daten-Shards oder Kafka-Partitionen, bis die Ansicht mit dem Stream auf den neuesten Stand gebracht wird.

Anwendungsfälle für die Amazon Redshift Redshift-Streaming-Aufnahme beinhalten Daten, die kontinuierlich generiert werden und innerhalb eines kurzen Zeitraums oder einer Latenz ab ihrer Entstehung verarbeitet werden müssen. Dies wird üblicherweise als Analyse nahezu in Echtzeit bezeichnet. Zu den Quellen können IT-Geräte, Systemtelemetriegeräte und Click-Stream-Daten von einer stark frequentierten Website oder Anwendung gehören.

Bewährte Methoden zur Verbesserung der Leistung bei der Datenanalyse

Wenn Sie die Streaming-Aufnahme konfigurieren, gibt es Optionen, wie Sie die eingehenden Daten analysieren können. Zu den Methoden können die Ausführung von Geschäftslogik oder die Formatierung bei eingehenden Daten gehören. Wir empfehlen die folgenden bewährten Methoden, um Fehler oder Datenverlust zu vermeiden. Diese wurden aus internen Tests abgeleitet und halfen Kunden bei der Behebung von Problemen mit der Konfiguration und Analyse.

  • Extrahieren von Werten aus gestreamten Daten — Wenn Sie die TEXT Funktion JSON_ _ EXTRACT PATH _ in Ihrer Materialized View Definition verwenden, um gestreamte JSON Daten zu analysieren oder zu vernichten, kann dies die Leistung und Latenz erheblich beeinträchtigen. Zur Erläuterung: Für jede mit JSON _ _ EXTRACT PATH _ TEXT extrahierte Spalte werden die eingehenden Daten erneut analysiert. JSON Danach werden Datentypkonvertierung, Filterung und Berechnungen der Geschäftslogik durchgeführt. Das heißt, wenn Sie beispielsweise 10 Spalten aus JSON Daten extrahieren, wird jeder JSON Datensatz zehnmal analysiert, was zusätzliche Logik beinhaltet. Dies führt zu einer höheren Aufnahmelatenz. Ein alternativer Ansatz, den wir empfehlen, besteht darin, die PARSEFunktion JSON _ zu verwenden, um JSON Datensätze in den Redshift-Datentyp zu konvertieren. SUPER Nachdem die gestreamten Daten in der materialisierten Ansicht gelandet sind, verwenden Sie PartiQL, um einzelne Zeichenketten aus der SUPER Darstellung der Daten zu extrahieren. JSON Weitere Informationen finden Sie unter Semistrukturierte Daten abfragen.

    Beachten Sie außerdem, dass JSON _ _ EXTRACT PATH _ eine maximale Datengröße von 64 KB TEXT hat. Wenn also ein JSON Datensatz größer als 64 KB ist, TEXT führt die Verarbeitung mit JSON _ _ EXTRACT PATH _ zu einem Fehler.

  • Zuordnen eines Amazon Kinesis Data Streams Streams oder MSK Amazon-Themas zu mehreren materialisierten Ansichten — Wir empfehlen nicht, mehrere materialisierte Ansichten zu erstellen, um Daten aus einem einzelnen Stream oder Thema aufzunehmen. Dies liegt daran, dass jede materialisierte Ansicht einen Consumer für jeden Shard im Kinesis Data Streams Streams-Stream oder in der Partition im Kafka-Thema erstellt. Dies kann dazu führen, dass der Durchsatz des Streams oder Themas gedrosselt oder überschritten wird. Dies kann auch zu höheren Kosten führen, da Sie dieselben Daten mehrfach aufnehmen. Wenn Sie die Streaming-Aufnahme konfigurieren, empfehlen wir Ihnen, für jeden Stream oder jedes Thema eine materialisierte Ansicht zu erstellen.

    Wenn Ihr Anwendungsfall erfordert, dass Sie Daten aus einem KDS Stream oder MSK Thema in mehrere materialisierte Ansichten aufnehmen, lesen Sie vorher den AWS Big Data-Blog, insbesondere Best Practices zur Implementierung von near-real-time Analysen mit Amazon Redshift Streaming Ingestion with Amazon MSK.

Verhalten und Datentypen bei der Streaming-Aufnahme

In der folgenden Tabelle werden technische Verhaltensdetails und Größenbeschränkungen für verschiedene Datentypen beschrieben. Wir empfehlen, sich mit diesen vertraut zu machen, bevor Sie eine Materialized View für die Streaming-Aufnahme konfigurieren.

Funktion oder Verhalten Beschreibung
Längenbegrenzung für Kafka-Themen

Die Verwendung von Kafka-Themen, deren Name mehr als 128 Zeichen umfasst (ohne Anführungszeichen) ist nicht möglich. Weitere Informationen finden Sie unter Namen und Kennungen.

Inkrementelle Aktualisierungen und in einer materialisierten Ansicht JOINs

Die materialisierte Ansicht muss inkrementell wartbar sein. Eine vollständige Neuberechnung ist für Kinesis oder Amazon nicht möglichMSK, da sie standardmäßig den Stream- oder Themenverlauf der letzten 24 Stunden oder 7 Tage nicht speichern. Sie können in Kinesis oder Amazon MSK längere Datenaufbewahrungszeiträume festlegen. Dies kann jedoch zu einem größeren Verwaltungsaufwand und höheren Kosten führen. Darüber hinaus JOINs werden sie derzeit nicht für materialisierte Ansichten unterstützt, die in einem Kinesis-Stream erstellt wurden, oder für ein MSK Amazon-Thema. Nachdem Sie eine materialisierte Ansicht in Ihrem Stream oder Thema erstellt haben, können Sie eine andere materialisierte Ansicht erstellen, um Ihre materialisierte Streaming-Ansicht mit anderen materialisierten Ansichten, Tabellen oder Ansichten zu verbinden.

Weitere Informationen finden Sie unter. REFRESHMATERIALIZEDVIEW

Analyse von Datensätzen

Amazon Redshift Streaming Ingestion unterstützt nicht das Parsen von Datensätzen, die von der Kinesis Producer Library (KPLKey Concepts — Aggregation) aggregiert wurden. Die aggregierten Datensätze werden erfasst, werden jedoch als Pufferdaten für das Binärprotokoll verwendet. (Weitere Informationen finden Sie unter Protokollpuffer.) Je nachdem, wie Sie Daten an Kinesis übertragen, müssen Sie diese Funktion möglicherweise. deaktivieren.

Dekomprimierung

VARBYTEunterstützt keine Dekomprimierung. Aus diesem Grund können Datensätze, die komprimierte Daten enthalten, nicht in Redshift abgefragt werden. Dekomprimieren Sie Ihre Daten, bevor Sie sie zum Kinesis-Stream oder MSK Amazon-Thema hinzufügen.

Maximale Datensatzgröße

Die maximale Größe aller Datensätze, die Amazon Redshift von Kinesis oder Amazon aufnehmen kann, MSK beträgt 16.777.216 Byte (16 MiB), die maximale Größe, die vom Datentyp in Amazon Redshift unterstützt wird. VARBYTE Standardmäßig legen Amazon Redshift Streaming-materialisierte Ansichten, die auf einem Kinesis-Datenstream oder MSK Amazon-Thema erstellt wurden, die Größe der Datenspalte auf 1.048.576 Byte (1 MiB) bzw. 16.777.216 Byte (16 MiB) fest.

Anmerkung

1 MiB ist die aktuelle Maximalgröße eines Datensatzes, der in einen Kinesis-Datenstrom aufgenommen werden kann. Weitere Informationen zu den Größenbeschränkungen von Kinesis finden Sie unter Kontingente und Beschränkungen im Amazon Kinesis Data Streams Developer Guide.

Fehlerdatensätze

In jedem Fall, in dem ein Datensatz nicht in Redshift aufgenommen werden kann, weil die Größe der Daten das Maximum überschreitet, wird dieser Datensatz übersprungen. Die materialisierte Ansicht kann auch in diesem Fall erfolgreich aktualisiert werden und ein Segment jedes Fehlerdatensatzes wird in die Systemtabelle SYS_STREAM_SCAN_ERRORS geschrieben. Fehler, die sich aus der Geschäftslogik ergeben, wie beispielsweise Fehler in einer Berechnung oder Fehler infolge einer Typkonvertierung, werden nicht übersprungen. Testen Sie die Logik sorgfältig, bevor Sie sie zu Ihrer Definition der materialisierten Ansicht hinzufügen.

Amazon MSK VPC Multi-Private-Konnektivität

Amazon MSK VPCMulti-Private-Konnektivität wird derzeit nicht für die Redshift-Streaming-Aufnahme unterstützt. Alternativ können Sie VPCPeering verwenden, um eine Verbindung herzustellen VPCs oder AWS Transit Gatewayum lokale Netzwerke über einen VPCs zentralen Hub zu verbinden. Mit beiden kann Redshift mit einem MSK Amazon-Cluster oder mit Amazon MSK Serverless in einem anderen kommunizieren. VPC

Nutzung und Aktivierung automatisch aktualisieren

Abfragen zur automatischen Aktualisierung für eine oder mehrere materialisierte Ansichten werden wie jede andere Benutzerarbeitslast behandelt. Bei der automatischen Aktualisierung werden Daten bei ihrer Ankunft aus dem Stream geladen.

Die automatische Aktualisierung kann für eine materialisierte Ansicht, die für die Streaming-Erfassung erstellt wurde, explizit aktiviert werden. Geben Sie hierfür AUTO REFRESH in der Definition der materialisierten Ansicht an. Standardmäßig wird die manuelle Aktualisierung verwendet. Um die automatische Aktualisierung für eine vorhandene materialisierte Ansicht für die Streaming-Erfassung festzulegen, können Sie die automatische Aktualisierung durch Ausführung von ALTER MATERIALIZED VIEW aktivieren. Weitere Informationen finden Sie unter CREATEMATERIALIZEDVIEWoder ALTERMATERIALIZEDVIEW.

Streaming-Aufnahme und Amazon Redshift Serverless

Die Anweisungen zur Einrichtung und Konfiguration, die für die Amazon Redshift-Streaming-Aufnahme auf einem bereitgestellten Cluster gelten, gelten auch für die Streaming-Aufnahme auf Amazon Redshift Serverless. Es ist wichtig, die erforderliche Stufe anzugeben, RPUs um die Streaming-Aufnahme mit auto Aktualisierung und anderen Workloads zu unterstützen. Weitere Informationen finden Sie unter Abrechnung für Amazon Redshift Serverless.

Amazon Redshift Redshift-Knoten in einer anderen Availability Zone als der Amazon-Cluster MSK

Wenn Sie Streaming-Ingestion konfigurieren, versucht Amazon Redshift, eine Verbindung zu einem MSK Amazon-Cluster mit derselben Verfügbarkeit herzustellen, sofern Rack Awareness für Amazon aktiviert ist. MSK Wenn sich alle Ihre Knoten in anderen Availability Zones als Ihr Amazon Redshift Redshift-Cluster befinden, können Kosten für die Datenübertragung zwischen den Verfügbarkeitszonen anfallen. Um dies zu vermeiden, sollten Sie mindestens einen Amazon MSK Broker-Clusterknoten in derselben AZ wie Ihr von Redshift bereitgestellter Cluster oder Ihre von Redshift bereitgestellte Arbeitsgruppe beibehalten.

Startort aktualisieren

Nach dem Erstellen einer materialisierten Ansicht beginnt ihre erste Aktualisierung bei einem Kinesis-Stream oder bei Offset 0 eines MSK Amazon-Themas. TRIM_HORIZON

Datenformate

Die unterstützten Datenformate sind auf solche beschränkt, aus denen konvertiert werden kannVARBYTE. Weitere Informationen erhalten Sie unter VARBYTETyp und VARBYTE-Operatoren.

Datensätze an eine Tabelle anhängen

Sie können ausführenALTER TABLE APPEND, um Zeilen aus einer vorhandenen materialisierten Quellansicht an eine Zieltabelle anzuhängen. Dies funktioniert nur, wenn die materialisierte Ansicht für die Streaming-Aufnahme konfiguriert ist. Weitere Informationen finden Sie unter. ALTERTABLEAPPEND

Wird ausgeführt TRUNCATE oder DELETE

Sie können Datensätze wie folgt aus einer materialisierten Ansicht entfernen, die für die Streaming-Aufnahme verwendet wird:

  • TRUNCATE— Dadurch werden alle Zeilen aus einer materialisierten Ansicht gelöscht, die für die Streaming-Aufnahme konfiguriert ist. Es wird kein Tabellenscan durchgeführt. Weitere Informationen finden Sie unter. TRUNCATE

  • DELETE— Dadurch werden alle Zeilen aus einer materialisierten Ansicht gelöscht, die für die Streaming-Aufnahme konfiguriert ist. Weitere Informationen finden Sie unter. DELETE