Apache Iceberg 数据类型参考表

发布于:2024-10-11 ⋅ 阅读:(6) ⋅ 点赞:(0)

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' 可变长度,适合存储文件或其他二进制数据。 存储大数据时需考虑性能。