我有一个包含 2 个字段的表:id (primary key) fld_1 text
,例如1 'hello world'
,我在目标表中有 1 行,并且我有包含 1 行的源 tsv 文件:1\t
。加载到目标表后,我希望看到1 null
,但数据没有改变,我仍然得到1 'hello world'
设置'dsbulk.schema.nullToUnset': 'false'
帮助我,但在我看来,这不是最好的解决方案,是否有任何正确的方法来加载具有空值的数据或提供的解决方案可以吗?
我有一个包含 2 个字段的表:id (primary key) fld_1 text
,例如1 'hello world'
,我在目标表中有 1 行,并且我有包含 1 行的源 tsv 文件:1\t
。加载到目标表后,我希望看到1 null
,但数据没有改变,我仍然得到1 'hello world'
设置'dsbulk.schema.nullToUnset': 'false'
帮助我,但在我看来,这不是最好的解决方案,是否有任何正确的方法来加载具有空值的数据或提供的解决方案可以吗?
您所描述的是预期行为,DSBulk 默认情况下将避免插入空值,因为这些会导致 Cassandra 中出现逻辑删除。
如果不覆盖“hello world”的现有值,只需更新 id 列,它仍然会存在。
如果您打算进行任何批量加载,我强烈建议您避免使用dsbulk.schema.nullToUnset并允许其默认为 true。如果您需要覆盖某些内容,请不要插入空值,而是包含空字符串、特殊字符、字符串“null”等。但不要插入大量空值,因为您将不必要地创建大量空值。如果需要读取此数据,可能会导致问题的墓碑。