Cloudflare Pipelines 支持一组基本类型和复合类型,用于 SQL 转换。这些类型可用于 stream schema 和 SQL 字面量,并支持自动类型推断。
| Pipelines | SQL 类型 | 示例字面量 |
|---|---|---|
bool |
BOOLEAN |
TRUE, FALSE |
int32 |
INT, INTEGER |
0, 1, -2 |
int64 |
BIGINT |
0, 1, -2 |
float32 |
FLOAT, REAL |
0.0, -2.4, 1E-3 |
float64 |
DOUBLE |
0.0, -2.4, 1E-35 |
string |
VARCHAR, CHAR, TEXT, STRING |
"hello", "world" |
timestamp |
TIMESTAMP |
'2020-01-01', '2023-05-17T22:16:00.648662+00:00' |
binary |
BYTEA |
X'A123'(十六进制) |
json |
JSON |
'{"event": "purchase", "amount": 29.99}' |
除基本类型外,Pipelines SQL 还支持用于更复杂数据结构的复合类型。
列表将零个或多个相同类型的元素组合在一起。在 stream schema 中,列表使用 list 类型声明,并通过 items 字段指定元素类型。在 SQL 中,列表对应数组,通过在另一类型后添加 [] 声明,例如 INT[]。
列表值可使用从 1 开始的下标表示法(v[1] 是 v 的第一个元素)进行索引。
列表可通过 [] 字面量构造:
SELECT [1, 2, 3] as numbersPipelines 提供用于操作列表值的数组函数,列表可使用 UNNEST 运算符展开。
结构体将相关字段组合为单个值。在 stream schema 中,结构体使用 struct 类型和 fields 数组声明。在 SQL 中,结构体可使用 struct 函数创建。
在 SQL 中创建结构体的示例:
SELECT struct('user123', 'purchase', 29.99) as event_data FROM events这将创建一个包含字段 c0、c1、c2 的结构体,分别存储用户 ID、事件类型和金额。
结构体字段可通过 . 表示法访问,例如 event_data.c0 表示用户 ID。