日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

CREATE TABLE

更新時(shí)間:

CREATE TABLE語(yǔ)句用于在Lindorm寬表引擎或時(shí)序引擎中創(chuàng)建表,支持多種數(shù)據(jù)類(lèi)型,例如VARCHAR、TIMESTAMP、BIGINT等;支持多種表屬性,例如數(shù)據(jù)有效期TTL、壓縮算法COMPRESSION等。您可以靈活搭配各種表屬性和數(shù)據(jù)類(lèi)型,設(shè)計(jì)出更貼合業(yè)務(wù)場(chǎng)景的表。

引擎與版本

  • CREATE TABLE適用于寬表引擎和時(shí)序引擎。

  • 時(shí)序引擎自3.4.32版本開(kāi)始支持標(biāo)準(zhǔn)CREATE TABLE語(yǔ)法。如何查看或升級(jí)時(shí)序引擎版本,請(qǐng)參見(jiàn)時(shí)序引擎版本說(shuō)明升級(jí)小版本

語(yǔ)法

create_table_statement ::=  CREATE TABLE [ IF NOT EXISTS ] table_identifier
                            '('
                                column_definition
                                ( ',' column_definition )*
                                 ',' PRIMARY KEY '(' primary_key ')' 
                            ')' 
                            [ PARTITION BY partition_definition ]
                            [ WITH  table_options ]
column_definition      ::=  column_identifier data_type [ NOT NULL ]
primary_key            ::=  column_identifier [ ',' column_identifier (ASC|DESC)]
partition_definition   ::=  HASH '(' column_identifier (',' column_identifier )* ')'
table_options          ::=  '(' option_definition (',' option_definition )*  ')'
option_definition      ::=  option_identifer '=' string_literal

差異說(shuō)明

Lindorm寬表引擎和時(shí)序引擎的CREATE TABLE語(yǔ)法差異較大。差異對(duì)比請(qǐng)參見(jiàn)下表。

語(yǔ)法要素

寬表引擎

時(shí)序引擎

表名(table_identifier)

列定義(column_definition)

主鍵(primary_key)

分區(qū)(partition_definition)

??

表屬性(table_options)

??

使用說(shuō)明

表名(table_identifier)

關(guān)于表名的設(shè)置,您需要注意以下內(nèi)容:

  • 可包含數(shù)字、大寫(xiě)英文字符、小寫(xiě)英文字符、半角句號(hào)(.)、中劃線(-)和下劃線(_)。

  • 表名不能以半角句號(hào)(.)或中劃線(-)開(kāi)頭。

  • 表名的長(zhǎng)度為1~255字符。

