Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:Tair (Enterprise)

Son Güncelleme:Oct 04, 2026

Tair (Enterprise Edition) bağlayıcısı, Flink akış verilerini bir Tair (Enterprise Edition) örneğine yazar. Tair; hibrit bellek ve disk depolamayı destekleyen, yüksek kullanılabilirlik için sıcak yedekleme sunan ve yüksek aktarım hızı ile düşük gecikme süresi gerektiren iş yükleri için ölçeklenebilir küme mimarisine sahip Redis uyumlu bir veritabanıdır.

Desteklenen özellikler

Kategori Ayrıntılar
Desteklenen türler Havuz tablosu
Çalışma modu Akış modu
Veri biçimi STRING
API türü SQL
Havuz tablosunda veri güncelleme veya silme Evet
Benzersiz ölçümler numBytesSend, numBytesSendPerSecond, numRecordsSend, numRecordsSendPerSecond, numRecordSendErrors, currentSendTime

Ölçümler hakkında ayrıntılı bilgi için bkz. Ölçümler.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

Sınırlamalar

  • Realtime Compute for Apache Flink, Tair (Enterprise Edition) bağlayıcısını kullanmak için Ververica Runtime (VVR) 6.0.6 veya sonraki bir sürümü gerektirir.

  • TairTs, TairCpc, TairRoaring, TairVector ve TairGis için VVR 8.0.1 veya sonraki bir sürüm gerekir.

  • Bağlayıcı, birden çok ana bilgisayarın yapılandırılmasını desteklemez.

Söz dizimi

Aşağıdaki DDL ifadesi bir Tair havuz tablosu oluşturur. PRIMARY KEY zorunludur.

CREATE TABLE tair_table (
  a STRING,
  b STRING,
  PRIMARY KEY (a) NOT ENFORCED
) WITH (
  'connector' = 'tair',
  'host'      = '<yourHost>',
  'mode'      = '<dataStructure>'
);

Tair, tüm Redis veri yapılarını (STRING, LIST, SET, HASHMAP, SORTEDSET) ve kendi özel veri yapılarını destekler. Redis uyumlu veri yapıları için söz dizimi örnekleri için bkz. Tair (Redis OSS-compatible) bağlayıcısı.

Bağlayıcı seçenekleri

Zorunlu parametreler

Parametre Tür Açıklama
connector String tair olarak ayarlayın.
host String Tair sunucusunun uç noktası. Genel ağ bağlantılarının gecikme süresi ve bant genişliği sınırlamalarını önlemek için dahili bir uç nokta kullanın.
mode STRING Yazılacak veri yapısı. Geçerli değerler için bkz. Desteklenen veri yapıları.

Bağlantı parametreleri

Parametre Tür Varsayılan Açıklama
port INT 6379 Tair sunucusunun bağlantı noktası numarası.
password String Boş dize Tair veritabanının parolası. Parola doğrulamasını devre dışı bırakmak için boş bırakın.
dbNum INT 0 Hedef veritabanının kimliği.
clusterMode BOOLEAN false Küme mimarisini kullanmak için true olarak ayarlayın. Tek başına mod için false olarak ayarlayın.

Yazma davranışı parametreleri

Parametre Tür Varsayılan Açıklama
ignoreDelete BOOLEAN false Bir geri çekme mesajı alındığında davranışı kontrol eder. false: eklenen verileri ve anahtarını siler. true: eklenen verileri ve anahtarını korur.
incrMode STRING None Havuz yazma modu. None: ekleme işlemi. int: incrValue tarafından tanımlanan sabit artışla INCRBY. float: incrValue tarafından tanımlanan sabit artışla INCRBYFLOAT. dynamic_int: incrValue tarafından adlandırılan sütundan okunan artışla INCRBY. dynamic_float: incrValue tarafından adlandırılan sütundan okunan artışla INCRBYFLOAT.
incrValue STRING Yok incrMode değeri int veya float olduğunda bu, sabit artış değeridir. incrMode değeri dynamic_int veya dynamic_float olduğunda bu, artış değerini içeren DDL sütun adıdır. incrMode değeri None olduğunda kullanılmaz.

Anahtar sona erme parametreleri

Parametre Tür Varsayılan Açıklama
expiration LONG 0 Eklenen anahtarlar için milisaniye cinsinden göreli yaşam süresi (TTL). 0 TTL'yi devre dışı bırakır.
expirationAt LONG 0 Eklenen anahtarlar için milisaniye cinsinden mutlak sona erme zaman damgası. Yalnızca expiration değeri 0 olarak ayarlandığında etkili olur. 0 mutlak sona ermeyi devre dışı bırakır.

