อ่าน 2 นาที
ไอออน (รูปแบบการจัดเรียงข้อมูล)
Ion คือ ภาษาสำหรับการแปลงข้อมูลเป็นรูป แบบที่สามารถจัดเก็บ หรือจัดเก็บได้ ซึ่งพัฒนาโดย Amazon สามารถแสดงได้ทั้งในรูปแบบข้อความที่มนุษย์อ่านได้ หรือรูปแบบไบนารีที่กระชับ...
ไอออน (รูปแบบการจัดเรียงข้อมูล)
| ไอออน | |
|---|---|
| นามสกุลไฟล์ | .ไอออน |
| สื่อประเภทอินเทอร์เน็ต | แอปพลิเคชัน/ไอออน |
| พัฒนาโดย | อเมซอน |
| ประเภทของรูปแบบ | การแลกเปลี่ยนข้อมูล |
| เว็บไซต์ | amzn.github.io/ion-docs/ |
Ionคือภาษาสำหรับการแปลงข้อมูลเป็นรูป แบบที่สามารถจัดเก็บ หรือจัดเก็บได้ ซึ่งพัฒนาโดยAmazonสามารถแสดงได้ทั้งในรูปแบบข้อความที่มนุษย์อ่านได้ หรือรูปแบบไบนารีที่กระชับ รูปแบบข้อความนั้นเป็นส่วนขยายของJSONดังนั้นเอกสาร JSON ที่ถูกต้องทุกฉบับจึงเป็นเอกสาร Ion ที่ถูกต้องเช่นกัน
ประเภทข้อมูล
Ion เป็นซับเซ็ตของ JSON ซึ่งประกอบด้วยประเภทข้อมูลต่อไปนี้
null: ค่าว่าง (เพื่อความเข้ากันได้กับ JSON)boolค่าบูลีนstring: ตัวอักษรยูนิโค้ดlist: ชุดค่า Ion ที่เรียงลำดับอย่างเป็นระเบียบและมีความหลากหลาย (ส่วนขยายของอาร์เรย์ JSON)struct: ชุดข้อมูลที่ไม่มีลำดับ ประกอบด้วยคู่คีย์/ค่า (ส่วนขยายของอ็อบเจ็กต์ JSON)
ประเภทข้อมูล 'number' ที่ไม่ชัดเจนใน JSON นั้นถูกกำหนดไว้อย่างชัดเจนใน Ion ให้เป็นหนึ่งในประเภทต่อไปนี้
intจำนวนเต็มที่มีเครื่องหมายและขนาดใดๆ ก็ได้float: ตัวเลขทศลอยเข้ารหัสไบนารี IEEE 64 บิตdecimal: จำนวนจริงที่เข้ารหัสแบบทศนิยมที่มีความแม่นยำตามอำเภอใจ
Ion เพิ่มประเภทเหล่านี้:
timestamp: บันทึกวันที่/เวลา/เขตเวลาด้วยความแม่นยำสูงsymbol: อะตอมเชิงสัญลักษณ์ของยูนิโค้ด ( หรือ ที่เรียกว่า ตัวระบุ) ซึ่งจัดเก็บเป็นสตริงภายในในรูปแบบไบนารีblobข้อมูลไบนารีที่เข้ารหัสโดยผู้ใช้clobข้อมูลข้อความที่เข้ารหัสโดยผู้ใช้sexpรายการค่าแบบซ้อนกัน (เทียบเท่ากับนิพจน์ S ) ที่มีความหมายตามที่กำหนดโดยแอปพลิเคชัน
ไอออนแต่ละประเภทจะรองรับรูปแบบค่าว่าง ซึ่งบ่งชี้ว่าไม่มีค่าในขณะที่ยังคงรักษาประเภทที่เข้มงวดไว้ (เช่นnull.int, null.struct)
รูปแบบไฟล์ Ion อนุญาตให้แนบคำอธิบายประกอบ (เช่น รายชื่อสัญลักษณ์) อย่างน้อยหนึ่งรายการเข้ากับค่าใดๆ ก็ได้ คำอธิบายประกอบเหล่านี้สามารถใช้เป็นเมตาเดตาสำหรับข้อมูลที่ไม่สามารถมองเห็นได้ชัดเจน (เช่น บล็อบ)
การนำไปใช้
- การใช้งานไลบรารีที่ได้รับการสนับสนุนจาก Amazon
- ซี#
- โกลัง
- ไพธอน
- เจเอส
ตัวอย่าง
เอกสารตัวอย่าง
คุณสมบัติที่พบใน JavaScript และ JSON5:
// อนุญาตให้ใส่ความคิดเห็นโดยใช้เครื่องหมายทับคู่{ key : "value" , // key ในที่นี้เป็นสัญลักษณ์ หรืออาจเป็นสตริงเหมือนใน JSON nums : 1 _000_000 , // เทียบเท่ากับ 1000000 การใช้เครื่องหมายขีดล่างกับตัวเลขจะอ่านง่ายกว่า"A float" : 31415e-4 , // key เป็นค่าที่มีช่องว่าง}คุณสมบัติเฉพาะของ Ion:
{ symbol : 'a symbol' , // สัญลักษณ์คือสตริง Unicode ที่ถูกจัดเก็บไว้"A null integer" : null . int , annotated : age :: 35 , // สัญลักษณ์ "age" ถูกแนบกับค่า "35" เป็นคำอธิบายประกอบlists : 'hw grades' :: [ 80 , 85 , 90 ], // สามารถใช้สัญลักษณ์ใดก็ได้เป็นคำอธิบายประกอบmany_annot : I :: have :: many :: annotations :: true , // คำอธิบายประกอบไม่ได้ซ้อนกัน แต่เป็นรายการของคำอธิบายประกอบsexp : ( this ( is a [ valid ] "Ion" ) last :: value + 42 ) // นิพจน์ S ของ Ion 'this', 'is', 'a', 'valid', 'value' และ '+' เป็นสัญลักษณ์ } _value : {{ OiBTIKUgTyAASb8 = }}, // ค่า blob แสดงเป็น base64 _value : {{ "ab\0\xff" }} // ค่า clob แสดงเป็นสตริง ASCII พร้อม escape character แบบ C // ^ อนุญาตให้ใช้ชื่อ (คีย์) ซ้ำได้ แต่จะสร้างคำเตือนสำหรับพฤติกรรมที่ไม่กำหนด}การใช้งาน
- ฐานข้อมูลบัญชีแยกประเภทควอนตัม (QLDB) ของ Amazon จัดเก็บข้อมูลในเอกสาร Ion [ 1 ]
- PartiQLซึ่งเป็นภาษาการสืบค้นข้อมูลแบบ SQL โอเพนซอร์สจาก Amazon สร้างขึ้นบน Ion การสืบค้นข้อมูลที่รองรับโดย PartiQL ถูกใช้โดย QLDB และ S3Select [ 2 ]
เครื่องมือและส่วนต่อขยาย
- Ion Path Extractor APIมีเป้าหมายที่จะผสานความสะดวกสบายของ DOM API เข้ากับความเร็วของสตรีมมิ่ง API
- การสนับสนุน IDE
- คราส
- อินเทลลิเจ
- โมดูลรูปแบบข้อมูล Jackson สำหรับ Ion
- Apache Hive SerDeสำหรับ Ion
- แผนผังไอออน
- ข้อกำหนด
- การนำไปใช้
- Ion Hashกำหนดอัลกอริธึมสำหรับการสร้างแฮชสำหรับค่า Ion ใดๆ โดยใช้ฟังก์ชันแฮชที่ผู้ใช้กำหนด ซึ่งสามารถรับข้อมูลไบนารีที่มีความยาวใดๆ ก็ได้
- ข้อกำหนด
- การนำไปใช้
ลิงก์ภายนอก
- ข้อกำหนดไอออน
- การใช้งานภาษาที่ Amazon รองรับ
- เอกสารประกอบ API ของ Java
- การใช้งาน C#