Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:SelectDB

Son Güncelleme:Oct 04, 2026

SelectDB bağlayıcısı, Realtime Compute for Apache Flink ile Alibaba Cloud üzerinde tamamen yönetilen ve Apache Doris uyumlu bir gerçek zamanlı veri ambarı olan ApsaraDB for SelectDB'yi entegre eder. Bu bağlayıcıyı; SelectDB'den veri okumak, SelectDB'ye veri yazmak veya SelectDB'de arama yapmak üzere gerçek zamanlı işlem hatları oluşturmak ve YAML tabanlı veri alımı işlerinde tam veritabanı senkronizasyonu çalıştırmak için kullanın.

Desteklenen yetenekler:

Kategori Ayrıntılar
Tablo türleri Kaynak tablosu, hedef tablosu, boyut tablosu, veri alımı hedefi
Çalıştırma modu Akış ve toplu iş
Veri biçimi JSON ve CSV
API türü DataStream, SQL ve veri alımı YAML işleri
Güncelleme/Silme desteği Evet
İzleme ölçümleri Yok

Temel özellikler:

  • Tam veritabanı veri senkronizasyonu

  • İki aşamalı commit (2PC) aracılığıyla tam olarak bir kez semantiği — yinelenen veya kayıp kayıt yok

  • Apache Doris 1.0 ve sonraki sürümlerle uyumlu

Ön koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Ververica Runtime (VVR) 8.0.10 veya sonraki bir sürümü içeren Realtime Compute for Apache Flink

  • Bir ApsaraDB for SelectDB örneği. Bkz. Örnek oluşturma.

  • Örnek üzerinde yapılandırılmış bir IP adresi izin listesi. Bkz. İzin listesi yapılandırma.

Bağlayıcıyı kurma

SelectDB bağlayıcısı VVR 11.1 ve sonraki sürümlere dahildir — manuel kurulum gerekmez.

VVR 8.0.10 ile 11.0 arasında bir sürüm kullanıyorsanız bağlayıcıyı manuel olarak yükleyin:

  1. JAR paketini Maven Central adresinden indirin (Flink sürümleri 1,15–1,17).

  2. JAR dosyasını Realtime Compute for Apache Flink geliştirme konsoluna yükleyin. Bkz. Özel bağlayıcıları yönetme.

  3. SQL işinizde bağlayıcıya 'connector' = 'doris' kullanarak başvurun.

SQL

Söz dizimi

Kaynak, hedef ve boyut olmak üzere üç tablo türünün tümü aynı DDL söz dizimini paylaşır. Tablo rolünü, dahil ettiğiniz parametreler aracılığıyla belirtin.

SelectDB'yi kaynak tablosu olarak kullanmak için önce doğrudan küme bağlantısını etkinleştirin. ApsaraDB for SelectDB konsolunda şuraya gidin: Instance Details > Network Information ve tıklayın Enable Direct Cluster Connection . Bu işlem, yüksek aktarım hızında paralel okuma işlemleri için Arrow Flight SQL protokolünü etkinleştirir.
CREATE TABLE selectdb_source (
  order_id      BIGINT,
  user_id       BIGINT,
  total_amount  DECIMAL(10, 2),
  order_status  TINYINT,
  create_time   TIMESTAMP(3),
  product_name  STRING
) WITH (
  'connector'        = 'doris',
  'fenodes'          = 'selectdb-cn-*******.selectdbfe.rds.aliyuncs.com:8080',
  'table.identifier' = 'shop_db.orders',
  'username'         = 'admin',
  'password'         = '****'
);

Parametreler

Genel