列定義(column_definition

語(yǔ)法要素

是否必填

使用說(shuō)明

列名(column_identifier)

  • 可包含數(shù)字、大寫(xiě)英文字符、小寫(xiě)英文字符、半角句號(hào)(.)、中劃線(-)和下劃線(_)。

  • 不允許使用系統(tǒng)保留關(guān)鍵字作為列名。

  • 長(zhǎng)度不能超過(guò)255字節(jié)。

數(shù)據(jù)類(lèi)型(data_type)

支持的數(shù)據(jù)類(lèi)型,請(qǐng)參見(jiàn)數(shù)據(jù)類(lèi)型

重要

創(chuàng)建時(shí)序表時(shí),如果需要使用時(shí)間戳(TIMESTAMP)數(shù)據(jù)類(lèi)型,請(qǐng)注意以下幾點(diǎn):

  • 只能指定一列為T(mén)IMESTAMP類(lèi)型。

  • 時(shí)序引擎對(duì)于時(shí)間戳的編碼和解析,統(tǒng)一按照北京時(shí)間(GMT+8)來(lái)進(jìn)行。

  • 在一些較舊的系統(tǒng)中,其Unix時(shí)間戳仍然是按照32位進(jìn)行處理。這類(lèi)時(shí)間戳寫(xiě)入Lindorm時(shí)序引擎前建議乘以1000。如果不加轉(zhuǎn)換地將這些時(shí)間戳直接寫(xiě)入時(shí)序引擎,將會(huì)引起語(yǔ)義解釋上的偏差。例如,時(shí)間戳為1641009600,在較舊系統(tǒng)中會(huì)被解釋為2022-01-01 12:00:00,但在Lindorm時(shí)序引擎中則會(huì)被解釋為1970-01-20 07:50:09(GMT+8) 

NULL約束

列的值是否允許為NULL。

重要

目前Lindorm SQL不會(huì)進(jìn)行NULL約束的校驗(yàn),該校驗(yàn)工作是由存儲(chǔ)引擎執(zhí)行的。

NULL約束的校驗(yàn)方式取決于存儲(chǔ)引擎的校驗(yàn)規(guī)則,不同存儲(chǔ)引擎的校驗(yàn)規(guī)則不同,因此在使用過(guò)程中可能會(huì)出現(xiàn)已指定NOT NULL但仍可寫(xiě)入NULL的情況。

為保證數(shù)據(jù)能夠正常寫(xiě)入,請(qǐng)遵循以下統(tǒng)一要求:

  • 主鍵列不允許為空,即在建表時(shí),主鍵列必須指定NOT NULL。

  • 對(duì)于非主鍵列,不建議在非主鍵列的定義中指定NOT NULL。

主鍵(primary_key)

主鍵是表中數(shù)據(jù)的唯一標(biāo)識(shí),由一列或多列組成,建表時(shí)必須指定主鍵PRIMARY KEY。

在使用CREATE TABLE語(yǔ)句建表時(shí),需要注意以下內(nèi)容:

引擎類(lèi)型

主鍵使用說(shuō)明

寬表引擎

  • 單個(gè)主鍵列的最大長(zhǎng)度為2 KB。

  • 所有主鍵列的長(zhǎng)度之和不能超過(guò)30 KB。

  • 單個(gè)非主鍵列的最大長(zhǎng)度不能超過(guò)2 MB。

時(shí)序引擎

  • 時(shí)序表的主鍵列中數(shù)據(jù)類(lèi)型為VARCHAR的列又被稱(chēng)作標(biāo)簽(TAG)列,數(shù)據(jù)類(lèi)型為T(mén)IMESTAMP的列又被稱(chēng)為時(shí)間戳列

  • 主鍵列的數(shù)據(jù)類(lèi)型必須是VARCHAR或TIMESTAMP類(lèi)型。

  • 主鍵列可以包含一個(gè)或多個(gè)VARCHAR類(lèi)型的列,但只能包含一個(gè)TIMESTAMP類(lèi)型的列。

  • 在時(shí)序表中建議選擇數(shù)據(jù)源的唯一標(biāo)識(shí)作為PRIMARY KEY,例如物聯(lián)網(wǎng)場(chǎng)景中的設(shè)備ID,車(chē)聯(lián)網(wǎng)場(chǎng)景中的車(chē)輛唯一標(biāo)識(shí),監(jiān)控場(chǎng)景中的應(yīng)用ID或ip:port等。更多內(nèi)容,請(qǐng)參見(jiàn)PRIMARY KEY設(shè)計(jì)的最佳實(shí)踐

分區(qū)(partition_definition

時(shí)序引擎支持分區(qū)。在時(shí)序表中,用作PARTITION BY的列必須是主鍵定義中的VARCHAR列

建表時(shí),您可以通過(guò)PARTITION BY HASH(column1, column2, ..., columnN)語(yǔ)句,顯示指定一個(gè)或多個(gè)列為表進(jìn)行Hash分區(qū)。例如:PARTITION BY HASH(c1, p1)

表屬性(table_options)

寬表引擎支持表屬性(table_options)。您可以通過(guò)WITH關(guān)鍵字添加以下表屬性:

選項(xiàng)

類(lèi)型

描述

COMPRESSION

STRING

表的壓縮算法。可選的壓縮算法分別是:

  • SNAPPY

  • ZSTD

  • LZ4

說(shuō)明

寬表引擎2.3.4版本前默認(rèn)未指定壓縮算法,寬表引擎2.3.4及以后的版本默認(rèn)壓縮算法為ZSTD。

TTL

INT

數(shù)據(jù)有效期,單位為秒(s)。

說(shuō)明
  • 默認(rèn)TTL選項(xiàng)為空,即數(shù)據(jù)不會(huì)過(guò)期。

  • 您可以通過(guò)在建表語(yǔ)句中添加TTL=<指定時(shí)間>為表設(shè)置數(shù)據(jù)有效期,也可以通過(guò)將TTL修改為空字符串來(lái)取消數(shù)據(jù)有效期。具體用法可參見(jiàn)示例

COMPACTION_MAJOR_PERIOD

LONG

系統(tǒng)執(zhí)行major compaction的周期 ,單位為毫秒(ms)。具體用法可參見(jiàn)指定Major Compaction周期

說(shuō)明

默認(rèn)值:Math.Min(TTL,1728000000ms)。如果不設(shè)置TTL,系統(tǒng)默認(rèn)該參數(shù)值為20天(20*24*60*60*1000ms=1728000000ms)。

MUTABILITY

STRING

索引相關(guān),表示對(duì)主表的寫(xiě)入模式進(jìn)行分類(lèi)。默認(rèn)值為MUTABLE_LATEST。

所有取值如下:

  • IMMUTABLE

  • IMMUTABLE_ROWS

  • MUTABLE_LATEST

  • MUTABLE_ALL

取值的詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)高性能原生二級(jí)索引

重要

創(chuàng)建索引表后,MUTABILITY參數(shù)的值不支持修改。

CONSISTENCY

STRING

表的一致性屬性。對(duì)于多可用區(qū)實(shí)例,該參數(shù)表示主備數(shù)據(jù)的一致性。包括以下兩種級(jí)別:

  • eventual:最終一致,默認(rèn)值。

  • strong:強(qiáng)一致。

重要

對(duì)于多可用區(qū)實(shí)例,如果數(shù)據(jù)存在先讀后寫(xiě),例如increase、append、索引更新,則需要指定主表CONSISTENCY參數(shù)的值為strong,保證主備數(shù)據(jù)一致。

NUMREGIONS

INT

預(yù)先設(shè)置建表時(shí)的Region數(shù)。

CHS

INT

冷熱分界線,單位為秒。

說(shuō)明
  • 設(shè)置冷熱分界線需要開(kāi)通冷存儲(chǔ)功能,功能介紹和開(kāi)通方式參考冷熱分離介紹

  • 設(shè)置冷熱分界線選項(xiàng)時(shí),必須同時(shí)設(shè)置CHS_L2='storagetype=COLD'

STARTKEY和ENDKEY

與PRIMARY KEY中第一個(gè)列的數(shù)據(jù)類(lèi)型相同

預(yù)先設(shè)置建表的Region分區(qū)起止Key。

說(shuō)明
  • 如果指定STARTKEY和ENDKEY,必須與NUMREGIONS同時(shí)指定。如果在未指定NUMREGIONS的情況下指定STARTKEY和ENDKEY將不會(huì)產(chǎn)生實(shí)際效果。

  • STARTKEY和ENDKEY中指定的字符串常量值將會(huì)隱式轉(zhuǎn)換為PRIMARY KEY中的第一個(gè)列的類(lèi)型用作分區(qū)的起止Key,且當(dāng)前僅支持對(duì)以下類(lèi)型指定STARTKEY和ENDKEY。

    • SMALLINT

    • INTEGER

    • BIGINT

    • CHAR

    • VARCHAR

    • FLOAT

    • DOUBLE

SPLITKEYS

與PRIMARY KEY中第一個(gè)列的數(shù)據(jù)類(lèi)型相同

預(yù)先設(shè)置表的全部預(yù)分區(qū)的起始Key。

說(shuō)明
  • SPLITKEYS從寬表引擎2.5.4版本開(kāi)始支持。

  • 指定字符串形式的SPLITKEYS值中通過(guò)半角逗號(hào)(,)區(qū)分各個(gè)預(yù)分區(qū)的起始Key。置于成對(duì)雙引號(hào)中的逗號(hào)將會(huì)被視作普通字符。

  • SPLITKEYS無(wú)法與NUMREGIONS、STARTKEY以及ENDKEY一同使用。

  • 與STARTKEY和ENDKEY一樣,指定的字符串常量值將會(huì)隱式轉(zhuǎn)換為PRIMARY KEY中的第一個(gè)列的類(lèi)型用作分區(qū)的起始Key。僅支持以下數(shù)據(jù)類(lèi)型。

    • SMALLINT

    • INTEGER

    • BIGINT

    • CHAR

    • VARCHAR

    • FLOAT

    • DOUBLE

SPLITALGO

STRING

定義預(yù)分區(qū)的分裂算法。目前僅支持以下分裂算法:

  • HexStringSplit:使用十六進(jìn)制格式的字節(jié)對(duì)主鍵進(jìn)行切分。

  • UniformSplit:使用原始的Byte值進(jìn)行平均切分。

DYNAMIC_COLUMNS

STRING

是否開(kāi)啟動(dòng)態(tài)列。取值:

  • True:是。

  • False:否,默認(rèn)值。

說(shuō)明

動(dòng)態(tài)列僅支持Varbinary類(lèi)型。關(guān)于動(dòng)態(tài)列的介紹,請(qǐng)參見(jiàn)動(dòng)態(tài)列

VERSIONS

STRING

列值保留的版本數(shù)。取值為大于等于1的整數(shù)。默認(rèn)值為1,表示保留一個(gè)版本。Lindorm支持列值保留多個(gè)版本,多版本管理的詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)多版本數(shù)據(jù)管理

