本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
結構描述登錄的運作方式
本節說明結構描述登錄中的序列化和還原序列化程序的運作方式。
註冊結構描述:如果結構描述不存在於登錄檔中,則可以使用等於目的地名稱的結構描述名稱來註冊結構描述 (例如,test_topic、test_stream、prod_firehose),或者生產者可以提供結構描述的自訂名稱。生產者也可以將索引鍵值配對新增至綱要做為中繼資料,例如 source: MSK_KAFKA_Topic_A,或在建立結構描述時將標記套用至綱要。 AWS 結構描述註冊後,結構描述登錄檔會將結構描述版本 ID 傳回至序列化程式。如果結構描述存在,但序列化程式正在使用不存在的新版本,結構描述登錄檔會檢查結構描述參考相容性規則,以確保新版本是相容性的,然後再將它註冊為新版本。
註冊結構描述的方法有兩種:手動註冊和自動註冊。您可以透過AWS Glue主控台或CLI/手動註冊結構描述SDK。
當序列化程式設定中開啟自動註冊時,將執行結構描述的自動註冊。如果在生產者組態中沒有提供
REGISTRY_NAME
,則自動註冊將在預設登錄檔 (default-registry) 下註冊新的結構描述版本。請參閱安裝 SerDe 程式庫,以取得有關指定自動註冊屬性的資訊。序列化程式會針對結構描述驗證資料記錄:當產生資料的應用程式已註冊其結構描述時,結構描述登錄檔序列化程式會驗證應用程式所產生的記錄是以符合已註冊的結構描述的欄位和資料類型構成。如果記錄的結構描述不符合註冊的結構描述,序列化程式將傳回例外狀況,應用程式將無法將記錄傳遞到目的地。
如果沒有結構描述存在,且未透過生產者組態提供結構描述名稱,則會使用與主題名稱相同的名稱 (如果是 Apache Kafka 或 AmazonMSK) 或串流名稱 (如果是 Kinesis Data Streams) 建立結構描述。
每個記錄都有結構描述定義和資料。結構描述定義會根據結構描述登錄檔中的現有結構描述和版本進行查詢。
依預設,產生器快取綱要定義和已註冊綱要IDs的綱要版本。如果記錄的結構描述版本定義不符合快取中的可用內容,生產者將嘗試使用結構描述登錄檔來驗證結構描述。如果結構描述版本有效,則其版本 ID 和定義將在生產者本機快取。
您可以在安裝 SerDe 程式庫的步驟 #3 的選用生產者屬性中調整預設快取期間 (24 小時)。
序列化並傳遞記錄:如果記錄符合結構描述,序列化程式會使用結構描述版本 ID 裝飾每筆記錄,根據選取的資料格式 (AVRO、Protobuf 或其他格式即將推出) 序列化記錄、壓縮記錄 (選用的生產者配置),並將其傳送至目的地。JSON
消費者還原序列化資料:讀取此資料的消費者使用結構描述登錄檔還原序列化程式庫,從記錄承載剖析結構描述版本 ID。
還原序列化程式可能會從結構描述登錄檔要求結構描述:如果這是還原序列化程式第一次看到具有特定結構描述版本 ID 的記錄,則使用結構描述版本 ID,還原序列化程式會從結構描述登錄檔要求結構描述,並在本機快取消費者。如果結構描述登錄檔無法還原序列化記錄,消費者可以從記錄記錄中記錄資料,然後繼續,或停止應用程式。
還原序列化程式使用結構描述來還原序列化記錄:當還原序列化程式從結構描述登錄檔擷取結構描述版本 ID 時,還原序列化程式會解壓縮記錄 (如果產生者傳送的記錄已壓縮),並使用結構描述來還原序列化記錄。應用程式現在會處理記錄。
注意
加密:您的用戶端透過呼叫與結構描述登錄通訊,API呼叫會使用加密方HTTPS式TLS加密傳輸中的資料。儲存在結構描述登錄檔中的結構描述一律會使用服務管理 AWS Key Management Service (AWS KMS) 金鑰加密。
注意
使用者授權:綱要登錄支援以身分識別為基礎IAM的原則。