Parametre Gerekli Varsayılan Açıklama
connector Evet — Değer doris olarak sabittir.
fenodes Evet — SelectDB örneğinin HTTP uç noktası: <VPC Address or Public Address>:<HTTP Protocol Port>. Her iki değeri de SelectDB konsolundaki Instance Details > Network Information bölümünden alın. Örnek: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080.
jdbc-url Hayır — Boyut tablosu aramaları ve meta veri sorguları için Java Database Connectivity (JDBC) bağlantı dizesi: jdbc:mysql://<VPC Address or Public Address>:<MySQL Protocol Port>. Örnek: jdbc:mysql://selectdb-cn-***.selectdbfe.rds.aliyuncs.com:9030.
table.identifier Evet — <database>.<table> biçimindeki hedef tablo. Örnek: db.tbl.
username Evet — Veritabanı kullanıcı adı. Gerekirse parolayı Instance Details sayfasının sağ üst köşesinden sıfırlayın.
password Evet — Veritabanı kullanıcı adı parolası.
doris.request.retries Hayır 3 Başarısız istekler için yeniden deneme sayısı.
doris.request.connect.timeout Hayır 30s Bağlantı zaman aşımı.
doris.request.read.timeout Hayır 30s Okuma zaman aşımı.

Kaynak tablosu

Parametre Gerekli Varsayılan Açıklama
doris.request.query.timeout Hayır 21600s Sorgu zaman aşımı (varsayılan olarak 6 saat).
doris.request.tablet.size Hayır 1 Bölüm başına tablet sayısı. Daha düşük değerler Flink paralelliğini artırır ancak veritabanındaki yükü de arttırır.
doris.batch.size Hayır 4064 İstek başına bir Backend (BE) düğümünden okunan maksimum satır sayısı. Bağlantı ek yükünü ve ağ gecikme süresini azaltmak için bu değeri artırın.
doris.exec.mem.limit Hayır 8192mb Sorgu başına bellek sınırı (bayt cinsinden, varsayılan olarak 8 GB).
source.use-flight-sql Hayır false Yapılandırma gerekmez — SelectDB konsolunda Direct Cluster Connection özelliğini etkinleştirmek Arrow Flight SQL'i otomatik olarak açar.
source.flight-sql-port Hayır — Frontend (FE) düğümünün Arrow Flight SQL bağlantı noktası (arrow_flight_sql_port).

Hedef tablosu

Yazma modu, teslim garantilerini ve boşaltma davranışını etkiler. Tutarlılık gereksinimlerinize göre seçim yapın:

Akış yazma Toplu iş yazma
Tetikleme koşulu Flink kontrol noktası aralıklarını izler Veri hacmi veya süre eşiğine göre periyodik boşaltma
Teslim garantisi Tam olarak bir kez (2PC aracılığıyla) En az bir kez; Benzersiz model ile değişmezlik sağlanır
Gecikme süresi Kontrol noktası aralığı ile sınırlıdır Esnektir, kontrol noktalarından bağımsızdır
Hata toleransı Tam Flink durum kurtarma Benzersiz model çoğaltma kaldırma özelliğine dayanır
Parametre Gerekli Varsayılan Açıklama
sink.label-prefix Hayır — Stream Load içe aktarmaları için etiket ön eki. Tüm işlerde genel olarak benzersiz olmalıdır — aynı etiket yalnızca bir kez commit edilebilir. İş yeniden başlatmalarında tam olarak bir kez semantiğini garanti etmek için gereklidir.
sink.properties.* Hayır — Doğrudan SelectDB Stream Load API'sine iletilen Stream Load içe aktarma parametreleri. Aşağıdaki örneklere bakın.
sink.enable-delete Hayır true DELETE işlemlerini yayılır. Doris tablosunda toplu silme özelliğinin etkinleştirilmiş olmasını gerektirir ve yalnızca Benzersiz model ile çalışır.
sink.enable-2pc Hayır true Tam olarak bir kez semantiği için iki aşamalı commit (2PC) özelliğini etkinleştirin. Bkz. Explicit Transaction Operations.
sink.buffer-size Hayır 1 MB Yazma önbelleği arabellek boyutu (bayt cinsinden). Varsayılan değeri koruyun.
sink.buffer-count Hayır 3 Yazma önbelleği arabellek sayısı. Varsayılan değeri koruyun.
sink.max-retries Hayır 3 Commit başarısızlığı sonrasında maksimum yeniden deneme sayısı.
sink.enable.batch-mode Hayır false Toplu iş yazma moduna geçiş yapın. Boşaltma işlemi, kontrol noktaları yerine aşağıdaki üç sink.buffer-flush.* parametresi tarafından kontrol edilir. Tam olarak bir kez garantisi verilmez; değişmezlik için Benzersiz modeli kullanın.
sink.flush.queue-size Hayır 2 Toplu iş modunda önbellek kuyruk boyutu.
sink.buffer-flush.max-rows Hayır 500000 Toplu iş modunda boşaltma başına maksimum satır sayısı.
sink.buffer-flush.max-bytes Hayır 100 MB Toplu iş modunda boşaltma başına maksimum bayt sayısı.
sink.buffer-flush.interval Hayır 10s Toplu iş modunda boşaltma aralığı.
sink.ignore.update-before Hayır true Flink CDC'den gelen update-before olaylarını yoksayın.