重要

VERSIONS參數(shù)的值過(guò)大可能會(huì)影響數(shù)據(jù)的查詢(xún)和存儲(chǔ)性能,請(qǐng)盡量避免設(shè)置過(guò)大的值。建議將VERSIONS的值設(shè)置1。

BLOB_BUCKET_NAME

STRING

為包含BLOB列的表創(chuàng)建BUCKET。取值為自定義的BUCKET名稱(chēng)。

BUCKET名稱(chēng)需遵循以下規(guī)則:

  • 只能包含小寫(xiě)字母、數(shù)字、半角句號(hào)(.)、中劃線(-)。

  • 長(zhǎng)度為3~63個(gè)字符。

  • 禁止以中劃線(-)作為BUCKET名稱(chēng)的開(kāi)頭或結(jié)尾。

  • 名稱(chēng)中不允許包含連續(xù)的半角句號(hào)(.)。

說(shuō)明
  • BLOB_BUCKET_NAME從寬表2.6.4版本開(kāi)始支持。

  • 如果建表時(shí)未設(shè)置BLOB列,但設(shè)置了BLOB_BUCKET_NAME屬性,則系統(tǒng)不會(huì)觸發(fā)BUCKET名稱(chēng)檢查。

說(shuō)明

2.2.16版本前的寬表引擎在設(shè)置表屬性時(shí)不支持WITH關(guān)鍵字,需在表屬性關(guān)鍵字前后添加半角單引號(hào)('),屬性值可以基于類(lèi)型進(jìn)行設(shè)置。如果屬性值的類(lèi)型是字符串(STRING)則需在字符串前后添加半角單引號(hào)('),例如CREATE TABLE IF NOT EXISTS t1(c1 varchar, c2 bigint, c3 int, c4 int, PRIMARY KEY(c1,c2)) 'CONSISTENCY'='strong';

