Tüm Ürünler
Search
Belge Merkezi

Lindorm:ALTER TABLE

Son Güncelleme:Oct 07, 2026

ALTER TABLE deyimi; sütun ekleme, silme ve tablo niteliklerini ayarlama gibi işlemlerle bir tablonun şemasını değiştirir. Desteklenen yan tümceler LindormTable ve LindormTSDB arasında farklılık gösterir.

Motorlar ve sürümler

ALTER TABLE deyimi LindormTable ve LindormTSDB için geçerlidir. Sürüm kısıtlaması yoktur.

Kullanım notları

ALTER TABLE işlemi kilitleme yapmaz. İşlem süresince tablo okuma ve yazma için erişilebilir kalır. Ancak aşağıdaki nedenlerden dolayı zaman aşımı hataları veya kısa süreli performans dalgalanmaları yaşayabilirsiniz:

  • DDL işlemi sırasında her parça, meta verileri yeniden yüklemek için kısa süreliğine kapatılıp yeniden açılır. Bu işlem genellikle 10 milisaniye ile birkaç yüz milisaniye arasında sürer. İstek yeniden açılan bir parçaya yönlendirilirse küçük bir gecikme veya kısa süreli performans dalgalanması yaşanabilir. DDL işlemlerini yoğun olmayan saatlerde gerçekleştirmenizi öneririz.

  • DDL işleminin sonucu, değişiklik tüm parçalara uygulandıktan sonra döner. Büyük tablolar için istemci zaman aşımı süresi kısaysa bu durum istemci tarafında zaman aşımına neden olabilir. İşlem sunucu tarafında tamamlanana kadar çalışmaya devam eder.

Söz dizimi

alter_table_statement   ::= ALTER TABLE table_name alter_table_instruction

alter_table_instruction ::=   
  add_column_list
  | DROP COLUMN [ IF EXISTS ] column_name
  | SET table_options
  | COMPACT (idcName)?
   
add_column_list ::= ADD [COLUMN] column_def ( ',' ADD [COLUMN] column_def )*
column_def ::= column_name type [TAG]

Motor farkları

ALTER TABLE deyimi LindormTable ve LindormTSDB arasında farklılık gösterir. Aşağıdaki tabloda desteklenen yan tümceler karşılaştırılmıştır.

Yan Tümce

LindormTable

LindormTSDB

ADD COLUMN

Desteklenir

Desteklenir

COMPACT

Desteklenir

Not

LindormTable 2.3.4 ve sonraki sürümlerde desteklenir.

Desteklenmez

DROP COLUMN

Desteklenir

Not

LindormTable 2.6.6 ve sonraki sürümlerde desteklenir.

Desteklenmez

SET table_options

Desteklenir

Desteklenmez

Yan tümceler

ADD COLUMN

Hem LindormTable hem de LindormTSDB ADD COLUMN yan tümcesini destekler.

Sütun eklerken aşağıdaki kurallar geçerlidir:

  • Birincil anahtar olarak sütun ekleyemezsiniz.

  • LindormTSDB için yalnızca etiket sütunu veya alan sütunu ekleyebilirsiniz. Zaman damgası sütunu ekleyemezsiniz.

DROP COLUMN

DROP COLUMN yan tümcesi yalnızca LindormTable 2.6.6 ve sonraki sürümlerde kullanılabilir.

Not

Örneğinizi konsolda 2.6.6 veya sonraki bir sürüme yükseltemiyorsanız Lindorm teknik destek ekibiyle (DingTalk ID: s0s3eg3) iletişime geçin.

DROP COLUMN işlemi eşzamansızdır. ALTER TABLE deyimi başarılı olduktan sonra sistem hedef sütunu hemen siler ancak sütun verileri COMPACT işlemi tamamlanana kadar temizlenmez. Veri temizleme işlemini hızlandırmak için FLUSH ve COMPACT işlemlerini manuel olarak çalıştırabilirsiniz. Veriler tamamen temizlenene kadar aynı ada sahip bir sütun ekleyemezsiniz. Daha fazla bilgi için bkz. SSS.

SET table_options

Yalnızca LindormTable SET table_options yan tümcesini destekler.