**sink.properties.* örnekleri:**

CSV biçimi:

'sink.properties.column_separator' = ','
-- If values may contain commas, use a non-printable separator:
-- 'sink.properties.column_separator' = '\x01'

JSON biçimi:

'sink.properties.format'            = 'json',
'sink.properties.read_json_by_line' = 'true'
-- Alternatively: 'sink.properties.strip_outer_array' = 'true'

Boyut tablosu

Parametre Gerekli Varsayılan Açıklama
lookup.cache.max-rows Hayır -1 Arama önbelleğindeki maksimum satır sayısı. -1 değeri önbelleğe almayı devre dışı bırakır.
lookup.cache.ttl Hayır 10s Önbellek girdisi yaşam süresi (TTL).
lookup.max-retries Hayır 1 Arama sorgusu başarısız olduktan sonraki yeniden deneme sayısı.
lookup.jdbc.async Hayır false Eşzamansız aramayı etkinleştirin.
lookup.jdbc.read.batch.size Hayır 128 Eşzamansız arama modunda sorgu başına maksimum toplu iş boyutu.
lookup.jdbc.read.batch.queue-size Hayır 256 Eşzamansız arama modunda ara arabellek kuyruk boyutu.
lookup.jdbc.read.thread-size Hayır 3 Eşzamansız arama modunda görev başına JDBC arama iş parçacığı sayısı.

Örnekler

Kaynak tablosu

CREATE TEMPORARY TABLE selectdb_source (
  order_id      BIGINT,
  user_id       BIGINT,
  total_amount  DECIMAL(10, 2),
  order_status  TINYINT,
  create_time   TIMESTAMP(3),
  product_name  STRING
) WITH (
  'connector'        = 'doris',
  'fenodes'          = 'selectdb-cn-*******.selectdbfe.rds.aliyuncs.com:8080',
  'table.identifier' = 'shop_db.orders',
  'username'         = 'admin',
  'password'         = '****'
);

Hedef tablosu

CREATE TEMPORARY TABLE selectdb_sink (
  order_id      BIGINT,
  user_id       BIGINT,
  total_amount  DECIMAL(10, 2),
  order_status  TINYINT,
  create_time   TIMESTAMP(3),
  product_name  STRING
) WITH (
  'connector'        = 'doris',
  'fenodes'          = 'selectdb-cn-*******.selectdbfe.rds.aliyuncs.com:8080',
  'table.identifier' = 'shop_db.orders',
  'username'         = 'admin',
  'password'         = '****',
  'sink.label-prefix' = 'flink_orders'  -- Must be globally unique across jobs
);

Boyut tablosu

SelectDB, akıştaki olgu tablosuyla birleştirilen bir arama boyut tablosu olarak işlev görür.

-- Fact table from Kafka
CREATE TEMPORARY TABLE fact_table (
  `id`           BIGINT,
  `name`         STRING,
  `city`         STRING,
  `process_time` AS proctime()
) WITH (
  'connector' = 'kafka',
  ...
);

