用途:Turbo Transforms 用于为 Turbo 管道配置编写、理解和调试 SQL、TypeScript 与动态表转换,覆盖解码、过滤、重塑、合并、自定义逻辑和查找连接等需求。
主要能力:SQL 转换支持别名、过滤、列投影、类型转换、CASE WHEN 条件逻辑、排除过滤、转换链式调用和 UNION ALL 合并事件;提供 evm_log_decode(别名 _gs_log_decode、evm_decode_log)等关键函数用于解码 EVM 日志,以及 fetch_abi、_gs_keccak256、xxhash、to_u256/u256_to_string、dynamic_table_check、to_timestamp 等。还支持 TypeScript/WASM 脚本转换、Handler 转换、动态表转换和 throttle 流量控制转换。
使用方式:在 YAML 的 transforms 中按 type、primary_key、sql 等必填字段定义转换,通过 YAML 键名引用来源或其他转换。每个记录包含 _gs_op 列(i/u/d),需在转换中保留以维持 database sink 的 upsert 语义。生成完整管道 YAML 时,应先用 goldsky turbo validate 校验。可用 goldsky turbo inspect <pipeline> -n <source_node> -p 查看实际列。
限制:Turbo SQL 基于 Apache DataFusion 流式模式,不支持 JOIN、聚合(GROUP BY、COUNT、SUM、AVG)、窗口函数(OVER、PARTITION BY、ROW_NUMBER)和子查询;CTE(WITH...AS)受支持。JOIN 可用 dynamic_table 转换替代,聚合可用 postgres_aggregate sink。throttle 不修改数据、无 primary_key。TypeScript 转换不支持 async/await 和外部导入。更多细节参见 references 下对应主题文件。