使用 Kinesis Data Streams API 和 AWS SDK for PHP 版本 3 来管理数据分片 - AWS SDK for PHP

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Kinesis Data Streams API 和 AWS SDK for PHP 版本 3 来管理数据分片

Amazon Kinesis Data Streams 允许向端点发送实时数据。数据流的速率取决于流中的分片数。

您可以每秒向单个分片写入 1000 条记录。每个分片的上传限制为每秒 1 MiB。用量按每个分片计算和收费,因此,请使用这些示例来管理流的数据容量和成本。

以下示例演示如何:

的所有示例代码都可以在此AWS SDK for PHP处找到 GitHub

凭证

运行示例代码之前,请配置您的 AWS 凭证,如 凭证 中所述。然后导入 AWS SDK for PHP,如 基本用法 中所述。

有关使用 Amazon Kinesis Data Streams 的更多信息,请参阅 Amazon Kinesis Data Streams 开发人员指南

列出数据流分片

列出特定流中最多 100 个分片的详细信息。

要列出 Kinesis 数据流中的分片,请使用ListShards操作。

导入

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

示例代码

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; try { $result = $kinesisClient->ListShards([ 'StreamName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

添加更多数据流分片

如果您需要更多数据流分片,则可增加当前分片数。我们建议您在增加时使分片计数加倍。这将生成当前可用的每个分片的副本以增加容量。在一个 24 小时的期间内,您只能将分片数加倍两次。

请记住,Kinesis Data Streams 用量的费用是按分片计算的,因此当需求减少时,我们建议将分片数量减半。删除分片时,只能将分片数量减少到当前分片计数的一半。

要更新 Kinesis 数据流的分片数,请使用UpdateShardCount操作。

导入

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

示例代码

$kinesisClient = new Aws\Kinesis\KinesisClient([ 'profile' => 'default', 'version' => '2013-12-02', 'region' => 'us-east-2' ]); $name = "my_stream_name"; $totalshards = 4; try { $result = $kinesisClient->UpdateShardCount([ 'ScalingType' => 'UNIFORM_SCALING', 'StreamName' => $name, 'TargetShardCount' => $totalshards ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }