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.
Umgang mit großen Datensätzen
Amazon Kinesis Data Streams unterstützt Datensätze mit bis zu 10 Mebibyte (). MiBs Diese Funktion wird für die Verarbeitung intermittierender Datennutzlasten empfohlen, die die standardmäßige Datensatzgrößenbeschränkung von 1 MiB überschreiten. Die standardmäßige maximale Datensatzgröße für bestehende und neu erstellte Streams ist auf 1 MiB festgelegt.
Diese Funktion kommt IoT-Anwendungen (Internet of Things), CDC-Pipelines (Change Data Capture) und Workflows für maschinelles Lernen zugute, die gelegentlich die Verarbeitung größerer Datennutzlasten erfordern. Um zu beginnen, große Datensätze in deinem Stream zu verwenden, aktualisiere die maximale Datensatzgrößenbeschränkung für deinen Stream.
Wichtig
Das individuelle Shard-Durchsatzlimit von 1 MB/s für Schreibvorgänge und 2 MB/s für Lesevorgänge bleibt unverändert, wobei größere Datensatzgrößen unterstützt werden. Kinesis Data Streams ist darauf ausgelegt, zeitweise große Datensätze zusammen mit einem Basisdatenverkehr von weniger als oder gleich 1 MiB zu verarbeiten. Es ist nicht für die dauerhafte Aufnahme großer Datenmengen konzipiert.
Wie funktionieren große Datensätze
Amazon Kinesis Data Streams akzeptiert Datensätze mit einer Größe von bis zu 10 MiB. Ihr Stream nimmt große Datensätze auf, indem er vorübergehend seinen kontinuierlichen Schreibdurchsatz überschreitet und dann im Laufe der Zeit wieder zu seiner Ausgangsrate zurückkehrt. Diese Burst-Kapazität wird kontinuierlich aufgefüllt, sodass Ihr Stream neben normalem Datenverkehr auch mit sporadischen großen Datensätzen umgehen kann, ohne dass manuelle Kapazitätsanpassungen erforderlich sind.
Um dieses Verhalten zu veranschaulichen, stellen Sie sich die Schreibkapazität Ihres Streams als einen Tank vor, der mit einer konstanten Geschwindigkeit wieder aufgefüllt wird. Wenn Sie einen großen Datensatz senden, z. B. einen 10-MiB-Datensatz, ist der Tank vorübergehend leer. Anschließend wird sofort mit dem Nachfüllen begonnen, was bedeutet, dass Sie weiterhin kleinere Datensätze versenden können, sobald die Kapazität verfügbar ist.
Die Geschwindigkeit, mit der die Kapazität wieder aufgefüllt wird, hängt von mehreren Faktoren ab:
Die Größe der großen Datensätze
Die Größe der Basisdatensätze
Das allgemeine Verkehrsmuster im Stream
Die von Ihnen gewählte Strategie für Partitionsschlüssel
Optimale Ergebnisse erzielen Sie, wenn Sie einen gleichmäßig verteilten Partitionsschlüssel verwenden, um große Datensätze über die verfügbare Kapazität des Streams zu verteilen.
Im On-Demand-Modus verwaltet Kinesis Data Streams die Kapazität automatisch. Ihr Stream skaliert seinen Durchsatz basierend auf Ihren Datenverkehrsmustern nach oben und unten, und große Rekord-Burst-Kapazitäten werden transparent verarbeitet. Sie müssen keine Kapazität bereitstellen oder verwalten, um große Datensätze verwenden zu können. Weitere Informationen zur Skalierung des On-Demand-Modus finden Sie unter Funktionen und Anwendungsfälle des On-Demand-Modus.
Aktualisiere deinen Stream, um große Datensätze zu verwenden
Um größere Datensätze mit Kinesis Data Streams zu verarbeiten
Navigieren Sie zur Kinesis Data Streams Streams-Konsole.
Wählen Sie Ihren Stream aus und wechseln Sie zur Registerkarte Konfiguration.
Klicke neben Maximale Datensatzgröße auf Bearbeiten.
Stellen Sie Ihre maximale Datensatzgröße ein (bis zu 10 MiB).
Speichern Sie Ihre Änderungen.
Mit dieser Einstellung wird nur die maximale Datensatzgröße für diesen Kinesis-Datenstrom angepasst. Bevor Sie diesen Grenzwert erhöhen, stellen Sie sicher, dass alle Downstream-Anwendungen größere Datensätze verarbeiten können.
Sie können diese Einstellung auch über die AWS CLI aktualisieren:
aws kinesis update-max-record-size \ --stream-arn \ --max-record-size-in-ki-b 5000
Optimiere deine Stream-Leistung mit großen Datensätzen
Große Datensätze sind für den intermittierenden Gebrauch konzipiert. Um optimale Ergebnisse zu erzielen, sollten große Aufzeichnungen weniger als 2% Ihres gesamten Traffics ausmachen. Da der Stream vorübergehend seinen kontinuierlichen Durchsatz überschreitet, um einen großen Datensatz zu liefern, kann das zu häufige Senden großer Datensätze die für Ihren Basisdatenverkehr verfügbare Kapazität verringern. Weitere Informationen zur Optimierung Ihrer Stream-Leistung bei großen Datensätzen finden Sie unter Drosselung und bewährte Methoden für eine optimale
Reduzieren Sie die Drosselung bei großen Datensätzen
Da große Datensätze vorübergehend Burst-Kapazität verbrauchen, drosselt Ihr Stream möglicherweise nachfolgende Schreibvorgänge, bis die Kapazität wieder aufgefüllt ist. Die folgenden Schritte tragen dazu bei, die Drosselung zu reduzieren:
Um die Drosselung zu verringern
Implementieren Sie die Wiederholungslogik mit exponentiellem Back-off in Ihrer Producer-Anwendung.
Verwenden Sie zufällige Partitionsschlüssel, um große Datensätze über die verfügbare Kapazität des Streams zu verteilen.
Speichern Sie Payloads in Amazon S3 und senden Sie nur Metadatenverweise an den Stream für kontinuierliche Streams großer Datensätze. Weitere Informationen finden Sie unter Verarbeiten großer Datensätze mit Amazon Kinesis Data Streams
.
Verarbeiten Sie große Datensätze mit den Kinesis Data Streams APIs
Die Unterstützung großer Datensätze führt eine neue API ein und aktualisiert zwei bestehende Steuerungsebenen, sodass bis APIs zu 10 MiBs Datensätze verarbeitet werden können.
API zum Ändern der Datensatzgröße:
UpdateMaxRecordSize: Konfiguriert die maximale Datensatzgrößenbeschränkung für bestehende Streams auf bis zu 10. MiBs
Aktualisierungen APIs vorhandener:
CreateStream: Fügt den optionalenMaxRecordSizeInKiBParameter für die Festlegung von Größenbeschränkungen für Datensätze während der Stream-Erstellung hinzu.DescribeStreamSummary: Gibt dasMaxRecordSizeInKiBFeld zurück, das die aktuelle Stream-Konfiguration anzeigt.
Alle APIs aufgelisteten Produkte behalten die Abwärtskompatibilität für bestehende Streams bei. Eine vollständige API-Dokumentation finden Sie in der Amazon Kinesis Data Streams Service API-Referenz.
AWS Komponenten, die mit großen Datensätzen kompatibel sind
Die folgenden AWS Komponenten sind mit großen Datensätzen kompatibel:
| Komponente | Description |
|---|---|
|
AWS SDK |
AWS Das SDK unterstützt den Umgang mit großen Datensätzen. Sie können die maximale Datensatzgröße Ihres Streams auf bis zu 10 MiB aktualisieren, indem Sie die verfügbaren Methoden in der verwenden. AWS SDKs Weitere Informationen finden Sie unter Diesen Dienst mit einem AWS SDK verwenden. |
|
Kinesis Consumer Library (KCL) |
Ab Version 2.x unterstützt KCL die Verarbeitung großer Datensätze. Um die Unterstützung großer Datensätze zu verwenden, aktualisieren Sie |
|
Kinesis Producer-Bibliothek (KPL) |
Ab Version 1.0.5 unterstützt KPL die Verarbeitung großer Datensätze. Um die Unterstützung großer Datensätze zu verwenden, aktualisieren Sie maxRecordSize den Stream und verwenden Sie KPL. Weitere Informationen finden Sie unter Entwickeln von Produzenten mithilfe der Amazon Kinesis Producer Library (KPL). |
|
Amazon EMR |
Amazon EMR mit Apache Spark unterstützt die Verarbeitung großer Datensätze bis zum Kinesis Data Streams Streams-Limit (10 MiBs). Verwenden Sie die Funktion, um die Unterstützung großer Datensätze zu verwenden. |
|
Amazon Data Firehose |
Bei Verwendung mit Kinesis Data Streams hängt das Verhalten von Amazon Data Firehose bei großen Datensätzen vom Lieferziel ab:
Bei Anwendungen, die eine Lieferung an Snowflake oder Redshift mit großen Datensätzen erfordern, stellen Sie die Daten zuerst an Amazon S3 bereit. Verwenden Sie anschließend die ETL-Prozesse (Extract, Transform, Load), um die Daten zu laden. Testen Sie bei allen anderen Zielen das Verhalten mit großen Datensätzen in einer proof-of-concept Umgebung, bevor Sie die Skalierung auf die Produktionsnutzung durchführen. Der Umgang mit großen Datensätzen ist je nach Ziel unterschiedlich. |
|
AWS Lambda |
AWS Lambda unterstützt bis zu 6 MiBs Nutzlasten. Dieses Limit umfasst die Kinesis-Payload, die in die Base-64-Kodierung konvertiert wurde, und die Metadaten, die mit Event Source Mapping (ESM) verknüpft sind. Bei Datensätzen unter 6 verarbeitet Lambda sie mit ESM MiBs, ohne dass eine zusätzliche Konfiguration erforderlich ist. Bei Datensätzen, die größer als 6 sind MiBs, verarbeitet Lambda sie unter Verwendung eines Ziels für den Fall eines Fehlers. Sie müssen mithilfe von ESM ein Ziel für den Fall eines Fehlers konfigurieren, um Datensätze zu verarbeiten, die die Verarbeitungsgrenzen von Lambda überschreiten. Jedes Ereignis, das an das Ziel bei einem Fehler gesendet wird, ist ein JSON-Dokument, das Metadaten zum fehlgeschlagenen Aufruf enthält. Es wird empfohlen, unabhängig von der Datensatzgröße ein Ziel für den Fall eines Fehlers im ESM zu erstellen. Dadurch wird sichergestellt, dass keine Datensätze verworfen werden. Weitere Informationen finden Sie unter Ziele für fehlgeschlagene Aufrufe konfigurieren. |
|
Amazon Redshift |
Amazon Redshift unterstützt beim Streamen von Daten aus Kinesis Data Streams nur Datensatzgrößen von weniger als 1 MiB. Datensätze, die dieses Limit überschreiten, werden nicht verarbeitet. Datensätze, die nicht verarbeitet werden, werden protokolliert als |
|
Flink-Anschluss für Kinesis Data Streams |
Es gibt zwei Ansätze für die Nutzung von Daten aus Kinesis Data Streams: den Kinesis-Quellkonnektor und den Kinesis-Sink-Connector. Der Quellanschluss unterstützt die Verarbeitung von Datensätzen mit weniger als 1 MiB und bis zu 10. MiBs Verwenden Sie den Senkenanschluss nicht für Aufzeichnungen, die größer als 1 MiB sind. Weitere Informationen finden Sie unter Verwenden von Konnektoren zum Verschieben von Daten in Amazon Managed Service für Apache Flink mit der DataStream API. |
Regionen, in denen große Datensätze unterstützt werden
Diese Amazon Kinesis Data Streams Streams-Funktion ist nur in den folgenden AWS Regionen verfügbar:
| AWS Region | Name der Region |
|---|---|
|
eu-north-1 |
Europa (Stockholm) |
|
me-south-1 |
Middle East (Bahrain) |
|
ap-south-1 |
Asien-Pazifik (Mumbai) |
|
eu-west-3 |
Europa (Paris) |
|
ap-southeast-3 |
Asien-Pazifik (Jakarta) |
|
us-east-2 |
USA Ost (Ohio) |
|
af-south-1 |
Afrika (Kapstadt) |
|
eu-west-1 |
Europa (Irland) |
|
me-central-1 |
Naher Osten (VAE) |
|
eu-central-1 |
Europa (Frankfurt) |
|
sa-east-1 |
Südamerika (São Paulo) |
|
ap-east-1 |
Asien-Pazifik (Hongkong) |
|
ap-south-2 |
Asien-Pazifik (Hyderabad) |
|
us-east-1 |
USA Ost (Nord-Virginia) |
|
ap-northeast-2 |
Asien-Pazifik (Seoul) |
|
ap-northeast-3 |
Asien-Pazifik (Osaka) |
|
eu-west-2 |
Europa (London) |
|
ap-southeast-4 |
Asien-Pazifik (Melbourne) |
|
ap-northeast-1 |
Asien-Pazifik (Tokio) |
|
us-west-2 |
USA West (Oregon) |
|
us-west-1 |
USA West (Nordkalifornien) |
|
ap-southeast-1 |
Asien-Pazifik (Singapur) |
|
ap-southeast-2 |
Asien-Pazifik (Sydney) |
|
il-central-1 |
Israel (Tel Aviv) |
|
ca-central-1 |
Kanada (Zentral) |
|
ca-west-1 |
Kanada West (Calgary) |
|
eu-south-2 |
Europa (Spain) |
|
cn-northwest-1 |
China (Ningxia) |
|
eu-central-2 |
Europa (Zürich) |
| us-gov-east-1 | AWS GovCloud (US-Ost) |
| us-gov-west-1 | AWS GovCloud (US-West) |