本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料表和向量索引之間的資料同步
DynamoDB 會自動保持向量索引與其基礎資料表同步。了解同步的運作方式可協助您預測搜尋結果何時完成,以及為什麼項目可能不會出現在結果中。
在現有資料表上回填索引
當您將向量索引新增至已包含項目的資料表時,DynamoDB 會以現有資料回填索引。當 DynamoDB 設定索引基礎設施IndexStatusCREATING時,索引會先轉換為 。然後,當 DynamoDB 從現有的基底資料表資料填入索引true時,它會將 移至 IndexStatusACTIVE,並將 Backfilling設定為 。在此階段,基底資料表的新寫入會複寫至索引,但會SearchVectors傳回錯誤,直到回填完成為止。使用 DescribeTable並等待 ,直到 IndexStatus 為 ACTIVE,且在您搜尋false之前Backfilling為 。請參閱 將向量索引新增至現有資料表。
持續寫入同步
索引處於作用中狀態後,DynamoDB 會將每個寫入基底資料表的寫入複寫至向量索引。下列行為會影響寫入是否以及如何達到索引:
-
只有當項目包含有效的向量屬性時,才會複寫至索引。如果索引定義分割區索引鍵,項目也必須包含該分割區索引鍵屬性;否則,寫入會在基礎資料表上成功,但項目不會複寫至索引。
-
向量值會依寫入方式存放在基底資料表中,但會以 32 位元浮點 (f32) 精確度儲存在索引中。精確度較高的值會在複寫至索引時失去該精確度。
-
當您從項目中刪除向量屬性或刪除項目時,對應的項目會從索引中移除。
如需完整的寫入驗證規則集,請參閱 使用向量資料寫入項目。
跨區域同步
當具有向量索引的資料表是全域資料表時,DynamoDB 會將任何複本區域中的寫入複寫到其他區域,並在該區域編製索引。DynamoDB 會以非同步方式將資料複寫到向量索引。您在一個區域中寫入的向量可能不會立即出現在另一個區域中SearchVectors的結果中,即使資料表使用多區域強式一致性 (MRSC)。請參閱搭配全域資料表使用向量索引。