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.
Entscheiden Sie sich für eine Strategie für das Resharding
Der Zweck des Reshardings in Amazon Kinesis Data Streams besteht darin, Ihrem Stream die Anpassung an Änderungen in der Durchflussrate von Daten zu ermöglichen. Sie teilen Shards, um die Kapazität (und Kosten) Ihres Streams zu erhöhen. Sie führen Shards zusammen, um die Kosten (und Kapazität) Ihres Streams zu verringern.
Ein Ansatz für das Resharding besteht darin, jeden Shard im Stream zu teilen – wodurch sich die Kapazität des Streams verdoppeln würde. Dadurch kann jedoch mehr zusätzliche Kapazität bereitgestellt werden, als Sie tatsächlich benötigen, was unnötige Kosten verursachen würde.
Sie können darüber hinaus Metriken verwenden, um zu ermitteln, welche Ihre heißen oder kalten Shards sind, d. h. Shards, die viel mehr bzw. viel weniger Daten empfangen als erwartet. Sie könnten dann selektiv die heißen Shards teilen, um die Kapazität für die Hash-Schlüssel zu erhöhen, die auf solche Shards abzielen. Gleichermaßen könnten Sie kalte Shards zusammenführen, um deren ungenutzte Kapazitäten besser zu nutzen.
Einige Leistungsdaten für Ihren Stream können Sie den CloudWatch Amazon-Metriken entnehmen, die Kinesis Data Streams veröffentlicht. Sie können jedoch auch eigene Metriken für Ihre Streams erfassen. Ein Ansatz wäre die Protokollierung der Hash-Schlüsselwerte, die von den Partitionsschlüsseln für Ihre Datensätze generiert wurden. Beachten Sie, dass Sie den Partitionsschlüssel zu dem Zeitpunkt festlegen, an dem Sie den Datensatz zu dem Stream hinzufügen.
putRecordRequest.setPartitionKey( String.format( "myPartitionKey" ) );
Kinesis Data Streams verwendet MD5
Sie könnten ebenfalls die IDs der Shards protokollieren, denen Ihre Datensätze zugeordnet sind. Die Shard-ID ist verfügbar über die getShardId-Methode des putRecordResults-Objekts, das von der putRecords-Methode zurückgegeben wurde, und des putRecordResult-Objekts, das von der putRecord-Methode zurückgegeben wurde.
String shardId = putRecordResult.getShardId();
Mit den Shard-IDs und den Hash-Schlüsselwerten können Sie bestimmen, welche Shards und Hash-Schlüssel am meisten bzw. am wenigsten Datenverkehr empfangen. Anschließend können Sie mithilfe von Resharding mehr oder weniger Kapazitäten bereitstellen, wie für diese Schlüssel angemessen.