BOOLEAN |
布尔类型,表示真或假 |
true , false |
用于条件判断,例如 WHERE is_active = true 。 |
确保逻辑条件的正确性。 |
INTEGER |
32位有符号整数 |
42 , -7 |
可用于计算、聚合,例如 SUM(salary) 。 |
超出范围会导致数据溢出。 |
LONG |
64位有符号整数 |
9223372036854775807 |
适用于大数值,常用于时间戳处理。 |
注意时间单位(毫秒/秒)。 |
FLOAT |
单精度浮点数 |
3.14f , -0.001f |
用于科学计算或小数表示。 |
精度有限,可能导致四舍五入误差。 |
DOUBLE |
双精度浮点数 |
3.141592653589793 |
常用于精确计算和复杂的数学运算。 |
也有精度问题,注意比较时的容忍度。 |
DECIMAL(P, S) |
精确的小数,指定精度(P指定总位数,小于等于38)和小数位数(S指定小数位数) |
DECIMAL(10, 2) (例如 12345.67 ) |
用于金融计算,支持高精度运算。 |
定义时需要谨慎选择精度和刻度。 |
STRING |
可变长度字符串 |
"Hello, Iceberg!" |
适用于存储文本数据,支持多种操作。 |
不适合存储大量数据,可能影响性能。 |
DATE |
不包含时间和时区的日期 |
2023-09-23 |
用于日期计算,例如 WHERE order_date > '2023-01-01' 。 |
时区问题需注意,使用时确保一致性。 |
TIME |
不包含日期和时区的时间 |
12:34:56 |
适用于记录时分秒,常用于日志数据。 |
需要注意时区和格式问题。 |
TIMESTAMP |
日期和时间的组合,不含时区 |
2023-09-23 14:30:00 |
用于精确记录事件发生的时间。 |
注意时区和格式一致性。 |
TIMESTAMPTZ |
含时区的时间戳 |
2023-09-23 14:30:00+00 |
适用于国际化应用,存储时间信息。 |
注意时区处理。 |
UUID |
通用唯一标识符 |
550e8400-e29b-41d4-a716-446655440000 |
用于唯一标识数据行,避免重复。 |
生成 UUID 时应避免冲突。 |
ARRAY |
有序的元素集合 |
ARRAY['apple', 'banana'] |
可用于表示列表,支持多种类型。 |
数组长度不可过大,可能影响查询性能。 |
MAP |
键值对集合 |
MAP['key1', 'value1'] |
用于表示字典型数据,支持灵活的数据结构。 |
注意键的唯一性,避免重复键导致的数据错误。 |
STRUCT |
复合数据类型,由多个字段组成 |
STRUCT<name STRING, age INT> |
用于表示复杂对象,便于管理多种属性。 |
结构体中的字段名称不能重复。 |
FIXED(L) |
长度为 L 的固定长度字节数组 |
BINARY 'abc' (L=3) |
适合存储定长数据。 |
长度必须固定。 |
BINARY |
任意长度的字节数组 |
BINARY 'abcdef' |
可变长度,适合存储文件或其他二进制数据。 |
存储大数据时需考虑性能。 |