我正在尝试为部署到 AWS 的流数据/分析应用程序定价,并考虑使用 Kinesis Firehose 将数据转储到 S3 中。
我的问题是,在为此定价 S3 成本时,我需要弄清楚我需要多少 PUT。
所以,我知道 Firehose 缓冲数据,然后刷新到 S3,但是我不清楚它是否会写入一个包含所有记录的“文件”,或者它是否会单独写入每条记录。
因此,假设我根据记录的大小将缓冲区大小/间隔设置为最佳数量,S3 PUT 的数量是否仍等于记录数或 Firehose 执行的刷新次数?
我正在尝试为部署到 AWS 的流数据/分析应用程序定价,并考虑使用 Kinesis Firehose 将数据转储到 S3 中。
我的问题是,在为此定价 S3 成本时,我需要弄清楚我需要多少 PUT。
所以,我知道 Firehose 缓冲数据,然后刷新到 S3,但是我不清楚它是否会写入一个包含所有记录的“文件”,或者它是否会单独写入每条记录。
因此,假设我根据记录的大小将缓冲区大小/间隔设置为最佳数量,S3 PUT 的数量是否仍等于记录数或 Firehose 执行的刷新次数?
在阅读了大量 AWS 文档后,我非常不同意 S3 不会向您收费的说法。
您将单独支付与 Amazon S3和 Amazon Redshift 使用相关的费用,包括存储和读/写请求。但是,您无需为 Amazon Kinesis Firehose 加载到 Amazon S3 和 Amazon Redshift 的数据支付数据传输费用。有关更多详细信息,请参阅 Amazon S3 定价和 Amazon Redshift 定价。[强调我的]
他们所说的是Kinesis Firehose不会向您收取任何额外的传输费用,除了 0.035 美元/GB,但您需要为与存储桶的交互付费。(入站到存储桶的数据始终不收取实际的每 GB 传输费用)。
不过,归根结底,您似乎可以PUT
根据一些可调参数控制针对您的存储桶的请求的粗略数量:
问:什么是缓冲区大小和缓冲区间隔?
Amazon Kinesis Firehose 将传入的流数据缓冲到特定大小或一段时间,然后再将其传送到目的地。您可以在创建传输流时配置缓冲区大小和缓冲区间隔。缓冲区大小以 MB 为单位,范围从 1MB 到 128MB。缓冲间隔以秒为单位,范围从 60 秒到 900 秒。
https://aws.amazon.com/kinesis/firehose/faqs/#creating-delivery-streams
除非它正在收集记录并将其聚合到大文件中,否则我不明白为什么缓冲区大小和缓冲区间隔中会有一个点......但是,如果不启动服务并将其试一试,我可以(不幸的是)只是真正的推测。
我不相信您为从 Firehose 到 S3 的写入操作支付任何额外费用。
您将单独支付与 Amazon S3 和 Amazon Redshift 使用相关的费用,包括存储和读/写请求。但是,您无需为 Amazon Kinesis Firehose 加载到 Amazon S3和 Amazon Redshift的数据支付数据传输费用。有关更多详细信息,请参阅 Amazon S3 定价和 Amazon Redshift 定价。
对于 kinesis 完成的任何操作,成本是一个 S3 PUT,而不是单个对象。所以一冲水管就是一放:
https://docs.aws.amazon.com/whitepapers/latest/building-data-lakes/data-ingestion-methods.html
https://forums.aws.amazon.com/thread.jspa?threadID=219275&tstart=0