This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.
CSV
CSVフォーマット #
Format: Serialization Schema Format: Deserialization Schema
CSVフォーマットを使って、CSVスキーマに基づいたCSVデータを読み書きできます。現在、CSVスキーマはテーブルスキーマから派生しています。
依存 #
In order to use the CSV 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 |
---|---|
|
Built-in |
CSV形式を持つテーブルの作成法 #
ここでは、KafkaコネクタとCSV形式を使ってテーブルを作成する方法を示します。
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' = 'csv',
'csv.ignore-parse-errors' = 'true',
'csv.allow-comments' = 'true'
)
フォーマットオプション #
オプション | 必要条件 | Forwarded | デフォルト | 種類 | 説明 |
---|---|---|---|---|---|
形式 |
必須 | no | (none) | 文字列 | 使うフォーマットを指定します。ここでは、'csv' にする必要があります。 |
csv.field-delimiter |
オプション | はい | , |
文字列 | フィールド区切り文字(デフォルトは',' )は、1文字である必要があります。バックスラッシュを使って特殊文字、例えば'\t' はタブ文字を表す、を指定することができます。
Unicodeを使ってプレーンSQLで指定することもできます。例えば、'csv.field-delimiter' = U&'\0001' は0x01 文字を表します。
|
csv.disable-quote-character |
オプション | はい | false | 真偽値 | フィールド値を囲むための引用符文字を無効にします(デフォルトはfalse)。
trueの場合、'csv.quote-character' は設定できません。 |
csv.quote-character |
オプション | はい | " |
文字列 | フィールド値を囲むための引用符文字(デフォルトは" )。 |
csv.allow-comments |
オプション | はい | false | 真偽値 | '#' で始まるコメント行を無視します(デフォルトでは無効です)。
有効にした場合は、空の行を許可するために解析エラーも無視してください。 |
csv.ignore-parse-errors |
オプション | no | false | 真偽値 | 解析エラーが発生したフィールドと行を失敗せずにスキップします。 エラーが発生した場合は、フィールドはnullに設定されます。 |
csv.array-element-delimiter |
オプション | はい | ; |
文字列 | 配列と行要素の値を区切るための
配列要素デリミタ (デフォルトは';' )。 |
csv.escape-character |
オプション | はい | (none) | 文字列 | 値をエスケープするためのエスケープ文字(デフォルトでは無効です)。 |
csv.null-literal |
オプション | はい | (none) | 文字列 | null値として解釈されるnullリテラル文字(デフォルトでは無効です)。 |
csv.write-bigdecimal-in-scientific-notation |
オプション | はい | true | 真偽値 | BigDecimalデータ型の科学的表記の表現を有効にします(デフォルトはtrueです)。例えば、100000はデフォルトで1E+5としてエンコードされ、このオプションをfalseに設定すると、100000として書き込まれます。注意: 値が0以外で、10の倍数の場合のみ科学的表記に変換されます。 |
データ型マッピング #
現在、CSVスキーマは常にテーブルスキーマから派生します。CSVスキーマの明示的な定義はまだサポートされません。
FlinkのCSV形式は、jackson databind APIを使ってCSV文字列を解析して生成します。
以下の表は、Flink型からCSV型への型マッピングを一覧表示しています。
Flink SQL型 | CSV型 |
---|---|
CHAR / VARCHAR / STRING |
string |
BOOLEAN |
boolean |
BINARY / VARBINARY |
string with encoding: base64 |
DECIMAL |
number |
TINYINT |
number |
SMALLINT |
number |
INT |
number |
BIGINT |
number |
FLOAT |
number |
DOUBLE |
number |
DATE |
string with format: date |
TIME |
string with format: time |
TIMESTAMP |
string with format: date-time |
INTERVAL |
number |
ARRAY |
array |
ROW |
object |