Variant是一种专为高效存储与查询“半结构化数据”(如JSON对象、嵌套数组、动态schema表)设计的二进制编码数据类型。它不仅支持传统的结构化数据,同时也能灵活表达多样化、复杂的数据结构,满足动态变化的数据需求。
典型应用场景包括日志平台、事件仓库、宽表分析以及复杂嵌套数据等。
Variant类型最初由Delta Lake和Apache Spark社区联合推动,并作为开源标准在大数据领域逐步推广。目前,Spark 4.0已原生支持Variant类型,最新发布的Iceberg 1.10版本也正式加入了对Variant类型的支持。
在大数据分析和数据湖建设中,半结构化数据(如 JSON)被广泛使用,特别是在宽表、嵌套对象、动态字段场景下。传统的 JSON 存储方式(如保存为字符串)存在以下主要痛点:
flink 与 Variant 类型推出了 PARSE_JSON 和 TRY_PARSE_JSON 函数将 JSON 字符串转成半结构化类型 Variant
在阿里云实时计算Flink版服务中,支持了 Variant:Paimon表数据写入和消费