-- Dimension table from SelectDB
CREATE TEMPORARY TABLE dim_city (
  `city`     STRING,
  `level`    INT,
  `province` STRING,
  `country`  STRING
) WITH (
  'connector'        = 'doris',
  'fenodes'          = 'selectdb-cn-*******.selectdbfe.rds.aliyuncs.com:8080',
  'jdbc-url'         = 'jdbc:mysql://selectdb-cn-***.selectdbfe.rds.aliyuncs.com:9030',
  'table.identifier' = 'dim.dim_city',
  'username'         = 'admin',
  'password'         = '****'
);

-- Temporal join
SELECT a.id, a.name, a.city, c.province, c.country, c.level
FROM fact_table a
LEFT JOIN dim_city FOR SYSTEM_TIME AS OF a.process_time AS c
ON a.city = c.city;

Veri alımı

Tam veritabanı senkronizasyonu için YAML tabanlı veri alımı işlerinde hedef olarak SelectDB bağlayıcısını kullanın.

Söz dizimi

source:
  type: <source-type>

sink:
  type: doris
  name: Doris Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  username: root
  password: ""

Parametreler

Parametre Gerekli Varsayılan Açıklama
type Evet — Değer doris olarak sabittir.
name Hayır — Hedef için açıklayıcı ad.
fenodes Evet — HTTP uç noktası: <VPC Address or Public Address>:<HTTP Protocol Port>. Her iki değeri de SelectDB konsolundaki Instance Details > Network Information bölümünden alın. Örnek: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080.
jdbc-url Hayır — JDBC bağlantı dizesi. Örnek: jdbc:mysql://selectdb-cn-***.selectdbfe.rds.aliyuncs.com:9030.
username Evet — Veritabanı kullanıcı adı.
password Evet — Veritabanı kullanıcı adı parolası.
sink.enable.batch-mode Hayır true Veri alımı işlerinde toplu iş modu varsayılan olarak etkindir. Boşaltma işlemi üç sink.buffer-flush.* parametresi tarafından kontrol edilir. Tam olarak bir kez garantisi verilmez; değişmezlik için Benzersiz modeli kullanın.
sink.flush.queue-size Hayır 2 Önbellek kuyruk boyutu.
sink.buffer-flush.max-rows Hayır 500000 Boşaltma başına maksimum satır sayısı.
sink.buffer-flush.max-bytes Hayır 100 MB Boşaltma başına maksimum bayt sayısı.
sink.buffer-flush.interval Hayır 10s Boşaltma aralığı. Minimum: 1s.
sink.properties.* Hayır — Stream Load içe aktarma parametreleri.

**sink.properties.* örnekleri:**

CSV biçimi:

sink.properties.column_separator: ','
# If values may contain commas, use a non-printable separator:
# sink.properties.column_separator: '\x01'

JSON biçimi:

sink.properties.format: 'json'
sink.properties.read_json_by_line: 'true'

Örnekler

Aşağıdaki örnekler yaygın veri alımı senaryolarını kapsar. Yer tutucu uç noktaları, kullanıcı adlarını ve parolaları kendi gerçek değerlerinizle değiştirin.

${secret_values.variable_name} ifadesi, çalışma alanınızda oluşturulan bir gizli değişkeni referans alır. Daha fazla bilgi için bkz. Değişkenleri yönetme. Kaynak parametrelerinin tam açıklaması için bkz. MySQL YAML bağlayıcısı ve Postgres CDC bağlayıcısı.

Not

Bağlayıcı hedef veritabanlarını oluşturmaz. Başlamadan önce aşağıdaki örneklerde kullanılan hedef veritabanlarını ApsaraDB for SelectDB örneğinizde oluşturun. Hedef tablolar yoksa otomatik olarak oluşturulur.

Tek tablo senkronizasyonu

Tek bir MySQL tablosunu SelectDB'ye senkronize edin. Hedef tablo yoksa otomatik olarak oluşturulur.

source:
  type: mysql
  name: MySQL Source
  hostname: <yourHostname>
  port: 3306
  username: ${secret_values.mysql_username}
  password: ${secret_values.mysql_password}
  tables: test_db.test_source_table
  server-id: 5401-5499
  # (Optional) Synchronize the existing full data first, and then the incremental data.
  scan.startup.mode: initial

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}