示例

創(chuàng)建表

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

結(jié)果驗(yàn)證

您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

指定數(shù)據(jù)有效期和壓縮算法

創(chuàng)建寬表時(shí)指定數(shù)據(jù)有效期為30天(2592000秒),壓縮算法為ZSTD。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (COMPRESSION='ZSTD', TTL='2592000');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在當(dāng)前詳情表格區(qū)域,單擊查看表屬性,查看COMPRESSIONTTL參數(shù)的值。如何進(jìn)入集群管理系統(tǒng),請(qǐng)參見(jiàn)登錄集群管理系統(tǒng)

指定Major Compaction周期

創(chuàng)建寬表時(shí)指定Major Compaction的周期為10天(864,000,000毫秒)。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (COMPACTION_MAJOR_PERIOD='864000000');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在當(dāng)前詳情表格區(qū)域,單擊查看表屬性,查看COMPACTION_MAJOR_PERIOD參數(shù)的值。

開(kāi)啟動(dòng)態(tài)列功能

創(chuàng)建寬表時(shí)將DYNAMIC_COLUMNS參數(shù)的值設(shè)置為TRUE后,支持在表中寫(xiě)入動(dòng)態(tài)列數(shù)據(jù)。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (DYNAMIC_COLUMNS='TRUE');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在當(dāng)前詳情表格區(qū)域,單擊查看表屬性,查看DYNAMIC_COLUMNS參數(shù)的值。

