有没有办法在 Cloud BigTable 中转储布尔对象?
Is there any way to dump boolean object in Cloud BigTable?
我有某些用例,其中 api 服务正在使用 rowKey 检索 BigTable 行。我正在经历的问题是 api 服务正在尝试检索一些具有布尔值的列并在前端进行布尔比较。由于 BigTable 不支持该数据类型。前端服务对比部分未按预期工作。我正在使用以下代码在 BigTable 中存储布尔值。
Boolean value = Boolean.parseBoolean(newImageMap.get(Key).toString());
SetCell setCell = SetCell.newBuilder()
.setFamilyName(Utility.COLUMN_FAMILY)
.setColumnQualifier(Utility.str_to_bb(Key,StandardCharsets.UTF_8))
.setTimestampMicros(yearAgoMillis)
.setValue(ByteString.copyFrom(Bytes.toBytes(value)))
// .setValue(Utility.str_to_bb(String.valueOf(value),StandardCharsets.UTF_8))
.build();
但是布尔值在 BigTable 中存储为字符串。您可以在下面的快照中看到存储的值。
如果有办法处理此类用例,请告诉我。
boolean-value-ss
所以这有两个部分:使用现有的布尔字符串值,并将当前设置转换为更易于使用。
要使用当前设置,您只需将结果与 "true" 和 "false" 字符串进行比较。根据您在与 Pievis 的评论中的讨论,这似乎不是您想要做的。
因此要转换当前设置:
您应该将 0 用作 false,将 1 用作 true(或者您可以留空作为 false)这对于 space 会更有效。然后要转换所有现有值,您必须对值 "true" 进行完整的 table 扫描过滤,然后将这些单元格更新为 1 和一个在值 "true" 上进行过滤的单元格=17=] 你删除那些单元格的地方。
无法在 BigTable 中转储布尔对象,因为 BigTable 不支持布尔数据类型。相反,我会建议您更改驱动程序代码并将数据类型转换为合适的形式并将其发送到前端,这样会更合适。为此,您必须从源端预先识别布尔数据类型并将其存储为配置,这将是驱动程序代码的输入。
如果此解决方案有效,请告诉我。
我有某些用例,其中 api 服务正在使用 rowKey 检索 BigTable 行。我正在经历的问题是 api 服务正在尝试检索一些具有布尔值的列并在前端进行布尔比较。由于 BigTable 不支持该数据类型。前端服务对比部分未按预期工作。我正在使用以下代码在 BigTable 中存储布尔值。
Boolean value = Boolean.parseBoolean(newImageMap.get(Key).toString());
SetCell setCell = SetCell.newBuilder()
.setFamilyName(Utility.COLUMN_FAMILY)
.setColumnQualifier(Utility.str_to_bb(Key,StandardCharsets.UTF_8))
.setTimestampMicros(yearAgoMillis)
.setValue(ByteString.copyFrom(Bytes.toBytes(value)))
// .setValue(Utility.str_to_bb(String.valueOf(value),StandardCharsets.UTF_8))
.build();
但是布尔值在 BigTable 中存储为字符串。您可以在下面的快照中看到存储的值。 如果有办法处理此类用例,请告诉我。 boolean-value-ss
所以这有两个部分:使用现有的布尔字符串值,并将当前设置转换为更易于使用。
要使用当前设置,您只需将结果与 "true" 和 "false" 字符串进行比较。根据您在与 Pievis 的评论中的讨论,这似乎不是您想要做的。
因此要转换当前设置: 您应该将 0 用作 false,将 1 用作 true(或者您可以留空作为 false)这对于 space 会更有效。然后要转换所有现有值,您必须对值 "true" 进行完整的 table 扫描过滤,然后将这些单元格更新为 1 和一个在值 "true" 上进行过滤的单元格=17=] 你删除那些单元格的地方。
无法在 BigTable 中转储布尔对象,因为 BigTable 不支持布尔数据类型。相反,我会建议您更改驱动程序代码并将数据类型转换为合适的形式并将其发送到前端,这样会更合适。为此,您必须从源端预先识别布尔数据类型并将其存储为配置,这将是驱动程序代码的输入。 如果此解决方案有效,请告诉我。