Tablo niteliklerinin listesi için bkz. Tablo nitelikleri. Tablo niteliklerinin başarıyla ayarlandığını doğrulamak için SHOW TABLE VARIABLES deyimini kullanabilirsiniz. Daha fazla bilgi için bkz. SHOW TABLE VARIABLES.

Önemli

MUTABILITY ve CONSISTENCY niteliklerini değiştirirken aşağıdakilere dikkat edin:

  • Dizin oluşturmadan önce hem MUTABILITY hem de CONSISTENCY değerlerini değiştirebilirsiniz.

  • Dizin oluşturduktan sonra:

    • MUTABILITY değerini değiştiremezsiniz.

    • CONSISTENCY değerini eventual değerinden strong değerine değiştirebilirsiniz ancak strong değerinden eventual değerine değiştiremezsiniz.

Örnek için bkz. Dinamik sütunları etkinleştirme.

COMPACT

Yalnızca LindormTable 2.3.4 ve sonraki sürümler, büyük bir birleştirmeyi tetikleyen COMPACT yan tümcesini destekler.

Büyük bir birleştirme çalıştırmak veri dosyalarını birleştirir, silinen veya süresi dolan verileri temizler, disk alanını serbest bırakır ve okuma/yazma performansını artırır. Bu işlem kaynak yoğundur.

  • idcName belirtmezseniz:

    • Yalnızca bir IDC'ye sahip tek alanlı örnekler için idcName belirtmenin etkisi yoktur.

    • İki IDC'ye sahip çok alanlı örnekler için idcName belirtmezseniz aşağıdaki kurallar geçerlidir:

      • LindormTable sürümünüz 2.6.4.2'den önceyse büyük bir birleştirme yalnızca idc1 üzerinde çalışır.

      • LindormTable sürümünüz 2.6.4.2 veya sonraki bir sürümse büyük bir birleştirme varsayılan olarak tüm IDC'lerde çalışır.

  • idcName belirtirseniz büyük birleştirme belirtilen IDC üzerinde çalışır. Virgülle (,) ayrılmış birden fazla IDC adı belirtebilirsiniz.

Örnek için bkz. Büyük birleştirme çalıştırma.

Örnekler

Bu bölümdeki örnekler, CREATE TABLE konusundaki aşağıdaki deyimle oluşturulan sensor tablosunu kullanır:

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time BIGINT NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

Sütun ekleme

sensor tablosuna yeni bir n1 sütunu ekleyin.

ALTER TABLE sensor ADD COLUMN n1 DOUBLE;

Zamansal mekanik veri tablosu roads tablosuna zamansal mekanik bir sütun ekleyin.

  • Tek bir uzamsal sütun ekleyin.

    ALTER TABLE roads ADD COLUMN g2 GEOMETRY(LINESTRING);
  • Birden fazla uzamsal sütun ekleyin.

    ALTER TABLE roads ADD COLUMN g2 GEOMETRY(LINESTRING), g3 GEOMETRY(POLYGON);

Sütun silme

sensor tablosundan n1 sütununu silin.

ALTER TABLE sensor DROP COLUMN IF EXISTS n1;

Sonucu doğrulama

Sonucu doğrulamak için aşağıdaki deyimi çalıştırın:

DESCRIBE table sensor;

Dinamik sütunları etkinleştirme

sensor tablosu için dinamik sütunlar özelliğini etkinleştirin.

ALTER TABLE sensor SET DYNAMIC_COLUMNS = 'true';
Not

Dinamik sütunlar hakkında daha fazla bilgi için bkz. Dinamik sütunlar.

Tablo tutarlılığını ayarlama

Zamansal mekanik veri tablosu roads için tutarlılığı ayarlayın.

ALTER TABLE roads SET 'CONSISTENCY' = 'strong';

TTL ayarlama

  • sensor tablosunun TTL değerini saniye (s) cinsinden ayarlayın.

    ALTER TABLE sensor SET TTL = '2592000';
  • sensor tablosundan TTL'yi kaldırın.

    ALTER TABLE sensor SET TTL = '';

    Sonucu doğrulama

    Küme yönetim sisteminde Overview sayfasına gidin. Hedef veritabanı altındaki hedef tablo adına tıklayın. Current table details bölümünde TTL parametresinin değerini görüntüleyin. Küme yönetim sistemine erişim hakkında bilgi için bkz. Küme yönetim sisteminde oturum açma.

