google-cloud-platform - 有没有办法在 Cloud BigTable 中转储 bool 对象?

标签 google-cloud-platform google-cloud-dataflow apache-beam google-cloud-bigtable

我有一些用例,其中 api 服务使用 rowKey 检索 BigTable 行。我正在经历的问题是 api 服务正在尝试检索一些具有 bool 值的列并在前端进行 bool 比较。由于 BigTable 不支持该数据类型。前端服务对比部分未按预期工作。我正在使用以下代码在 BigTable 中存储 bool 值。

                    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();

但是 bool 值在 BigTable 中存储为字符串。您可以在下面的快照中看到存储的值。 如果有办法处理此类用例,请告诉我。 boolean-value-ss

最佳答案

所以这有两个部分:使用现有的 bool 字符串值,并将当前设置转换为更易于使用。

要使用当前设置,您只需将结果与“true”和“false”字符串进行比较。根据您在与 Pievis 的评论中的讨论,这似乎不是您想要做的。

因此要转换当前设置: 您应该将 0 用作 false,将 1 用作 true(或者您可以留空作为 false)这将更节省空间。然后要转换所有现有值,您必须对值“true”进行全表扫描过滤,然后将这些单元格更新为 1 和一个在值“false”上过滤并删除这些值的单元格细胞。

关于google-cloud-platform - 有没有办法在 Cloud BigTable 中转储 bool 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60101217/

相关文章:

google-cloud-platform - 我如何训练以在 NLP 中找到美国状态的出现?

swift - 在快照监听器中添加一个新文档时的 Firestore 文档读取成本

google-cloud-platform - Google Cloud Firewall 默认情况下是否会阻止子网间流量?

java - 跨窗口复制数据以填充无限数量的点

google-bigquery - 从 Cloud Dataflow 代码调用存储过程

node.js - 在 package.json 中使用私有(private) git 存储库部署 Google App Engine

google-cloud-platform - 谷歌云数据流与谷歌云数据融合

java - 从 Kubernetes 运行梁数据流作业

java - @OnTimer 方法在触发时接收空引用

google-cloud-dataflow - 在 DataStoreIO.Write 之后链接另一个转换