Avro スキーマ

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ユーザーマニュアル > Avro、Avro スキーマ >

Avro スキーマ

Avro スキーマは、 Avro データブロックを指定します。どのデータフィールドが期待され、どのように値が示されるかを指定します。 Avro スキーマに関する情報、とその仕様はここで確認することができます。

 

Avro スキーマに関する以下の点に注意してください:

 

Avro スキーマを JSON フォーマット内で作成
Avro スキーマは以下であることができます: JSON 文字列、JSON オブジェクト、または、 JSON 配列
Avro スキーマは、以下の4つの属性を含むことができます: namenamespacetype、 と fields
以下の8つのプリミティブなデータ型が存在します: nullbooleanintlongfloatdoublebytes、 と string
以下の6つの複合型が存在します: recordsenumsarraysmapsunions、 と fixed
プリミティブな型には属性が存在しません。また、各複合型には、自身の属性のセットが存在します。

 

Avro スキーマに関する更に詳しい情報は、Avro スキーマ仕様を参照してください。

 

サンプル

以下に、 Avro スキーマの簡単なサンプルが表示されています。それぞれが JSON フォーマットの Avro データスニペットに対応しています。スキーマは特定の構造を定義することに注意してください。 一部の場合、定義された構成が複数回インスタンス化される場合があり、結果の出力は、有効ではない JSON になる可能性があります。例えば、スキーマが JSON オブジェクトの構造を定義する場合があります。JSON オブジェクトが複数回インスタンス化されると、各オブジェクトは、個別に、 Avro スキーマに対して有効ではあるが、コンテナーオブジェクトが存在しないため、ドキュメント全体は、有効な JSON ではない場合があります。有効な JSON が必要な場合、 JSON オブジェクトの配列を検証するために Avro スキーマを書き直す必要があるかもしれません。サンプル 4 と 5 を比べて、上記の点を確認してください。

 

 

Click to exppand/collapse01: JSON 文字列としての Avro スキーマ

このスキーマは、単一の文字列で、データブロックが Avro (int) プリミティブデータ型 "int" の値を持つように指定します。

有効な Avro: 2016

無効な Avro: "2016"

 

 

Click to exppand/collapse02:  JSON オブジェクト としての Avro スキーマ

このスキーマは、前のスキーマと同じ内容を指定しますが、 JSON オブジェクトです。データブロックは Avro (int) プリミティブ データ型の値であるアイテムを1つ含む必要があります。

{

   "type": "int"

}

 

有効な Avro: 2016

無効な Avro: "2016"

 

 

Click to exppand/collapse03: JSON オブジェクト としての Avro スキーマ: 整数の配列

このスキーマは、整数の配列を指定する JSON オブジェクトです:

{

   "type": "array",

   "items": "int"

}

 

有効な Avro: [2016, 2017]

有効な Avro: [2016]

有効な Avro: [2016]

無効な Avro: 2016, 2017

 

 

Click to exppand/collapse04: JSON オブジェクトとしての Avro スキーマ : レコード

このスキーマは、単一のレコードを指定する JSON オブジェクトです:

{

   "type": "record",

   "name": "ages",

   "fields" : [

   {"name": "name", "type": "string"},

   {"name": "age", "type": "int"}

   ]

}

 

有効な Avro: {"name":"John", "age":35}

 

 

 

Click to exppand/collapse05:JSON オブジェクトとしての Avro スキーマ:複数のレコード

このスキーマは、レコードの配列を指定する JSON オブジェクトです。それぞれは JSON オブジェクトである必要があります:

{

   "type": "array",

   "items": {

   "type": "record",

   "name": "ages",

   "fields" : [

   {"name": "name", "type": "string"},

   {"name": "age", "type": "int"}

   ]

    }

}

 

有効な Avro: [{"name":"Mary", "age":34}, {"name":"John", "age":35}]

 

 

 

Avro スキーマ ファイル型

XMLSpy の機能を Avro に関連した、編集と検証で使用する場合、 XMLSpy は、ファイルを Avro スキーマとして認識する必要があります。ファイルは、ファイルの拡張子が XMLSpy のオプションダイアログ(「ツール | オプション | ファイル型」)で定義されているとおり Avro スキーマとして識別されます。 XMLSpy のデフォルトの設定は、1つのファイル拡張子.avsc 拡張子— を Avro スキーマとして指定しています。 Avro スキーマ ドキュメントを指定する他のファイル 拡張子を作成する場合、これらのファイル拡張子を Avro スキーマ 拡張子として、オプションダイアログ内のリストに追加します。

 

Avro スキーマの作成と編集

XMLSpy 内では、 Avro スキーマ ファイル拡張子をファイルの型と指定することにより、 Avro スキーマとして、新規のファイルを作成することができます。 XMLSpy は、インテリジェントな編集ヘルプを入力時に提供します。この機能にはコンテキストに敏感なキーワードの提案、自動かっこ、引用符の入力、構文の色分け、キーワードの自動補完などが含まれています。更に、3つの入力ヘルパーが搭載されています: JSON プロパティ、JSON 値、および JSON エンティティ。使用することのできるエントリは、コンテキストに敏感です。挿入するエントリをカーソルが現在ある場所でダブルクリックします。 「検証 |  XML の検証(F8) メニューコマンドを利用して、ファイルを Avro スキーマ仕様に対して検証 することができます。

 


(C) 2019 Altova GmbH