内容提要
外部数据包装器(FDW)允许Postgres与外部托管的数据进行交互。Wrappers是一个用于创建Postgres外部数据包装器的Rust框架。他们已经发布了对WebAssembly(Wasm)包装器的支持,允许任何人创建一个Wasm包装器来连接外部服务,并直接从GitHub等平台运行。Wasm FDW提供了更高的安全性、简化的开发、简化的分发、增强的性能和更高的模块化。
延伸解读
Wasm FDW 的当前限制
Wasm FDW 目前仅支持基于 HTTP(s) 的 JSON API 数据源,无法连接 TCP/IP 数据库或本地文件。这意味着它适用于 RESTful 服务,如 Snowflake 和 Paddle,但对于传统数据库或文件系统,仍需其他方案。
安全使用指南
由于 Wasm FDW 可以访问外部数据源,安装不受信任的 Wasm 包装器可能带来安全风险。应始终使用官方 Supabase FDW 或完全可控的来源,并验证包校验和,以降低潜在威胁。
开发与分发优势
开发者可以使用 Rust 创建 Wasm FDW,无需深入了解 Postgres 内部 API。Wasm 包可通过 GitHub 或 S3 等 URL 分发,并在首次查询时动态加载,简化了部署和更新流程。
Q&A
什么是外部数据包装器(FDW)?
外部数据包装器(FDW)是Postgres的一项功能,允许用户像查询本地表一样连接和查询外部数据源。
Wasm FDW的主要优势是什么?
Wasm FDW提供更高的安全性、简化的开发和分发、增强的性能以及更高的模块化。
如何在Supabase上使用Wasm FDW?
用户可以在Supabase上创建新项目,启用Wrappers功能,并添加Snowflake或Paddle包装器来使用Wasm FDW。
Wasm FDW支持哪些类型的数据源?
Wasm FDW目前仅支持具有HTTP(s)基础的JSON API的数据源。
开发者如何创建自己的Wasm FDW?
开发者可以克隆Postgres Wasm FDW模板,使用Rust构建自己的FDW,并在Supabase上使用。
Wasm FDW的安全性如何得到增强?
Wasm的沙箱执行环境和最小接口设计增强了FDW的安全性,确保代码在隔离环境中运行。