指定冷熱分界線

創(chuàng)建寬表時(shí)設(shè)置冷熱分界線,系統(tǒng)將根據(jù)冷熱分界線歸檔數(shù)據(jù)。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (CHS = '86400', CHS_L2 = 'storagetype=COLD');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在當(dāng)前詳情表格區(qū)域,單擊查看表屬性,查看CHSCHS_L2參數(shù)的值。

同時(shí)設(shè)置多個(gè)屬性

創(chuàng)建寬表時(shí)指定表的壓縮算法、數(shù)據(jù)有效期以及冷熱分界線。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time TIMESTAMP NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
) WITH (
    COMPRESSION='ZSTD', 
    CHS = '86400', 
    CHS_L2 = 'storagetype=COLD', 
    TTL = '2592000');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在當(dāng)前詳情表格區(qū)域,單擊查看表屬性,查看COMPRESSIONCHSCHS_L2TTL參數(shù)的值。

設(shè)置分區(qū)

創(chuàng)建寬表時(shí)預(yù)定義5個(gè)分區(qū),且5個(gè)分區(qū)的起始Key為1000,終止Key為9000。

CREATE TABLE sensor (
  p1 INTEGER NOT NULL, 
  c1 INTEGER, 
  c2 VARCHAR, 
  c3 VARCHAR,
  PRIMARY KEY(p1)
) WITH (NUMREGIONS='5', STARTKEY='1000', ENDKEY='9000');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在分片詳情區(qū)域,查看各分片的startKeyendKey參數(shù)的值。

設(shè)置多個(gè)分區(qū)的起始Key

創(chuàng)建寬表時(shí)預(yù)定義5個(gè)分區(qū)的起始Key,表創(chuàng)建好后默認(rèn)包含6個(gè)預(yù)分區(qū)。

CREATE TABLE sensor (
  p1 INT NOT NULL,
  p2 INT NOT NULL,
  c1 VARCHAR,
  c2 BIGINT,
  PRIMARY KEY(p1, p2)
) WITH (SPLITKEYS = '100000,300000,500000,700000,900000');

結(jié)果驗(yàn)證

  • 您可以執(zhí)行DESCRIBE table sensor;查看表是否已創(chuàng)建成功。

  • 在集群管理系統(tǒng)的概覽頁(yè)面,單擊目標(biāo)數(shù)據(jù)庫(kù)下的目標(biāo)表名。在分片詳情區(qū)域,查看各分片的startKeyendKey參數(shù)的值。

顯式指定分區(qū)列

由于大部分查詢(xún)場(chǎng)景會(huì)查詢(xún)單個(gè)設(shè)備的瞬時(shí)數(shù)據(jù),因此可以顯式指定device_id作為數(shù)據(jù)分區(qū)的分區(qū)列。

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

結(jié)果驗(yàn)證

您可以執(zhí)行DESCRIBE TABLE sensor;語(yǔ)句,驗(yàn)證建表結(jié)果。