Alan sona erme parametreleri (yalnızca TairHash ve TairTs)

Parametre Tür Varsayılan Açıklama
fieldExpireMode String None TairHash'teki alanlar veya TairTs'deki skey'ler için sona erme modu. None: sona erme yok. millisecond: fieldExpireValue değerine ayarlanan göreli sona erme. unixtime: fieldExpireValue değerine ayarlanan mutlak sona erme. dynamic_millisecond: fieldExpireValue tarafından adlandırılan sütundan okunan göreli sona erme. dynamic_unixtime: fieldExpireValue tarafından adlandırılan sütundan okunan mutlak sona erme.
Önemli

TairTs skey'leri millisecond kullanmalıdır.

fieldExpireValue String Yok fieldExpireMode değeri millisecond veya unixtime olduğunda bu, sabit sona erme değeridir. fieldExpireMode değeri dynamic_millisecond veya dynamic_unixtime olduğunda bu, sona erme değerini içeren DDL sütun adıdır.

Veri türü eşlemeleri

Flink türü Tair türü
VARCHAR STRING
DOUBLE DOUBLE

Desteklenen veri yapıları

mode parametresi aşağıdaki değerleri kabul eder. Her veri yapısının incrMode değerine göre değişen belirli DDL sütun gereksinimleri vardır.

Redis uyumlu veri yapıları

STRING, LIST, SET, HASHMAP ve SORTEDSET için DDL biçimlerini görmek üzere bkz. Tair (Redis OSS-compatible) bağlayıcısı.

Tair'e özel veri yapıları

Veri yapısı **incrMode** DDL sütunları Yazma komutu
TairString None 2: key (STRING), value (STRING) exset key value
TairString int veya float 1: key (STRING) exincrby/exincrbyfloat key incrValue
TairString dynamic_int veya dynamic_float 2: key (STRING), incrValue (STRING) exincrby/exincrbyfloat key incrValue
TairHash None 3: key (STRING), field (STRING), value (STRING) exhset key field value
TairHash int veya float 2: key (STRING), field (STRING) exhincrby/exincrbyfloat key field incrValue
TairHash dynamic_int veya dynamic_float 3: key (STRING), field (STRING), incrValue (STRING) exhincrby/exincrbyfloat key field incrValue
TairZset None 3–258: key (STRING), member (STRING), score×N (DOUBLE, en fazla 256 boyut) exzadd key score member
TairZset int veya float 2: key (STRING), member (STRING) exzincyby key member incrValue
TairZset dynamic_int veya dynamic_float 3: key (STRING), member (STRING), incrValue (STRING) exzincyby key member incrValue
TairBloom None olmalıdır 2: key (STRING), item (STRING) BF.ADD key item
TairDoc None olmalıdır 3: key (STRING), path (STRING), json (STRING) JSON.SET key path json
TairSearch None 4: index (STRING), doc_id (STRING), document (STRING, JSON), mapping (STRING) TFT.ADDDOC index document docid
TairSearch int veya float 4: index (STRING), doc_id (STRING), field (STRING), mapping (STRING) TFT.INCRLONGDOCFIELD/TFT.INCRFLOATDOCFIELD index doc_id field increment
TairSearch dynamic_int veya dynamic_float 5: index (STRING), doc_id (STRING), field (STRING), mapping (STRING), incrValue (STRING) TFT.INCRLONGDOCFIELD/TFT.INCRFLOATDOCFIELD index doc_id field increment
TairCpc None olmalıdır 2: key (STRING), item (STRING) CPC.UPDATE key item
TairGis None olmalıdır 3: key (STRING), polygon_name (STRING), polygon_wkt (STRING) GIS.ADD area polygonName polygonWkt
TairRoaring None olmalıdır 3: key (STRING), offset (BIGINT), value (BIGINT, 0 veya 1) TR.SETBIT key offset value
TairVector None olmalıdır 6: index_name (STRING), pk (STRING), vector_data (STRING), dims (INT), algorithm (STRING), distance_method (STRING) TVS.HSET index_name key VECTOR vector_data
TairTs None 4: pkey (STRING, zaman çizelgesi grubu), skey (STRING, tek zaman çizelgesi), timestamp (STRING), value (STRING) EXTS.S.RAW_MODIFY Pkey Skey timestamp value
TairTs float 3: pkey (STRING), skey (STRING), timestamp (STRING) EXTS.S.RAW_INCRBY Pkey Skey timestamp incrValue
TairTs dynamic_float 4: pkey (STRING), skey (STRING), timestamp (STRING), incrValue (STRING) EXTS.S.RAW_INCRBY Pkey Skey timestamp incrValue
TairSearch ve TairVector, veri eklenmeden önce bir indeks ve eşlemenin oluşturulmasını gerektirir. TairSearch için TFT.CREATEINDEX index mappings komutunu çalıştırın. TairVector için TVS.CREATEINDEX index_name dims algorithm distance_method komutunu çalıştırın. TairBloom, ilk eklemede varsayılan olarak 100 öğe kapasitesi ve %0,01 hata oranı ile bir anahtar oluşturur. Çok boyutlu TairZset sıralaması için tüm skor boyutları aynı biçimi kullanmalıdır.

