使用Wasm的Postgres外部数据包装器

使用Wasm的Postgres外部数据包装器

💡 原文英文,约1400词,阅读约需5分钟。
📝

内容提要

外部数据包装器(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的安全性,确保代码在隔离环境中运行。

🏷️

标签

➡️

继续阅读