All Products
Search
Document Center

Realtime Compute for Apache Flink:Konversi tipe data

Last Updated:Jan 16, 2026

Selain tipe data SQL Flink standar, Realtime Compute for Apache Flink mendukung konversi tipe implisit. Topik ini menjelaskan matriks dukungan konversi tipe.

Catatan penggunaan

  • Realtime Compute for Apache Flink mengaktifkan perilaku Legacy-Cast secara default, yang mencakup operasi cast dari konversi tipe eksplisit maupun implisit.

    • Deskripsi parameter

      Parameter table.exec.legacy-cast-behaviour diperkenalkan di Flink 1.15 dan digunakan untuk memaksa konversi dari tipe data sumber ke tipe target dalam konversi tipe eksplisit maupun implisit. Perlu diperhatikan bahwa konversi tersebut dapat menyebabkan kehilangan presisi, overflow nilai, atau mengembalikan nilai null. Untuk menjaga kompatibilitas dengan versi sebelumnya, nilai default-nya adalah enabled pada Realtime Compute for Apache Flink, sedangkan nilai default pada Apache Flink adalah disabled.

    • Tentang CAST

      Secara default, CAST mengembalikan nilai null ketika terjadi pengecualian konversi dan tidak melemparkan error eksplisit. Pada skenario yang memerlukan pemeriksaan ketat terhadap nilai abnormal, Anda dapat mengatur parameter table.exec.legacy-cast-behaviour=disabled agar task melemparkan error eksplisit saat menghadapi pengecualian konversi data.

    • Tentang TRY_CAST

      Anda dapat menggunakan TRY_CAST untuk konversi tipe eksplisit. Fungsi ini mengembalikan null ketika terjadi pengecualian konversi dan tidak menyebabkan job gagal. Perilaku ini setara dengan menggunakan CAST ketika parameter table.exec.legacy-cast-behaviour diatur ke enabled.

  • Untuk menangani nilai null, Anda dapat menggunakan sintaks konversi tipe eksplisit seperti cast(null as target_type). Sebagai contoh, gunakan cast(null as varchar). Praktik ini menghindari hasil yang tidak terduga, seperti string "NULL" atau pengecualian konversi.

Matriks dukungan konversi tipe

Tipe input\Tipe target

null

boolean

tinyint

smallint

int

bigint

decimal

float

double

interval

date

time

timestamp

[var]char

[var]binary

variant

bitmap

null

I

I

I

I

I

I

I

I

I

I

I

I

I

I

I

I

I

boolean

-

I

E

E

E

E

E

E

E

-

-

-

-

I

-

E

-

tinyint

-

E

I

I

I

I

I

I

I

E

-

-

E

I

-

E

-

smallint

-

E

I

I

I

I

I

I

I

E

-

-

E

I

-

E

-

int

-

E

I

I

I

I

I

I

I

E

-

-

E

I

-

E

-

bigint

-

E

I

I

I

I

I

I

I

E

-

-

E

I

-

E

-

decimal

-

E

I

I

I

I

I

I

I

E

-

-

E

I

-

E

-

float

-

E

I

I

I

I

I

I

I

-

-

-

E

I

-

E

-

double

-

E

I

I

I

I

I

I

I

-

-

-

E

I

-

E

-

interval

-

-

E

E

E

E

E

-

-

I

-

-

-

E

-

E

-

date

-

-

-

-

-

-

-

-

-

-

I

-

I

I

-

E

-

time

-

-

-

-

-

-

-

-

-

-

-

I

E

I

-

E

-

timestamp

-

-

E

E

E

E

E

E

E

-

I

E

I

I

-

E

-

[var]char

-

E

I

I

I

I

I

I

I

I

I

I

I

I

I

E

-

[var]binary

-

-

-

-

-

-

-

-

-

-

E

E

E

I

I

E

-

variant

-

E

E

E

E

E

E

E

E

E

E

E

E

E

E

I

-

bitmap

-

-

-

-

-

-

-

-

-

-

-

-

-

E

E

-

I

Simbol dalam tabel memiliki arti sebagai berikut:

  • E: Hanya mendukung konversi eksplisit.

  • I: Mendukung konversi implisit.

  • -: Konversi tidak didukung.

Referensi

Untuk informasi selengkapnya tentang tipe data SQL yang didukung oleh komunitas, lihat Tipe data SQL Flink komunitas.