Key.of(2, 2) 在 google 扳手中做什么?

what does Key.of(2, 2) do in google spanner?

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

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

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

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

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

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

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

CREATE INDEX IDX_FOO_BAR ON FOO (BAR)

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

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

以上将从 table FOO 中读取所有行,其中 BAR>='A' AND BAR<'C'.