我创建了一个 AWS Firehose 端点(可能会更改为简单的 Kinesis),它从生产者接收日志并将它们保存到 S3 存储桶和一个使用数据、处理数据并将输出保存到数据库的 lambda 函数。
一切正常。现在我正计划为整个结构创建一个登台和开发流程。当我发布新版本时,我无法立即替换整个生产者,因此我需要保留旧的生产版本,直到没有生产者离开 - 因为我可能会对新版本进行破坏性的协议更改。
我不确定使用 kinesis 和 lambda 创建版本化系统的最佳方法是什么。我是否应该为新版本(包括开发和暂存)复制整个结构并让生产者写入特定版本的流?
或者我应该创建一个 mid lambda 函数来检查数据包(包含它们的版本信息)并将事件输出到具有版本化文件夹的特定 s3?这样 lambda 函数将只消耗它们知道的数据。这将让我使用对 lambda 函数的版本控制支持。
这是第一个想法的结构图像
这是第二个结构
我想知道哪个是更好的解决方案,或者有更好的方法来实现这一目标
architecture lambda amazon-s3 amazon-web-services amazon-kinesis
AWS 最近推出了 GlobalTable,以实现跨不同区域的多主、容错设置。限制之一似乎是“表必须为空”才能设置 GlobalTable。
问题是 - 我可以从美国的 2 个区域开始,然后随着我们的发展扩展到其他区域吗?如果是,则上述约束就不成立。
有人尝试过 GlobalTable 吗?有什么想法吗?
我有两个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流仅流更新信息,而不流表中已经存在的信息。
我遇到了以下 leetcode 问题,我对一些人用来解决它的方法有疑问。问题是:给定一个非空的二叉搜索树和一个目标值,在BST中找到最接近目标的k个值。
注意:给定的目标值是一个浮点数。
您可以假设 k 始终有效,即: k ? 总节点数。
你保证在 BST 中只有一组唯一的 k 值最接近目标。
因此,有些人所做的是,他们在保持最近元素的 ak 大小队列的同时进行了有序遍历。在顺序遍历过程中,如果发现比队列中的第一个节点更接近目标的元素,则从队列中删除第一个节点并添加当前值。我的问题是,为什么它们与队列中的第一个元素进行比较?这是我所指的一些代码:https : //leetcode.com/discuss/94472/inorder-one-linkedlist-java-solution-beat-85%25