

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配全域資料表使用向量索引
<a name="VectorSearchGlobalTables"></a>

您可以使用向量索引搭配全域資料表，在多個 AWS 區域中執行相似性搜尋。當您將複本新增至具有向量索引的資料表時，DynamoDB 會自動將向量索引定義複寫至新的複本區域。您不會在每個區域中分別建立向量索引。您在任何複本區域中寫入的項目都會複寫到其他區域並編製索引，因此 會從本機區域`SearchVectors`傳回結果。

您可以對每個全域資料表組態使用向量索引：
+ **多區域最終一致性 (MREC)** – 全域資料表的預設一致性模式。如需詳細資訊，請參閱[多區域最終一致性 (MREC)](V2globaltables_HowItWorks.md#V2globaltables_HowItWorks.consistency-modes.mrec)。
+ **多區域強式一致性 (MRSC)** – 一種一致性模式，跨區域提供強式一致性讀取。如需詳細資訊，請參閱[多區域強一致性 (MRSC)](V2globaltables_HowItWorks.md#V2globaltables_HowItWorks.consistency-modes.mrsc)。
+ **多帳戶全域資料表** – 跨 AWS 帳戶複寫的全域資料表。如需詳細資訊，請參閱[DynamoDB 多帳戶全域資料表](globaltables-MultiAccount.md)。

多帳戶全域資料表一律使用 MREC，因為 MRSC 僅支援相同帳戶組態。這是全域資料表限制，而不是向量索引限制。

下列範例會將 區域中的複本新增至名為 `Products`且已有向量索引的`us-west-2`資料表。資料表必須使用隨需容量模式，這對於向量索引和此範例都是必要的。

```
aws dynamodb update-table \
    --table-name Products \
    --region us-east-1 \
    --replica-updates '[{"Create": {"RegionName": "us-west-2"}}]'
```

建立複本時，來源資料表狀態為 `UPDATING`，複本的 `ReplicaStatus`為 `CREATING`。使用 `DescribeTable`確認複本達到 ，`ACTIVE`並驗證向量索引是否已複寫。複本區域會報告與來源區域相同的向量索引名稱、維度、距離函數和投影。

```
aws dynamodb describe-table \
    --table-name Products \
    --region us-west-2
```

複本處於作用中狀態後，您可以在與來源區域相同的向量集`SearchVectors`上執行複本區域。在複本區域中搜尋之前，`DescribeTable`請在該區域中使用 ，並確認向量索引已完成回填，其`IndexStatus`為 `ACTIVE`且`Backfilling`為 `false`。複本的向量索引會獨立回填，因此在複本本身變成作用中之後，仍然可以回填一小段時間。由於向量搜尋使用近似近鄰 (ANN)，即使資料相同，同一查詢的區域之間的排名也可能略有不同。

```
aws dynamodb search-vectors \
    --table-name Products \
    --region us-west-2 \
    --index-name ProductEmbeddingIndex \
    --search-vector '[{"N": "0.1234"}, {"N": "-0.5678"}, {"N": "0.9012"}, ...]' \
    --top-k 10
```

**複寫延遲會影響跨區域搜尋結果**  
向量索引會以非同步方式跨區域傳播，即使是多區域強式一致性 (MRSC) 全域資料表也是如此。您在某個區域中寫入的向量可能不會立即出現在另一個區域中`SearchVectors`的結果中。若要讀取最近的寫入，請將搜尋傳送至進行寫入的相同區域。