• 数据类型

    数据类型

    TINYINT数据类型

    长度: 长度为1个字节的有符号整型。

    范围: [-128, 127]

    转换: Palo可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成CHAR。

    举例:

    1. mysql> select cast(100 as char);
    2. +------------------------+
    3. | CAST(100 AS CHARACTER) |
    4. +------------------------+
    5. | 100 |
    6. +------------------------+
    7. 1 row in set (0.00 sec)

    SMALLINT数据类型

    长度: 长度为2个字节的有符号整型。

    范围: [-32768, 32767]

    转换: Palo可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成TINYINT,CHAR。

    举例:

    1. mysql> select cast(10000 as char);
    2. +--------------------------+
    3. | CAST(10000 AS CHARACTER) |
    4. +--------------------------+
    5. | 10000 |
    6. +--------------------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select cast(10000 as tinyint);
    2. +------------------------+
    3. | CAST(10000 AS TINYINT) |
    4. +------------------------+
    5. | 16 |
    6. +------------------------+
    7. 1 row in set (0.00 sec)

    INT数据类型

    长度: 长度为4个字节的有符号整型。

    范围: [-2147483648, 2147483647]

    转换: Palo可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成TINYINT,SMALLINT,CHAR

    举例:

    1. mysql> select cast(111111111 as char);
    2. +------------------------------+
    3. | CAST(111111111 AS CHARACTER) |
    4. +------------------------------+
    5. | 111111111 |
    6. +------------------------------+
    7. 1 row in set (0.01 sec)

    BIGINT数据类型

    长度: 长度为8个字节的有符号整型。

    范围: [-9223372036854775808, 9223372036854775807]

    转换: Palo可以自动将该类型转换成更大的整型或者浮点类型。使用CAST()函数可以将其转换成TINYINT,SMALLINT,INT,CHAR

    举例:

    1. mysql> select cast(9223372036854775807 as char);
    2. +----------------------------------------+
    3. | CAST(9223372036854775807 AS CHARACTER) |
    4. +----------------------------------------+
    5. | 9223372036854775807 |
    6. +----------------------------------------+
    7. 1 row in set (0.01 sec)

    LARGEINT数据类型

    长度: 长度为16个字节的有符号整型。

    范围: [-2^127, 2^127-1]

    转换: Palo可以自动将该类型转换成浮点类型。使用CAST()函数可以将其转换成TINYINT,SMALLINT,INT,BIGINT,CHAR

    举例:

    1. mysql> select cast(922337203685477582342342 as double);
    2. +------------------------------------------+
    3. | CAST(922337203685477582342342 AS DOUBLE) |
    4. +------------------------------------------+
    5. | 9.223372036854776e23 |
    6. +------------------------------------------+
    7. 1 row in set (0.05 sec)

    FLOAT数据类型

    长度: 长度为4字节的浮点类型。

    范围: -3.40E+38 ~ +3.40E+38。

    转换: Palo会自动将FLOAT类型转换成DOUBLE类型。用户可以使用CAST()将其转换成TINYINT, SMALLINT, INT, BIGINT, STRING, TIMESTAMP。

    DOUBLE数据类型

    长度: 长度为8字节的浮点类型。

    范围: -1.79E+308 ~ +1.79E+308。

    转换: Palo不会自动将DOUBLE类型转换成其他类型。用户可以使用CAST()将其转换成TINYINT, SMALLINT, INT, BIGINT, STRING, TIMESTAMP。用户可以使用指数符号来描述DOUBLE 类型,或通过STRING转换获得。

    DECIMAL数据类型

    DECIMAL[M, D]

    保证精度的小数类型。M代表一共有多少个有效数字,D代表小数点后最多有多少数字。M的范围是[1,27],D的范围是[1,9],另外,M必须要大于等于D的取值。默认取值为decimal[10,0]。

    precision: 1 ~ 27

    scale: 0 ~ 9

    举例:

    1.默认取值是decimal(10, 0)

    1. mysql> CREATE TABLE testTable1 (k1 bigint, k2 varchar(100), v decimal SUM) DISTRIBUTED BY RANDOM BUCKETS 8;
    2. Query OK, 0 rows affected (0.09 sec)
    1. mysql> describe testTable1;
    2. +-------+----------------+------+-------+---------+-------+
    3. | Field | Type | Null | Key | Default | Extra |
    4. +-------+----------------+------+-------+---------+-------+
    5. | k1 | bigint(20) | Yes | true | N/A | |
    6. | k2 | varchar(100) | Yes | true | N/A | |
    7. | v | decimal(10, 0) | Yes | false | N/A | SUM |
    8. +-------+----------------+------+-------+---------+-------+
    9. 3 rows in set (0.01 sec)

    2.显式指定decimal的取值范围

    1. CREATE TABLE testTable2 (k1 bigint, k2 varchar(100), v decimal(8,5) SUM) DISTRIBUTED BY RANDOM BUCKETS 8;
    2. Query OK, 0 rows affected (0.11 sec)
    1. mysql> describe testTable2;
    2. +-------+---------------+------+-------+---------+-------+
    3. | Field | Type | Null | Key | Default | Extra |
    4. +-------+---------------+------+-------+---------+-------+
    5. | k1 | bigint(20) | Yes | true | N/A | |
    6. | k2 | varchar(100) | Yes | true | N/A | |
    7. | v | decimal(8, 5) | Yes | false | N/A | SUM |
    8. +-------+---------------+------+-------+---------+-------+
    9. 3 rows in set (0.00 sec)

    DATE数据类型

    范围: [&# 39;1000-01-01&# 39;, &# 39;9999-12-31&# 39;]。默认的打印形式是’YYYY-MM-DD’。

    DATETIME数据类型

    范围: [&# 39;1000-01-01 00:00:00&# 39;, &# 39;9999-12-31 00:00:00&# 39;]。默认的打印形式是’YYYY-MM-DD HH:MM:SS’。

    CHAR数据类型

    范围: char[(length)],定长字符串,长度length范围1~255,默认为1。

    转换:用户可以通过CAST函数将CHAR类型转换成TINYINT,,SMALLINT,INT,BIGINT,LARGEINT,DOUBLE,DATE或者DATETIME类型。

    示例:

    1. mysql> select cast(1234 as bigint);
    2. +----------------------+
    3. | CAST(1234 AS BIGINT) |
    4. +----------------------+
    5. | 1234 |
    6. +----------------------+
    7. 1 row in set (0.01 sec)

    VARCHAR数据类型

    范围: char(length),变长字符串,长度length范围1~65535。

    转换:用户可以通过CAST函数将CHAR类型转换成TINYINT,,SMALLINT,INT,BIGINT,LARGEINT,DOUBLE,DATE或者DATETIME类型。

    示例:

    1. mysql> select cast(&# 39;2011-01-01&# 39; as date);
    2. +----------------------------+
    3. | CAST(&# 39;2011-01-01&# 39; AS DATE) |
    4. +----------------------------+
    5. | 2011-01-01 |
    6. +----------------------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select cast(&# 39;2011-01-01&# 39; as datetime);
    2. +--------------------------------+
    3. | CAST(&# 39;2011-01-01&# 39; AS DATETIME) |
    4. +--------------------------------+
    5. | 2011-01-01 00:00:00 |
    6. +--------------------------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select cast(3423 as bigint);
    2. +----------------------+
    3. | CAST(3423 AS BIGINT) |
    4. +----------------------+
    5. | 3423 |
    6. +----------------------+
    7. 1 row in set (0.01 sec)

    HLL数据类型

    范围:char(length),长度length范围1~16385。用户不需要指定长度和默认值、长度根据数据的聚合程度系统内控制,并且HLL列只能通过配套的hll_union_agg、hll_cardinality、hll_hash进行查询或使用