Amazon Amazon 離子數據格式參考 QLDB - Amazon Quantum 賬本數據庫(AmazonQLDB)

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

Amazon Amazon 離子數據格式參考 QLDB

重要

支援結束通知:現有客戶將能夠使用 Amazon,QLDB直到 2025 年 7 月 31 日終止支援為止。有關更多詳細信息,請參閱將 Amazon QLDB 分類帳遷移到 Amazon Aurora 郵政. SQL

Amazon QLDB 使用數據表示法模型,將 Amazon 離子與 PartiQL 類型的子集進行統一。本節提供 Ion 文件資料格式的參考概觀,與其與 PartiQL 整合不同。

在 Amazon 中使用 PartiQL 查詢離子 QLDB

如需使用 PartiQL 查詢離子資料的語法和語意QLDB,請參閱 Amazon QLDB PartiQL 參考資料使用 PartiQL 查詢離子中的。

如需查詢和處理QLDB分類帳中 Ion 資料的程式碼範例,請參閱Amazon 離子代碼示例使用 Amazon 離子

什麼是 Amazon 離子?

Ion 是一種開源的,豐富的類型,自我描述的分層數據序列化格式,最初是在 Amazon 內部開發的。它基於抽象數據模型,可讓您同時存儲結構化和非結構化數據。這是一個超集合JSON,這意味著任何有效的JSON文檔也是一個有效的離子文檔。本指南假設具備的基準工作知識JSON。如果您還不熟悉JSON,請參閱簡介以JSON取得更多資訊。

您可以以人類可讀的文本形式或二進制編碼形式互換表示 Ion 文檔。就像JSON,文本形式易於閱讀和寫入,支持快速原型。二進位編碼對於持續、傳輸和剖析而言更加緊湊且有效率。離子處理器可以在兩種格式之間進行轉碼,以表示完全相同的一組數據結構,而不會丟失任何數據。此功能可讓應用程式針對不同使用案例最佳化處理資料的方式。

注意

Ion 數據模型是嚴格基於價值的,不支持引用。因此,數據模型可以表示可以嵌套到任意深度,但不是定向圖的數據層次結構。

離子規格

有關 Ion 核心數據類型的完整列表,其中包含完整描述和值格式詳細信息,請參閱 Amazon GitHub 網站上的 Ion 規範文檔

為了簡化應用程式開發,Amazon Ion 提供可為您處理 Ion 資料的用戶端程式庫。如需處理 Ion 資料的常見使用案例的程式碼範例,請參閱上的 Amazon Ion 食譜。 GitHub

JSON兼容

類似於JSON,您可以使用一組原始資料類型和一組遞迴定義的容器類型來撰寫 Amazon Ion 文件。Ion 包括以下傳統JSON數據類型:

  • null:一個通用的,不具類型的空(空)值。此外,如以下部分所述,Ion 支持每個基本類型的不同 null 類型。

  • bool:布林值。

  • string: 文字常值。

  • list:值的排序異構集合。

  • struct:名稱-值對的無序集合。就像JSON,struct允許每個名稱多個值,但這通常不鼓勵。

來自的擴充 JSON

數字類型

Amazon Ion 不是模糊的類JSONnumber型,而是嚴格將數字定義為以下類型之一:

  • int:任意大小的有符號整數。

  • decimal: 任意精度的十進制編碼實數。

  • float: 二進位編碼的浮點數 (64 位元IEEE)。

解析文件時,Ion 處理器會依照下列方式指定編號類型:

  • int: 沒有指數或小數點的數字 (例如,100200)。

  • decimal: 具有小數點且沒有指數的數字 (例如,0.00001,200.0)。

  • float:具有指數的數字,例如科學記數法或 E 表示法(例如,2e03.1e-4)。

新的資料類型

Amazon 離子添加了以下數據類型:

  • timestamp:任意精度的日期/時間/時區時刻。

  • symbol:Unicode 符號原子(如標識符)。

  • blob: 使用者定義編碼的二進位資料。

  • clob: 使用者定義編碼的文字資料。

  • sexp:具有應用程序定義語義的值的有序集合。

空類型

除了由定義的泛型空類型之外JSON,Amazon Ion 還支持每個基本類型的不同空類型。這表示缺乏價值,同時保持嚴格的數據類型。

null null.null // Identical to untyped null null.bool null.int null.float null.decimal null.timestamp null.string null.symbol null.blob null.clob null.struct null.list null.sexp

離子文本示例

// Here is a struct, which is similar to a JSON object. { // Field names don't always have to be quoted. name: "fido", // This is an integer. age: 7, // This is a timestamp with day precision. birthday: 2012-03-01T, // Here is a list, which is like a JSON array. toys: [ // These are symbol values, which are like strings, // but get encoded as integers in binary. ball, rope ], }

API參考