pipeline:
  name: MySQL to SelectDB Pipeline

Tam veritabanı senkronizasyonu

Bir MySQL veritabanındaki tüm tabloları SelectDB'ye senkronize edin. Aşağı yönlü veritabanı ve tablo adları yukarı yönlü olanlarla aynıdır. Hedef tablolar yoksa otomatik olarak oluşturulur.

source:
  type: mysql
  name: MySQL Source
  hostname: <yourHostname>
  port: 3306
  username: ${secret_values.mysql_username}
  password: ${secret_values.mysql_password}
  # Matches all tables in the test_db database.
  tables: test_db.\.*
  server-id: 5401-5499
  scan.startup.mode: initial
  # (Optional) Synchronize tables that are created during the incremental phase without restarting the job.
  scan.binlog.newly-added-table.enabled: true

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}
  # (Optional) The flush interval for batch writing. Lower this value for small workloads so that data is not held in the buffer for too long.
  sink.buffer-flush.interval: 10s

pipeline:
  name: MySQL to SelectDB Pipeline

Tam veritabanı senkronizasyonundan tabloları hariç tutma

Geçici tablolar ve günlük tabloları gibi senkronize etmek istemediğiniz tabloları atlayın. Bir yönlendirme modülü olmadan veriler, kaynak tabloyla aynı ada sahip hedef tabloya yazılır.

source:
  type: mysql
  name: MySQL Source
  hostname: <yourHostname>
  port: 3306
  username: ${secret_values.mysql_username}
  password: ${secret_values.mysql_password}
  tables: test_db.\.*
  # Tables that match this regular expression are not synchronized. Separate multiple regular expressions with commas (,).
  tables.exclude: test_db.tmp_\.*, test_db.log_\.*
  server-id: 5401-5499
  scan.startup.mode: initial

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}

pipeline:
  name: MySQL to SelectDB Pipeline

Belirtilen veritabanlarına ve tablolara senkronizasyon

Aşağı yönlü veritabanı veya tablo adları yukarı yönlü olanlardan farklıysa hedefleri yeniden adlandırmak için yönlendirme modülünü kullanın. Aşağıdaki örnek, test_db içindeki tabloları ods_db veritabanına senkronize eder ve her tablo adına ods_ ön ekini ekler. Örneğin, test_db.orders tablosu ods_db.ods_orders tablosuna senkronize edilir.

source:
  type: mysql
  name: MySQL Source
  hostname: <yourHostname>
  port: 3306
  username: ${secret_values.mysql_username}
  password: ${secret_values.mysql_password}
  tables: test_db.\.*
  server-id: 5401-5499
  scan.startup.mode: initial

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}

route:
  # <> is a placeholder that is replaced with the matched source table name.
  - source-table: test_db.\.*
    sink-table: ods_db.ods_<>
    replace-symbol: <>

pipeline:
  name: MySQL to SelectDB Pipeline

Parçalı tabloları birleştirme

Şeması aynı olan birden çok parça tablosunu tek bir SelectDB tablosunda birleştirin. Aşağıdaki örnek, dönüştürme modülünü kullanarak kaynak veritabanını ve tabloyu tanımlayan bir sütun ekler ve ardından birleştirilen verilerin kaynağını izleyebilmeniz için bu sütunu iş birincil anahtarıyla birlikte bileşik birincil anahtar olarak kullanır.

source:
  type: mysql
  name: MySQL Source
  hostname: <yourHostname>
  port: 3306
  username: ${secret_values.mysql_username}
  password: ${secret_values.mysql_password}
  # Matches all shards, such as order_db_1.orders_1 and order_db_2.orders_2.
  tables: order_db_\d+.orders_\d+
  server-id: 5401-5499
  scan.startup.mode: initial

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}
  # Set this parameter to false when the downstream primary key differs from the upstream one. Otherwise, the rows that correspond to the old primary key are not deleted.
  sink.ignore.update-before: false

