happytails.ai
繁體中文

Avro 結構描述相容性檢查器

檢查新 Avro 結構描述能否繼續讀取舊結構描述寫入的資料,或反向檢查。所有導致不相容的欄位、型別和列舉符號都會連同路徑列出。

每個 Avro 結構描述以 JSON 格式提交,最多 1,000,000 個字元;最多含 50,000 個 JSON 值和 64 層巢狀。傳遞模式最多可輸入 50 個較早版本。檢查在瀏覽器背景工作執行緒中執行。可下載 JSON 報告和問題 CSV 清單。 以 JSON 格式提供寫入器結構描述;傳遞模式則提供 {"versions":[...]},並依由舊到新排列較早結構描述。 最多 1,000,000 個字元。 執行前請檢查設定。

處理結果

回報問題或分享想法。

Avro 結構描述相容性檢查器
  1. 在主要輸入欄中貼上較早版本的 Avro 結構描述;傳遞模式請輸入 {"versions":[...]}。
  2. 將新結構描述貼到 New schema 欄位。
  3. 選擇向後、向前或完整相容性。
  4. 執行檢查並下載 JSON 報告或問題 CSV 清單。

使用須知

每個 Avro 結構描述以 JSON 格式提交,最多 1,000,000 個字元;最多含 50,000 個 JSON 值和 64 層巢狀。傳遞模式最多可輸入 50 個較早版本。檢查在瀏覽器背景工作執行緒中執行。可下載 JSON 報告和問題 CSV 清單。

模式

向後相容表示新結構描述可以讀取由舊結構描述寫入的資料,這是使用者升級所需的相容性。向前相容表示舊結構描述可以讀取由新結構描述寫入的資料。完整相容會同時檢查兩者。傳遞模式會依照從最舊到最新的順序,將新結構描述與列出的每個較早版本進行檢查,而不只是檢查最新版本。

解析規則

檢查遵循 Avro 1.11 規範中的 Schema Resolution 章節:int 可提升為 long、float 或 double;long 可提升為 float 或 double;float 可提升為 double;string 與 bytes 可互相提升。記錄依完整名稱、未限定名稱或讀取器別名比對。讀取器有而寫入器沒有的欄位必須有有效預設值。讀取器列舉必須包含寫入器的每個符號,除非它有預設值。寫入器聯集中的每個分支都必須能由讀取器解析。

檢查的限制

此檢查驗證 Avro 結構描述解析規則,而非特定結構描述登錄庫的額外規則。有效的 decimal 邏輯型別在 bytes 和 fixed 兩種編碼中都必須具有相同的精度和 scale。未知或無效的邏輯型別依底層 Avro 型別處理。聯集預設值會根據第一個分支檢查;巢狀預設值會遞迴驗證。

接下來可以做什麼