Apache Iceberg 概述-链接
Apache Iceberg 数据类型参考表
数据类型 | 描述 | 实例 | 方法 | 注意事项 |
---|---|---|---|---|
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' | 可变长度,适合存储文件或其他二进制数据。 | 存储大数据时需考虑性能。 |