旧行新列的空白 dynamodb

Posted

技术标签:

【中文标题】旧行新列的空白 dynamodb【英文标题】:Blank for new columns for old rows dynamodb 【发布时间】:2016-08-28 02:59:58 【问题描述】:

我正在使用 c#。

我在 dynamodb 中有数千行

现在我再插入几行,但列不同

喜欢

这里第 3 行和第 4 行是新行

现在我需要如下结构

现在我希望旧行应该有默认的 0 或新列的空白字符串,

我不想遍历旧行和更新的项目。

有没有办法设置默认值..

【问题讨论】:

您这样做是为了显示目的还是要在表格中存储“0”? 你没有说清楚为什么有这个有用,特别是因为你确认你看到它不适合 NoSQL。 【参考方案1】:

您要实现的目标实际上不适用于 NoSQL 类型的数据库。从技术上讲,DynamoDB 没有行和列的概念。相反,有些项目(您的记录)包含任意数量的属性。你可以阅读更多关于它的信息here。

如果您使用的是对象映射器,我建议您在该级别处理此逻辑,即。从 DynamoDB 获取项目时,如果需要,您可以在那里分配默认值。

【讨论】:

是的,我知道这与 NoSql 概念背道而驰,而且我认为通过实施这个概念我们失去了 nosql 的好处,但是有人问我这个,这就是为什么我把它放在这里。 【参考方案2】:

这不能使用 DynamoDB 查询存档。 DynamoDB 仅“知道”索引键(分区键、排序键和二级索引),无法告诉您表中存在的所有属性的名称(与关系数据库不同)。

我唯一能想到的是:

扫描整个数据库 将所有属性名称存储在例如HashSet<T> 对于每个项目:添加缺少的属性,分配您的默认值并更新它

【讨论】:

以上是关于旧行新列的空白 dynamodb的主要内容,如果未能解决你的问题,请参考以下文章

Scala DataFrame,将非空列的值复制到新列中

Spark 根据现有列的映射值创建新列

SQL - 如何获取列的值并将其作为新列的值放在字符串的末尾

Pandas 应用返回两个新列的函数

根据其他两列的值在 Pandas 中创建一个新列[重复]

新列的 SQL 不同分组依据