Check Keys and NULL values
Fluent Bit >= 1.2 可用功能
当使用结构化消息(记录)时,在某些情况下,我们想知道某个键是否存在,它的值是 null (空)还是具有非 null (非空)的值。
Fluent Bit 内部记录是带有键值映射的序列化二进制数据。其值可以为空,这是有效的数据类型。在我们的 SQL 语言中,我们提供了以下可作为条件语句的语句:
Check if a key value IS NULL
以下 SQL 语句可用于从 test 数据流查找 phone 键值为 null 的所有记录:
SELECT * FROM STREAM:test WHERE phone IS NULL;
Check if a key value IS NOT NULL
与上面的示例类似,在某些情况下,我们希望查找所有某些键的值不为 null 的记录:
SELECT * FROM STREAM:test WHERE phone IS NOT NULL;
Check if a key exists
另一个常见用例是检查记录中是否存在某些键。我们提供了可以在 SQL 语句的条件部分中使用特定的记录函数。用于检查记录中是否存在键的函数原型如下:
@record.contains(key)
下面的示例查询包含 phone 的键的所有记录:
SELECT * FROM STREAM:test WHERE @record.contains(phone);