Avro 形式

MIME タイプ: application/avro

ID: avro

Avro は、スキーマを使用してそのデータを構造化するバイナリデータ形式です。DataWeave は、スキーマを使用してデータを解析します。Avro データ構造は、DataWeave データ構造にマップされます。

Java 値のマッピング

次の表に、Avro と DataWeave の型のマッピングを示します。

Avro 型 DataWeave 型

long

Number

int

Number

double

Number

boolean

Boolean

string

String

fixed

String

bytes

Binary

enum

String

map

Object

array

Array

null

Null

例: Avro スキーマを使用する

次の例は、ライターが Avro データ構造の出力に使用するスキーマの指定方法を示しています。

入力

Avro スキーマは次のようになります。

schema.json:
{
    "type": "record",
    "name": "userInfo",
    "namespace": "my.example",
    "fields": [
        {
            "name": "username",
            "type": "string",
            "default": "NONE"
        },
        {
            "name": "age",
            "type": "int",
            "default": -1
        },
        {
            "name": "phone",
            "type": "string",
            "default": "NONE"
        },
        {
            "name": "housenum",
            "type": "string",
            "default": "NONE"
        }
    ]
}

ソース

この DataWeave スクリプトのヘッダーの ​schemaUrl​ プロパティでスキーマ (​schema.json​) を DataWeave ライターに渡します。ライターは、スキーマを使用してスクリプトの本文のコンテンツを構造化し、結果を Avro 形式で出力します。

%dw 2.0
output application/avro schemaUrl="classpath://schema.json"
---
[{
    username: "Mariano",
    age: 35,
    phone: "213",
    housenum: "123"
},
{
    username: "Leandro",
    age: 29,
    phone: "213",
    housenum: "123"
},
{
    username: "Christian",
    age: 25,
    phone: "213",
    housenum: "123"
}]

Configuration のプロパティ

DataWeave では、この形式の以下の設定プロパティがサポートされています。

Reader のプロパティ

この形式は、入力データを読み取るための指示を提供するプロパティを受け入れます。

パラメーター デフォルト 説明

schemaUrl​ (必須)

String

''

Avro スキーマの URL。有効な URL スキームは ​classpath://​、​file://​、または ​http://​ です。リーダーの場合、このプロパティは省略可能ですが、デフォルトは入力 Avro ファイルに埋め込まれたスキーマになります。リーダーの場合、埋め込まれたスキーマが必要です。ライターの場合、DataWeave にスキーマ値が必要です。

Writer のプロパティ

この形式は、出力データを書き込むための指示を提供するプロパティを受け入れます。

パラメーター デフォルト 説明

bufferSize

Number

8192

バッファライターのサイズ。値は 8 よりも大きい必要があります。

deferred

Boolean

false

true​ に設定すると、出力をデータストリームとして生成し、スクリプトの実行は生成されたコンテンツがコンシュームされるまで延期されます。

有効な値は、​true​ または ​false​ です。

schemaUrl​ (必須)

String

''

Avro スキーマの URL。有効な URL スキームは ​classpath://​、​file://​、または ​http://​ です。リーダーの場合、このプロパティは省略可能ですが、デフォルトは入力 Avro ファイルに埋め込まれたスキーマになります。リーダーの場合、埋め込まれたスキーマが必要です。ライターの場合、DataWeave にスキーマ値が必要です。

サポートされる MIME タイプ

この形式では、次の MIME タイプがサポートされます。

MIME タイプ

application/avro