概念 - 規(guī)范 - Schema

Schema

該Schema文件的版本從 0 開始計數(shù),目前保留了所有版本的Schema文件。可能存在依賴舊Schema版本的舊文件,因此刪除此類文件時應(yīng)謹慎行事。

Schema 文件為 JSON 格式,其內(nèi)容包括:

  1. 字段:數(shù)據(jù)字段列表,數(shù)據(jù)字段包含 ID、名稱、類型,字段 ID 用于支持schema演變。
  2. 分區(qū)鍵:字段名稱列表,表的分區(qū)定義,不可修改。
  3. 主鍵:字段名稱列表,表的主鍵定義,不可修改。

舉例

  "version" : 3,
  "id" : 0,
  "fields" : [ {
    "id" : 0,
    "name" : "order_id",
    "type" : "BIGINT NOT NULL"
  }, {
    "id" : 1,
    "name" : "order_name",
    "type" : "STRING"
  }, {
    "id" : 2,
    "name" : "order_user_id",
    "type" : "BIGINT"
  }, {
    "id" : 3,
    "name" : "order_shop_id",
    "type" : "BIGINT"
  } ],
  "highestFieldId" : 3,
  "partitionKeys" : [ ],
  "primaryKeys" : [ "order_id" ],
  "options" : {
    "bucket" : "5"
  },
  "comment" : "",
  "timeMillis" : 1720496663041
}

兼容性

對于舊版本:

  • 版本 1:如果沒有設(shè)置桶鍵,則應(yīng)將“bucket”(桶)選項設(shè)置為 1 。
  • 版本 1 和 2:如果不存在 file.format 鍵,則應(yīng)將 file.format -> orc 放入選項中。

數(shù)據(jù)列

DataField 表示表中的一列。

  1. id: 整數(shù)類型,列標(biāo)識符,自動遞增,用于表結(jié)構(gòu)演變。
  2. name:字符串,列名。
  3. type: 數(shù)據(jù)類型方面,它與 SQL 中的字符串類型非常相似。
  4. description: 字符串。

更新Schema

更新Schema應(yīng)當(dāng)生成一個新的Schema文件。

└── default.db
    └── my_table
        ├── schema
            ├── schema-0
            ├── schema-1
            └── schema-2

該快照中提到了一個“模式”(schema)的相關(guān)內(nèi)容。數(shù)值最大的模式文件通常就是最新的模式文件。

舊的模式文件不能直接刪除,因為可能存在引用舊模式文件的舊數(shù)據(jù)文件。在讀取表時,需要依靠它們來進行模式演變讀取操作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基本概念 數(shù)據(jù)庫是長期存儲在計算機內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合 關(guān)系模式:描述關(guān)系數(shù)據(jù)庫中表的結(jié)構(gòu)和約束的...
    bowen_wu閱讀 536評論 0 0
  • SQLite 是一個開源的嵌入式關(guān)系型數(shù)據(jù)庫,是一個自給自足的、無服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫引擎...
    派派森森閱讀 1,170評論 0 5
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,980評論 0 9
  • 一、背景 在當(dāng)今世界,大數(shù)據(jù)時代的來臨,帶來了信息技術(shù)發(fā)展的巨大變革,并深刻影響著社會生產(chǎn)和人民生活的方方面面。如...
    Andy_shenzl閱讀 507評論 0 2
  • 1、引言 數(shù)據(jù)庫設(shè)計過程中表、字段等的命名規(guī)范也算是設(shè)計規(guī)范的一部分,不過設(shè)計規(guī)范更多的是為了確保數(shù)據(jù)庫設(shè)計的合理...
    SnowflakeCloud閱讀 41,255評論 0 48

友情鏈接更多精彩內(nèi)容