Örnekler

TairSearch havuz tablosuna veri yazma

Bu örnekte TairSearch indeksi olarak index_name, belge kimliği olarak doc_id, JSON belge gövdesi olarak doc ve indeks eşleme tanımı olarak mapping kullanılır.

CREATE TEMPORARY TABLE datagen_stream (
  v STRING,   -- document content
  p STRING    -- mapping definition
) WITH (
  'connector' = 'datagen'
);

CREATE TEMPORARY TABLE tair_output (
  index_name STRING,  -- TairSearch index name
  doc_id     STRING,  -- document ID
  doc        STRING,  -- document body (JSON)
  mapping    STRING,  -- index mapping
  PRIMARY KEY (index_name) NOT ENFORCED
) WITH (
  'connector' = 'tair',
  'mode'      = 'tairsearch',
  'host'      = '${tairHost}',
  'port'      = '${tairPort}',
  'password'  = '${password}'
);

INSERT INTO tair_output
SELECT
  'index' AS index_name,
  v AS doc_id,
  p AS doc,
  '{"mappings":{"_source":{"enabled":true},"properties":{"product_id":{"type":"keyword","ignore_above":128},"product_name":{"type":"text"}}}}' AS mapping
FROM datagen_stream;

Dinamik artış kullanarak veri yazma (incrMode=dynamic_float ile TairString)

Bu örnekte TairString anahtarı olarak key ve kayıt başına artış değeri olarak step kullanılır; artış değeri step sütunundan okunur.

CREATE TEMPORARY TABLE datagen_stream (
  v STRING,   -- key
  p STRING    -- increment value per record
) WITH (
  'connector' = 'datagen'
);

CREATE TEMPORARY TABLE tair_output (
  key  STRING,  -- TairString key
  step STRING,  -- increment value (column referenced by incrValue)
  PRIMARY KEY (key) NOT ENFORCED
) WITH (
  'connector' = 'tair',
  'mode'      = 'tairstring',
  'host'      = '${tairHost}',
  'port'      = '${tairPort}',
  'password'  = '${password}',
  'incrMode'  = 'dynamic_float',
  'incrValue' = 'step'
);

INSERT INTO tair_output
SELECT *
FROM datagen_stream;

Sabit artış kullanarak veri yazma (incrMode=float ile TairString)

Bu örnekte her yazma işleminde her anahtara uygulanan 11.11 sabit bir artış değeri kullanılır.

CREATE TEMPORARY TABLE datagen_stream (
  v STRING,
  p STRING
) WITH (
  'connector' = 'datagen'
);

CREATE TEMPORARY TABLE tair_output (
  key STRING,  -- TairString key
  PRIMARY KEY (key) NOT ENFORCED
) WITH (
  'connector' = 'tair',
  'mode'      = 'tairstring',
  'host'      = '${tairHost}',
  'port'      = '${tairPort}',
  'password'  = '${password}',
  'incrMode'  = 'float',
  'incrValue' = '11.11'
);

INSERT INTO tair_output
SELECT v
FROM datagen_stream;

Alan düzeyinde TTL ile veri yazma (fieldExpireMode=millisecond ile TairHash)

Bu örnekte, her alan yazıldıktan 1000 milisaniye sonra sona erecek şekilde bir TairHash havuz tablosuna yazma işlemi yapılır.

CREATE TEMPORARY TABLE datagen_stream (
  v STRING,
  p STRING,
  s STRING
) WITH (
  'connector' = 'datagen'
);

CREATE TEMPORARY TABLE tair_output (
  key   STRING,  -- TairHash key
  field STRING,  -- hash field
  value STRING,  -- field value
  PRIMARY KEY (key) NOT ENFORCED
) WITH (
  'connector'        = 'tair',
  'mode'             = 'tairhash',
  'host'             = '${tairHost}',
  'port'             = '${tairPort}',
  'password'         = '${password}',
  'fieldExpireMode'  = 'millisecond',
  'fieldExpireValue' = '1000'
);

INSERT INTO tair_output
SELECT v, p, s
FROM datagen_stream;

Sonraki adımlar