Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:Faker bağlayıcısı

Son Güncelleme:Oct 04, 2026

Bu konu, test verileri oluşturmak için Faker bağlayıcısının nasıl kullanılacağını açıklar.

Arka plan bilgileri

Faker bağlayıcısı, Realtime Compute for Apache Flink içinde yerleşik olarak bulunan bir bağlayıcıdır. Tablodaki her alan için sağladığınız Java Faker ifadelerine göre test verileri oluşturur. Geliştirme veya test aşamalarında iş mantığını doğrulamak amacıyla test verisi üretmek için bu bağlayıcıyı kullanın.

Aşağıdaki tabloda Faker bağlayıcısının özellikleri açıklanmaktadır.


Öğe


Ayrıntılar


Desteklenen tablo türleri


kaynak tablo ve boyut tablosu


Çalıştırma modu


toplu iş modu ve akış modu


Veri biçimi


Uygulanamaz


Bağlayıcıya özgü ölçümler


Yok


API türü


SQL


Havuz tablosundaki verilerin güncellenmesini veya silinmesini destekleme


Uygulanamaz

Ön koşullar

Yok

Sınırlamalar

  • Faker bağlayıcısı yalnızca Realtime Compute for Apache Flink VVR 4.0.12 ve sonraki sürümlerde desteklenir.

  • Bağlayıcı yalnızca aşağıdaki veri türlerini destekler: CHAR(n), VARCHAR(n), STRING, TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, BOOLEAN, TIMESTAMP, ARRAY, MAP, MULTISET ve ROW.

  • Bir JOIN işleminde boyut tablosu olarak kullanıldığında, Faker bağlayıcısı gerçek bir boyut tablosu araması gerçekleştirmez. Bunun yerine, kaynak tablodan gelen arama anahtarına dayanarak doğrudan bir sonuç üretir.

Söz dizimi

CREATE TABLE faker_source (
  `name` STRING,
  `age` INT
) WITH (
  'connector' = 'faker',
  'fields.name.expression' = '#{superhero.name}',
  'fields.age.expression' = '#{number.numberBetween ''0'',''1000''}'
);

WITH parametreleri

Tür

Parametre

Açıklama

Tür

Gerekli

Varsayılan

Açıklamalar

Genel

connector

Bağlayıcı türünü belirtir.

String

Evet

Yok

Değer faker olmalıdır.

fields.<field>.expression

Bu alan için değerler üretecek Java Faker ifadesini belirtir.

String

Evet

Yok

Daha fazla bilgi için bkz. Alan ifadeleri.

fields.<field>.null-rate

Alanın değerinin null olma olasılığını belirtir.

Float

Hayır

0.0

Yok

fields.<field>.length

ARRAY, MAP veya MULTISET veri türleri için koleksiyon boyutunu belirtir.

Integer

Hayır

1

Yok

Kaynak tabloya özgü

number-of-rows

Oluşturulacak satır sayısını belirtir.

Integer

Hayır

-1

Bu parametre ayarlandığında kaynak tablo sınırlı olur. Aksi takdirde sınırsızdır.

rows-per-second

Veri üretim hızını belirtir.

Integer

Hayır

10000

Yok

Örnekler

Boyut tablosu örneği

CREATE TEMPORARY TABLE datagen_source (
  `character_id` INT,
  `location` STRING,
  `datagen_name` STRING,
  `user_fullname` ROW<first_name STRING, last_name STRING>,
  `user_data` ARRAY<STRING>,
  `user_score` Map<STRING, INT>,
  `user_books` MULTISET<STRING>,
  `proctime` AS PROCTIME()
) WITH (
  'connector' = 'faker',
  'fields.character_id.expression' = '#{number.numberBetween ''0'',''10000''}',
  'fields.location.expression' = '#{harry_potter.location}',
  'fields.datagen_name.expression' = '#{superhero.name}',
  'fields.user_fullname.first_name.expression' = '#{superhero.prefix}',
  'fields.user_fullname.last_name.expression' = '#{superhero.suffix}',
  'fields.user_data.expression' = '#{harry_potter.character}',
  'fields.user_data.length' = '2',
  'fields.user_score.key.expression' = '#{harry_potter.character}',
  'fields.user_score.value.expression' = '#{number.numberBetween ''10'',''100''}',
  'fields.user_score.length' = '2',
  'fields.user_books.expression' = '#{book.title}',
  'fields.user_books.length' = '2',
  'number-of-rows' = '5'
);

CREATE TEMPORARY TABLE faker_dim (
  `character_id` INT,
  `faker_name` STRING
) WITH (
  'connector' = 'faker',
  'fields.character_id.expression' = '#{number.numberBetween ''0'',''100''}',
  'fields.faker_name.expression' = '#{harry_potter.characters}'
);
    
SELECT
  l.character_id,
  l.location,
  l.datagen_name,
  l.user_fullname,
  l.user_data,
  l.user_score,
  l.user_books,
  c.faker_name
FROM datagen_source AS l
JOIN faker_dim FOR SYSTEM_TIME AS OF proctime AS c
ON l.character_id = c.character_id;

Alan ifadeleri

  • Biçim

    DDL deyimiyle tanımlanan her alan, WITH yan tümcesinde karşılık gelen bir ifade gerektirir. İfade, 'fields.<field>.expression' = '#{className.methodName ''parameter'', ...}' biçiminde olmalıdır. Aşağıdaki tabloda bu biçimin bileşenleri açıklanmaktadır.

    Parametre

    Açıklama

    field

    DDL deyimindeki bir alanın adı.

    className

    Faker sınıfının adı.

    Java Faker, alan ifadeleri oluşturmak için yaklaşık 80 Faker sınıfı sağlar. İş gereksinimlerinize göre bir sınıf seçin.

    Not

    Faker sınıf adları büyük/küçük harfe duyarlı değildir.

    methodName

    Yöntemin adı.

    Not

    Yöntem adları büyük/küçük harfe duyarlı değildir.

    parameter

    Yöntem için giriş parametreleri.

    Not
    • İfade dizesi içinde doğru şekilde kaçış yapmak için yöntem giriş parametrelerini iki ardışık tek tırnak içine alın ('').

    • Birden çok parametreyi virgülle (,) ayırın.

  • Örnek

    Aşağıdaki adımlar, Söz dizimi bölümündeki age alan ifadesi 'fields.age.expression' = '#{number.numberBetween ''0'',''1000''}' örneğini kullanarak bir alan ifadesinin nasıl oluşturulacağını göstermektedir:

    1. Java Faker API belgelerinde Number sınıfını bulun.

    2. Number sınıfında numberBetween yöntemini bulup açıklamasını görüntüleyin.

      Yöntem, belirtilen bir sayısal aralık içinde bir değer döndürür.

    3. Sınıf adına (Number), yöntem adına (numberBetween) ve giriş parametrelerine (0 ve 1000) dayanarak age alanı için SQL ifadesini oluşturun: 'fields.age.expression' = '#{number.numberBetween ''0'',''1000''}'.

      Bu ifade, age alanı için 0 ile 1000 arasında bir değer üretir.