Sıkıştırma algoritmasını ayarlama

  • sensor tablosunun sıkıştırma algoritmasını ZSTD olarak ayarlayın.

    ALTER TABLE sensor SET COMPRESSION = 'ZSTD';
  • sensor tablosunun sıkıştırma algoritmasını NONE olarak ayarlayın.

    ALTER TABLE sensor SET COMPRESSION = 'NONE';

    Sonucu doğrulama

    Küme yönetim sisteminde Overview sayfasına gidin ve hedef veritabanı altındaki hedef tablo adına tıklayın. Current table details bölümünde View table properties seçeneğine tıklayarak COMPRESSION parametresinin değerini görüntüleyin.

Sıcak ve soğuk veri ayrımını yapılandırma

Not

Sıcak ve soğuk veri ayrımı hakkında daha fazla bilgi için bkz. Sıcak ve soğuk veri ayrımına giriş.

Sıcak ve soğuk veri sınırını ayarlama

Alım zaman damgası

sensor tablosu için sıcak ve soğuk veri sınırını ayarlayın. LindormTable, her satırın alım zaman damgasına göre verilerin Capacity depolamaya arşivlenip arşivlenmeyeceğini belirler.

-- Enable hot and cold data separation for the sensor table based on ingestion timestamp and set the boundary to one day.
ALTER TABLE sensor SET CHS = '86400', CHS_L2 = 'storagetype=COLD';

Sonucu doğrulama

CHS ve CHS_L2 parametrelerinin değerlerini görüntülemek için SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; deyimini çalıştırabilirsiniz. SHOW VARIABLES söz dizimi hakkında daha fazla bilgi için bkz. SHOW VARIABLES.

Özel zaman sütunu

Önemli

Özel bir zaman sütununa göre veri ayırmanın sınırlamaları vardır. Bu özelliği kullanmadan önce Kullanım notlarını inceleyin.

sensor tablosu için özel zaman sütunu time sütununu sıcak ve soğuk veri sınırı olarak ayarlayın. LindormTable, her satırdaki time sütununun olay zaman damgasına göre verilerin Capacity depolamaya arşivlenip arşivlenmeyeceğini belirler.

-- Enable hot and cold data separation for the sensor table based on a custom column, set the boundary to one day, and use the time column.
ALTER TABLE sensor SET CHS ='86400', CHS_L2 = 'storagetype=COLD', CHS_COLUMN = 'COLUMN=time';

Sonucu doğrulama

CHS, CHS_L2 ve CHS_COLUMN parametrelerinin değerlerini görüntülemek için SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; deyimini çalıştırabilirsiniz. SHOW VARIABLES söz dizimi hakkında daha fazla bilgi için bkz. SHOW VARIABLES.

Sıcak ve soğuk veri sınırını kaldırma

Sensor tablosu için sıcak ve soğuk veri sınırını kaldırın.

ALTER TABLE sensor SET CHS = '', CHS_L2 = '';

Sonucu doğrulama

CHS ve CHS_L2 parametrelerinin değerlerini görüntülemek için SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%'; deyimini çalıştırabilirsiniz. SHOW VARIABLES söz dizimi hakkında daha fazla bilgi için bkz. SHOW VARIABLES.

Büyük birleştirme çalıştırma

  • Sensor tablosunda büyük bir birleştirme çalıştırın.

    ALTER TABLE sensor COMPACT;
    Not

    Çok alanlı bir örnek için aşağıdaki kurallara dikkat edin:

    • LindormTable sürümünüz 2.6.4.2'den önceyse ve bir IDC belirtmezseniz sistem varsayılan olarak idc1 üzerinde büyük bir birleştirme çalıştırır.

    • LindormTable sürümünüz 2.6.4.2 veya sonraki bir sürümse sistem varsayılan olarak tüm IDC'lerde büyük bir birleştirme çalıştırır.

  • idc2 üzerinde büyük bir birleştirme çalıştırın.

    ALTER TABLE sensor COMPACT 'idc2';
  • idc1 ve idc2 üzerinde büyük bir birleştirme çalıştırın.

    ALTER TABLE sensor COMPACT 'idc1,idc2';