transform:
  - source-table: order_db_\d+.orders_\d+
    # Append the src_table column that identifies the source database and table.
    projection: "*, __schema_name__ || '.' || __table_name__ AS src_table"
    # The composite primary key must be the same as the key columns of the destination table.
    primary-keys: order_id, src_table
    description: Append the source identifier and set a composite primary key

route:
  # Merge all shards into a single table.
  - source-table: order_db_\d+.orders_\d+
    sink-table: dw_db.merged_orders

pipeline:
  name: MySQL sharding to SelectDB Pipeline

Verileri filtreleme ve sütunları budama

Verileri filtrelemek ve sütunları budamak için dönüştürme modülünü kullanın. Filtre koşulu, kaydın senkronize edilip edilmeyeceğine karar vermek için kaynak tablo alanlarında değerlendirilir; projeksiyon ise hangi sütunların aşağı yönlü tabloya yazılacağını belirler.

source:
  type: mysql
  name: MySQL Source
  hostname: <yourHostname>
  port: 3306
  username: ${secret_values.mysql_username}
  password: ${secret_values.mysql_password}
  tables: test_db.test_source_table
  server-id: 5401-5499
  scan.startup.mode: initial

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}

transform:
  - source-table: test_db.test_source_table
    # Synchronize only the records whose order_status is PAID.
    filter: "order_status = 'PAID'"
    # Write only the following four columns.
    projection: order_id, customer_id, total_amount, created_at
    primary-keys: order_id
    description: Filter by order status and prune columns

pipeline:
  name: MySQL to SelectDB Pipeline

Tam PostgreSQL veritabanı senkronizasyonu

Bir PostgreSQL şemasındaki tüm tabloları SelectDB'ye senkronize edin. Başlamadan önce PostgreSQL örneğinde wal_level değerini logical olarak ayarlayın ve max_replication_slots ile max_wal_senders parametrelerinin yeterli boşlukta olduğundan emin olun. Daha fazla bilgi için bkz. PostgreSQL veritabanı yapılandırma.

source:
  type: postgres
  name: PostgreSQL Source
  hostname: <yourHostname>
  port: 5432
  username: ${secret_values.pg_username}
  password: ${secret_values.pg_password}
  # PostgreSQL table names use the database.schema.table format.
  tables: test_db.public.\.*
  slot.name: <yourSlotName>
  decoding.plugin.name: pgoutput
  scan.startup.mode: initial
  # (Optional) Use an existing publication instead of creating one when the job starts.
  debezium.publication.autocreate.mode: disabled
  debezium.publication.name: <yourPublicationName>

sink:
  type: doris
  name: SelectDB Sink
  fenodes: selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080
  jdbc-url: jdbc:mysql://selectdb-cn-****.selectdbfe.rds.aliyuncs.com:9030
  username: ${secret_values.selectdb_username}
  password: ${secret_values.selectdb_password}

pipeline:
  name: PostgreSQL to SelectDB Pipeline

Tür eşleme

Flink'den SelectDB'ye

Flink CDC türü SelectDB türü Notlar
TINYINT TINYINT
SMALLINT SMALLINT
INT INT
BIGINT BIGINT
DECIMAL DECIMAL
FLOAT FLOAT
DOUBLE DOUBLE
BOOLEAN BOOLEAN
DATE DATE
TIMESTAMP[(p)] DATETIME[(p)]
TIMESTAMP_LTZ[(p)] DATETIME[(p)]
CHAR(n) CHAR(n*3) SelectDB dizeleri UTF-8 olarak depolar. İngilizce karakterler 1 bayt; Çince karakterler 3 bayt kaplar. Maksimum CHAR uzunluğu 255'tir; daha uzun değerler otomatik olarak VARCHAR türüne dönüştürülür.
VARCHAR(n) VARCHAR(n*3) Aynı UTF-8 çarpanı uygulanır. Maksimum VARCHAR uzunluğu 65533'tür; daha uzun değerler otomatik olarak STRING türüne dönüştürülür.
BINARY(n) STRING
VARBINARY(n) STRING
STRING STRING

Sonraki adımlar