跳转到内容

数据编辑器 — 概览

你从 Pier 部署的每个数据库服务都会获得一个 数据 标签页。打开它即可浏览结构、逐页查看行或文档,并就地运行查询 — 无需安装 DBeaver、无需把端口暴露到互联网,也无需在旁边再运行一个 Adminer/pgweb 容器。

它是运行你容器的同一个 Rust 二进制文件的一部分。访问受 Pier 的 RBAC 管控,你通过运行器执行的每条查询都会被记录到审计日志中。

引擎Pier 如何连接浏览查询运行器
PostgreSQL(含 PostGIS、TimescaleDB)通过 TCP 使用原生 sqlx 驱动数据库 · 模式 · 表 · 视图 · 结构 · 行任意 SQL
MySQL / MariaDB通过 TCP 使用原生 sqlx 驱动数据库 · 表 · 视图 · 结构 · 行任意 SQL
MongoDB容器内的 mongosh(docker-exec)数据库 · 集合 · 文档mongosh 脚本
Redis / Valkey通过 TCP 使用原生 redis 客户端键(SCAN) · 按类型识别的值 · TTL原始命令

SQL 引擎和 Redis 使用 原生 Rust 驱动;MongoDB 则通过官方镜像中已经存在的 mongosh 来驱动,因此 Pier 避免了把一个庞大的原生 Mongo 驱动拉进二进制文件。

目录中的其他数据库引擎 — Cassandra/ScyllaDBClickHouse — 可以由 Pier 部署和管理,但目前还没有 数据 标签页;现阶段请用它们各自的客户端来浏览。

  1. 打开一个数据库 资源(任何你从 Databases 目录类别部署的服务)。
  2. 点击 数据 标签页。该标签页只会为数据库服务出现。
  3. Pier 会检测引擎并显示匹配的视图:
    • SQL 引擎 → 一个模式/表浏览器,附带就地的 SQL Runner
    • MongoDB → 一个数据库/集合浏览器,附带 Mongo Shell
    • Redis → 一个键浏览器,附带命令框。

Pier core 原生运行在主机上,与 Docker 守护进程并列。私有数据库服务不会发布到主机端口,因此 Pier 通过 pier-net Docker 网络 触达它们,拨号到容器的内部 IP 和端口(例如 543233066379)。如果某个端口 确实 被发布了,则使用回环地址(127.0.0.1:{host_port})作为回退方案。

凭据从服务的 加密环境POSTGRES_PASSWORDMYSQL_ROOT_PASSWORDMONGO_INITDB_ROOT_PASSWORDREDIS_PASSWORD、……)中读取,并在请求时在内存中解密。它们绝不会在 UI 中显示,也不会写入日志。

由于一切都在服务器端通过内部网络进行,你无需把数据库暴露到互联网 即可检视它。

数据编辑器是一个 80% 工具:它覆盖日常操作 — 瞄一眼几行数据、检查某个结构、运行一条快速的 SELECT、修复一条记录、检视某个键。它有意 不去 取代 TablePlus/DataGrip/Compass 在 ER 图、查询计划分析或结构迁移方面的功能。

对于一个自托管的 PaaS,这正是恰当的范围:大多数时候你只是想不离开仪表盘就看到自己的数据。