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 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 Anwendungen des Internet der Dinge (IoT), CDC-Pipelines (Change Data Capture) und Workflows für maschinelles Lernen zugute, bei denen gelegentlich größere Datennutzlasten verarbeitet werden müssen. Um mit der Verwendung großer Datensätze in Ihrem Stream zu beginnen, aktualisieren Sie die maximale Datensatzgröße Ihres Streams.
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 so konzipiert, dass es zeitweise große Datensätze zusammen mit einem Basisverkehr von Datensätzen von weniger als oder gleich 1 MiB aufnehmen kann. 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 kann große Datensätze aufnehmen, 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 zeitweise große Datensätze parallel zum normalen Datenverkehr verarbeiten 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 sich mit einer gleichmäßigen Geschwindigkeit füllt. Wenn du einen großen Datensatz sendest, z. B. einen 10-MiB-Datensatz, ist der Tank vorübergehend leer. Dann beginnt er sofort mit dem Auffüllen, was bedeutet, dass Sie weiterhin kleinere Datensätze senden können, sobald Kapazität verfügbar wird.
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 auf dem Stream
Ihre gewählte Partitionsschlüsselstrategie
Die besten Ergebnisse erzielen Sie, wenn Sie einen gleichmäßig verteilten Partitionsschlüssel verwenden, um große Datensätze auf 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 auf der Grundlage Ihrer Datenverkehrsmuster nach oben oder unten, und große Rekord-Burst-Kapazitäten werden transparent verarbeitet. Du musst keine Kapazität bereitstellen oder verwalten, um große Datensätze nutzen zu können. Weitere Informationen zur Skalierung im On-demand On-Demand-Modus finden Sie unter Modusfunktionen und Anwendungsfälle.
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-Konsole.
Wählen Sie Ihren Stream aus und wechseln Sie zur Registerkarte Konfiguration.
Klicken Sie 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 mit der AWS CLI aktualisieren:
aws kinesis update-max-record-size \ --stream-arn \ --max-record-size-in-ki-b 5000
Optimieren Sie Ihre Stream-Leistung mit großen Datensätzen
Große Datensätze sind für den intermittierenden Gebrauch konzipiert. Optimale Ergebnisse erzielen Sie, wenn Sie große Datensätze auf weniger als 2% Ihres gesamten Traffics beschränken. Da der Stream vorübergehend seinen Dauerdurchsatz überschreitet und einen großen Datensatz liefert, kann das zu häufiges Senden großer Datensätze die für Ihren Basis-Traffic 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 Leistung.
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 helfen dabei, die Drosselung zu reduzieren:
Zur Minderung der Drosselung
Implementieren Sie eine 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 für kontinuierliche Streams mit großen Datensätzen nur Metadatenverweise an den Stream. Weitere Informationen finden Sie unter Verarbeitung großer Datensätze mit Amazon Kinesis Data Streams.
Verarbeiten Sie große Datensätze mithilfe der Kinesis Data Streams-APIs
Die Unterstützung großer Datensätze führt eine neue API ein und aktualisiert zwei bestehende Steuerungsebenen-APIs, sodass sie bis zu 10 MiBs Datensätze verarbeiten können.
API zum Ändern der Datensatzgröße:
UpdateMaxRecordSize: Konfiguriert die maximale Datensatzgröße für bestehende Streams (bis zu 10) MiBs.
Aktualisierungen vorhandener APIs:
CreateStream: Fügt den optionalenMaxRecordSizeInKiBParameter zum Festlegen 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 aufgelisteten APIs 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 SDK unterstützt den Umgang mit großen Datensätzen. Sie können die maximale Datensatzgröße Ihres Streams mithilfe der verfügbaren Methoden in den SDKs auf bis zu 10 MiB aktualisieren. AWS Weitere Informationen finden Sie unter Verwenden dieses Dienstes mit einem SDK. AWS |
|
Kinesis Consumer Library (KCL) |
Ab Version 2.x unterstützt KCL den Umgang mit großen Datensätzen. Um die Unterstützung großer Datensätze zu nutzen, aktualisieren Sie den |
|
Kinesis Producer Library (KPL) |
Ab Version 1.0.5 unterstützt KPL den Umgang mit großen Datensätzen. Um die Unterstützung großer Datensätze zu nutzen, aktualisieren Sie den maxRecordSize Ihres Streams und verwenden Sie KPL. Weitere Informationen finden Sie unter Entwickeln Sie 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-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:
Für Anwendungen, die eine Übertragung an Snowflake oder Redshift mit großen Datensätzen erfordern, übermitteln Sie die Daten zuerst an Amazon S3. Verwenden Sie danach 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 Machbarkeitsstudie, bevor Sie die Skalierung auf Produktionsbasis durchführen. Der Umgang mit großen Datensätzen ist je nach Ziel unterschiedlich. |
|
AWS Lambda |
AWS Lambda unterstützt Nutzlasten bis zu 6. MiBs Dieses Limit umfasst die Kinesis-Nutzlast, 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 mithilfe von ESM MiBs, ohne dass eine zusätzliche Konfiguration erforderlich ist. Bei Datensätzen, die größer als 6 sind MiBs, verarbeitet Lambda sie mithilfe eines Ziels für den Fall eines Fehlers. Sie müssen mithilfe von ESM ein Ziel bei einem Ausfall konfigurieren, um Datensätze zu verarbeiten, die die Verarbeitungsgrenzen von Lambda überschreiten. Jedes Ereignis, das an das Ziel bei einem Ausfall 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 |
Wenn Sie Daten von Kinesis Data Streams zu Amazon Redshift streamen, überprüfen Sie die maximale Datensatzgröße, die Amazon Redshift unterstützt. Einzelheiten finden Sie unter Erste Schritte mit der Streaming-Aufnahme aus Amazon Kinesis Data Streams im Amazon Redshift Database Developer Guide. Datensätze, die diesen Grenzwert überschreiten, werden nicht verarbeitet. Einzelheiten zur Protokollierung von Informationen für Datensätze, die nicht verarbeitet werden, finden Sie unter SYS_STREAM_SCAN_ERRORS im Amazon Redshift Database Developer Guide. |
|
Flink-Anschluss für Kinesis Data Streams |
Es gibt zwei Ansätze für die Nutzung von Daten aus Kinesis Data Streams: den Kinesis-Quell-Connector und den Kinesis-Sink-Connector. Der Source Connector unterstützt die Verarbeitung von Datensätzen unter 1 MiB und bis zu 10. MiBs Verwenden Sie den Senk-Connector nicht für Datensätze, 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-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-East) |
| us-gov-west-1 | AWS GovCloud (US-West) |