All Products
Search
Document Center

Realtime Compute for Apache Flink:JSON

Last Updated:Mar 27, 2026

Format JSON digunakan untuk membaca dan menulis data JSON. Struktur JSON diinferensi secara otomatis dari skema tabel. Realtime Compute for Apache Flink menggunakan jackson databind API untuk mengurai dan menghasilkan data JSON.

Konektor berikut mendukung format JSON:

Contoh

Contoh berikut membuat tabel Kafka yang membaca dan menulis data dalam format JSON.

CREATE TABLE Orders (
  orderId    INT,
  product    STRING,
  orderInfo  MAP<STRING, STRING>,
  orderTime  TIMESTAMP(3),
  WATERMARK FOR orderTime AS orderTime - INTERVAL '5' SECOND
) WITH (
  'connector'                  = 'kafka',
  'topic'                      = 'test-topic',
  'properties.bootstrap.servers' = 'localhost:9092',
  'format'                     = 'json',
  'json.fail-on-missing-field' = 'false',
  'json.ignore-parse-errors'   = 'true'
);

Parameter

Parameter Wajib Bawaan Tipe Deskripsi
format Ya (none) STRING Format yang digunakan. Atur ke json.
json.fail-on-missing-field Tidak false BOOLEAN Menentukan apakah akan melewatkan bidang atau baris ketika bidang yang akan diurai tidak tersedia. true: lewati bidang atau baris tersebut. false: kembalikan error dan gagalkan penerapan.
json.ignore-parse-errors Tidak false BOOLEAN Menentukan apakah akan melewatkan bidang atau baris ketika penguraian gagal. true: lewati bidang atau baris tersebut. false: kembalikan error dan gagalkan penerapan.
json.timestamp-format.standard Tidak SQL STRING Format timestamp untuk input dan output. SQL: yyyy-MM-dd HH:mm:ss.s{precision} (misalnya, 2020-12-30 12:13:14.123). ISO-8601: yyyy-MM-ddTHH:mm:ss.s{precision} (misalnya, 2020-12-30T12:13:14.123).
json.map-null-key.mode Tidak FAIL STRING Cara menangani kunci null dalam map. FAIL: kembalikan error. DROP: buang entri tersebut. LITERAL: ganti kunci null dengan string yang ditentukan oleh json.map-null-key.literal.
json.map-null-key.literal Tidak null STRING Konstanta string yang digunakan untuk menggantikan kunci map null ketika json.map-null-key.mode diatur ke LITERAL.
json.encode.decimal-as-plain-number Tidak false BOOLEAN Menentukan apakah nilai DECIMAL akan diencode dalam notasi biasa. true: gunakan notasi biasa (misalnya, 0.000000027). false: gunakan notasi ilmiah (misalnya, 2.7E-8).
json.write-null-properties Tidak true BOOLEAN Menentukan apakah nilai kolom null akan ditulis ke output JSON. true: tulis nilai null. false: abaikan bidang null. Memerlukan Ververica Runtime (VVR) 8.0.6 atau yang lebih baru.

Pemetaan tipe data

Tipe Flink SQL Tipe JSON
CHAR / VARCHAR / STRING STRING
BOOLEAN BOOLEAN
BINARY / VARBINARY STRING (diencode base64)
DECIMAL NUMBER
TINYINT NUMBER
SMALLINT NUMBER
INT NUMBER
BIGINT NUMBER
FLOAT NUMBER
DOUBLE NUMBER
DATE STRING (format date)
TIME STRING (format time)
TIMESTAMP STRING (format date-time)
TIMESTAMP_WITH_LOCAL_TIME_ZONE STRING (format date-time, UTC)
INTERVAL NUMBER
ARRAY ARRAY
MAP / MULTISET OBJECT
ROW OBJECT

Batasan

Data yang ditulis ke OSS melalui format JSON tidak dapat disimpan sebagai file JSON. Untuk detailnya, lihat FLINK-30635.