小编ket*_*iya的帖子

AWS Kinesis 和 Lambda 数据版本控制

我创建了一个 AWS Firehose 端点(可能会更改为简单的 Kinesis),它从生产者接收日志并将它们保存到 S3 存储桶和一个使用数据、处理数据并将输出保存到数据库的 lambda 函数。

一切正常。现在我正计划为整个结构创建一个登台和开发流程。当我发布新版本时,我无法立即替换整个生产者,因此我需要保留旧的生产版本,直到没有生产者离开 - 因为我可能会对新版本进行破坏性的协议更改。

我不确定使用 kinesis 和 lambda 创建版本化系统的最佳方法是什么。我是否应该为新版本(包括开发和暂存)复制整个结构并让生产者写入特定版本的流?

或者我应该创建一个 mid lambda 函数来检查数据包(包含它们的版本信息)并将事件输出到具有版本化文件夹的特定 s3?这样 lambda 函数将只消耗它们知道的数据。这将让我使用对 lambda 函数的版本控制支持。

这是第一个想法的结构图像

每个版本的单独流程

这是第二个结构

适用于所有版本的单一通用流程

我想知道哪个是更好的解决方案,或者有更好的方法来实现这一目标

architecture lambda amazon-s3 amazon-web-services amazon-kinesis

5
推荐指数
1
解决办法
394
查看次数

是否可以稍后在 DynamoDB GlobalTable 中添加区域

AWS 最近推出了 GlobalTable,以实现跨不同区域的多主、容错设置。限制之一似乎是“表必须为空”才能设置 GlobalTable。

问题是 - 我可以从美国的 2 个区域开始,然后随着我们的发展扩展到其他区域吗?如果是,则上述约束就不成立。

有人尝试过 GlobalTable 吗?有什么想法吗?

amazon-web-services amazon-dynamodb amazon-dynamodb-streams

5
推荐指数
1
解决办法
2483
查看次数

使用转换将DynamoDB表复制到另一个DynamoDB表

我有两个DynamoDB表:Table_1和Table_2。我正在尝试弃用Table_1,并将信息从Table_1复制到Table_2,Table_1具有不同的GSI和不同的LSI。

Table_1属性是:Id,状态,isReused,空,正常

Table_2属性是:UserId,Status,isOld,normal

Id映射到UserId,状态映射到状态,法线映射到法线,从Table_2中删除空值,如果状态为“ OLD”,则isOld设置为true。

从Table_1导出数据,对属性/数据进行转换,然后将信息加载回Table_2的最佳方法是什么?

当前,我可以使用AWS Data Pipeline使用给定的模板将数据从Table_1导入/导出到Table_2,但是不会进行转换。我猜想我需要使用EMR进行转换。

我还使用DynamoDB流使表保持同步,但是据我了解,DynamoDB流仅流更新信息,而不流表中已经存在的信息。

amazon-web-services amazon-dynamodb amazon-data-pipeline

3
推荐指数
1
解决办法
1770
查看次数

在二叉搜索树中找到与目标数最接近的 k 个数

我遇到了以下 leetcode 问题,我对一些人用来解决它的方法有疑问。问题是:给定一个非空的二叉搜索树和一个目标值,在BST中找到最接近目标的k个值。

注意:给定的目标值是一个浮点数。

您可以假设 k 始终有效,即: k ? 总节点数。

你保证在 BST 中只有一组唯一的 k 值最接近目标。

因此,有些人所做的是,他们在保持最近元素的 ak 大小队列的同时进行了有序遍历。在顺序遍历过程中,如果发现比队列中的第一个节点更接近目标的元素,则从队列中删除第一个节点并添加当前值。我的问题是,为什么它们与队列中的第一个元素进行比较?这是我所指的一些代码:https : //leetcode.com/discuss/94472/inorder-one-linkedlist-java-solution-beat-85%25

algorithm binary-search-tree

2
推荐指数
1
解决办法
3589
查看次数