

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

# 資料表和向量索引之間的資料同步
<a name="VectorSearchDataSync"></a>

DynamoDB 會自動保持向量索引與其基礎資料表同步。了解同步的運作方式可協助您預測搜尋結果何時完成，以及為什麼項目可能不會出現在結果中。

## 在現有資料表上回填索引
<a name="VectorSearchDataSync.Backfilling"></a>

當您將向量索引新增至已包含項目的資料表時，DynamoDB 會以現有資料回填索引。當 DynamoDB 設定索引基礎設施`IndexStatus``CREATING`時，索引會先轉換為 。然後，當 DynamoDB 從現有的基底資料表資料填入索引`true`時，它會將 移至 `IndexStatus``ACTIVE`，並將 `Backfilling`設定為 。在此階段，基底資料表的新寫入會複寫至索引，但會`SearchVectors`傳回錯誤，直到回填完成為止。使用 `DescribeTable`並等待 ，直到 `IndexStatus` 為 `ACTIVE`，且在您搜尋`false`之前`Backfilling`為 。請參閱 [將向量索引新增至現有資料表](VectorSearchWorkingWith.md#VectorSearchWorkingWith.Create.ExistingTable)。

## 持續寫入同步
<a name="VectorSearchDataSync.OngoingWrites"></a>

索引處於作用中狀態後，DynamoDB 會將每個寫入基底資料表的寫入複寫至向量索引。下列行為會影響寫入是否以及如何達到索引：
+ 只有當項目包含有效的向量屬性時，才會複寫至索引。如果索引定義分割區索引鍵，項目也必須包含該分割區索引鍵屬性；否則，寫入會在基礎資料表上成功，但項目不會複寫至索引。
+ 向量值會依寫入方式存放在基底資料表中，但會以 32 位元浮點 (f32) 精確度儲存在索引中。精確度較高的值會在複寫至索引時失去該精確度。
+ 當您從項目中刪除向量屬性或刪除項目時，對應的項目會從索引中移除。

如需完整的寫入驗證規則集，請參閱 [使用向量資料寫入項目](VectorSearchWorkingWith.md#VectorSearchWorkingWith.Write)。

## 跨區域同步
<a name="VectorSearchDataSync.GlobalTables"></a>

當具有向量索引的資料表是全域資料表時，DynamoDB 會將任何複本區域中的寫入複寫到其他區域，並在該區域編製索引。DynamoDB 會以非同步方式將資料複寫到向量索引。您在一個區域中寫入的向量可能不會立即出現在另一個區域中`SearchVectors`的結果中，即使資料表使用多區域強式一致性 (MRSC)。請參閱[搭配全域資料表使用向量索引](VectorSearchGlobalTables.md)。