Avro
This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.

Avroフォーマット #

Format: Serialization Schema Format: Deserialization Schema

Apache Avroフォーマットを使って、Avroスキーマに基づいたAvroデータを読み書きできます。現在、Avroスキーマはテーブルスキーマから派生しています。

依存 #

In order to use the Avro format the following dependencies are required for both projects using a build automation tool (such as Maven or SBT) and SQL Client with SQL JAR bundles.

Maven dependency SQL Client
Only available for stable releases.

Avro形式を持つテーブルの作成法 #

ここでは、KafkaコネクタとAvro形式を使ってテーブルを作成する方法を示します。

CREATE TABLE user_behavior (
  user_id BIGINT,
  item_id BIGINT,
  category_id BIGINT,
  behavior STRING,
  ts TIMESTAMP(3)
) WITH (
 'connector' = 'kafka',
 'topic' = 'user_behavior',
 'properties.bootstrap.servers' = 'localhost:9092',
 'properties.group.id' = 'testGroup',
 'format' = 'avro'
)

フォーマットオプション #

オプション 必要条件 Forwarded デフォルト 種類 説明
形式
必須 no (none) 文字列 使うフォーマットを指定します。ここでは、'avro'にする必要があります。
avro.codec
オプション はい (none) 文字列 }}">Filesystemのみ。avroの圧縮コーデック。デフォルトとしてのSanappy圧縮。有効なenumerationsは、null、deflate、snappy、bzip2、xzです。

データ型マッピング #

現在、Avroスキーマは常にテーブルスキーマから派生します。Avroスキーマの明示的な定義はまだサポートされません。 したがって、次の表は、Flink型からAvro型へのマッピングを一覧表示しています。

Flink SQL型 Avroの型 Avroの論理型
CHAR / VARCHAR / STRING 文字列
BOOLEAN boolean
BINARY / VARBINARY bytes
DECIMAL fixed decimal
TINYINT int
SMALLINT int
INT int
BIGINT long
FLOAT float
DOUBLE double
DATE int date
TIME int time-millis
TIMESTAMP long timestamp-millis
ARRAY array
MAP
(キーは、string/char/varchar 型でなければなりません)
map
MULTISET
(要素は、string/char/varchar型でなければなりません)
map
ROW record

上記の型に加えて、Flinkはnll許容型の読み取りをサポートします。Flinkは、null許容型をAvro union(something, null)にマップします。somethingはFlink型から変換されたAvro型です。

Avro型の詳細については、Avro Specificationを参照してください。

inserted by FC2 system