【问题标题】:what does Key.of(2, 2) do in google spanner?Key.of(2, 2) 在谷歌扳手中做什么?
【发布时间】:2020-01-25 07:40:45
【问题描述】:

我是 Google Cloud Spanner 的新手,Key.of(2, 2) 在 Google Cloud Spanner 中有什么作用?

导入 com.google.cloud.spanner.Key;

【问题讨论】:

    标签: spring-boot google-cloud-spanner


    【解决方案1】:

    它创建一个键值来引用具有值 (2, 2) 的主键(或其他索引)。假设您有下表:

    CREATE TABLE FOO
    (KEY1 INT64, KEY2 INT64, BAR STRING(100))
    PRIMARY KEY (KEY1, KEY2)
    

    然后 Key.of(2,2) 创建一个键,该键将引用表中 KEY1=2 AND KEY2=2 所在的行。

    您可以在读取操作和变异操作中使用此键来指定要读取或更新/删除的行。

    您还可以使用一个键来使用二级索引而不是主键来读取数据。假设您的表还具有以下二级索引:

    CREATE INDEX IDX_FOO_BAR ON FOO (BAR)
    

    然后您可以通过使用 Key 过滤索引值来从表中读取数据:

    DatabaseClient client = spanner.getDatabaseClient(...)
    ResultSet resultSet =
      client
        .singleUse()
        .readUsingIndex(
          "FOO",
          "IDX_FOO_BAR",
          KeySet.range(KeyRange.closedOpen(Key.of("A"), Key.of("C"))),
                    Arrays.asList("KEY1", "KEY2", "BAR");
    

    上面将读取表 FOO 中BAR>='A' AND BAR<'C' 的所有行。

    【讨论】:

    • 这如何与二级索引一起工作?例如(key1, key2) 的主键和 (key3) 的辅助索引?
    • @foxygen 我添加了一个使用键读取原始答案的二级索引的示例
    猜你喜欢
    • 2020-01-25
    • 2017-08-28
    • 1970-01-01
    • 2018-08-19
    • 2018-12-09
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多