Cloudflare Pipelines は、SQL 変換向けにプリミティブ型と複合型をサポートします。これらの型は、ストリームスキーマと、型が自動推論される 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'(16 進) |
json |
JSON |
'{"event": "purchase", "amount": 29.99}' |
プリミティブ型に加えて、Pipelines SQL はより複雑なデータ構造向けの複合型もサポートします。
リストは、同じ型の要素を 0 個以上まとめます。ストリームスキーマでは、list 型と要素型を指定する items フィールドで宣言します。SQL ではリストは配列に対応し、別の型に [] を付けて宣言します。例: INT[]。
リストの値は、1 始まりの添字表記でインデックスできます(v[1] は v の先頭要素です)。
リストは [] リテラルで構築できます。
SELECT [1, 2, 3] as numbersPipelines はリスト値を操作する配列関数を提供します。リストは UNNEST 演算子で展開できます。
構造体は、関連するフィールドを 1 つの値にまとめます。ストリームスキーマでは、struct 型と fields 配列で宣言します。SQL では struct 関数で構造体を作成できます。
SQL で構造体を作成する例:
SELECT struct('user123', 'purchase', 29.99) as event_data FROM eventsこれで、ユーザー ID、イベント種別、金額を含むフィールド c0、c1、c2 の構造体が作成されます。
構造体のフィールドは . 表記でアクセスできます。ユーザー ID なら event_data.c0 です。