etcd_fdw
etcd分布式键值存储外部数据包装器
仓库
cybertec-postgresql/etcd_fdw
https://github.com/cybertec-postgresql/etcd_fdw
源码
etcd_fdw-0.0.1.tar.gz
etcd_fdw-0.0.1.tar.gz
概览
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8660 | etcd_fdw | 否 | 是 | 否 | 是 | 否 | 否 | - |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.0.1 | 1817161514 | etcd_fdw | - |
| RPM | PIGSTY | 0.0.1 | 1817161514 | etcd_fdw_$v | - |
| DEB | PIGSTY | 0.0.1 | 1817161514 | postgresql-$v-etcd-fdw | - |
构建
您可以使用 pig build 命令构建 etcd_fdw 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 etcd_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
来源:介绍博客、GitHub repo、v0.0.1 release
快速上手
1. 启用扩展
SQL
2. 创建外部数据包装器
SQL
3. 创建服务器
SQL
4. 创建外部表
SQL
5. 查询数据
SQL
6. 与 etcd 实时同步
在 PostgreSQL 外部所做的变更会立即可见:
BASH
SQL
参考
服务器选项
| 选项 | 必填 | 说明 |
|---|---|---|
connstr | 是 | etcd 端点地址(例如 127.0.0.1:2379) |
username | 否 | 认证用户名 |
password | 否 | 认证密码 |
ssl_ca | 否 | CA 证书文件路径 |
ssl_cert | 否 | 客户端证书文件路径 |
ssl_key | 否 | 客户端私钥文件路径 |
ssl_servername | 否 | TLS 验证使用的域名 |
connect_timeout | 否 | 连接超时时间(默认:10s) |
request_timeout | 否 | 请求超时时间(默认:30s) |
外部表选项
| 选项 | 默认值 | 说明 |
|---|---|---|
rowid_column | 必填 | 用作唯一行标识符的列 |
prefix | 无 | 仅包含具有此前缀的键 |
keys_only | false | 仅获取键,跳过值 |
revision | 0 | 从指定的 etcd 修订版本读取 |
key | \0 | 范围扫描的起始键 |
range_end | 无 | 范围扫描的终止键(不包含) |
consistency | l | l(线性一致性)或 s(串行化) |
查询下推
以下操作会下推至 etcd 执行以提升性能:
- WHERE:
=、>=、>、<=、<、BETWEEN、LIKE 'prefix%' - ORDER BY:远程排序
- LIMIT/OFFSET:远程分页
限制
- 不支持对键列执行
UPDATE操作。替代方案:先INSERT新键,再DELETE旧键。 - 需要 etcd v3 API。
版本说明
etcd_fdw 0.0.1 是第一个公开版本。它使用 pgrx 0.18.1;文档化 SQL surface 是上面的 FDW/server/table workflow。