连接数据库:MySQL、SQL Server、Oracle、Hana
填主机、端口、库名和账号建立连接;通道里选一张表或写一条 SQL,加过滤、排序和增量列;定义结构、绑定列后数据按计划进表。
前提
超级表跑在你的电脑上,所以这台电脑必须能连到数据库:同一个内网,或者数据库开放了公网访问并给了白名单。连不上的第一原因永远是网络和防火墙,不是配置。准备好这五样:
- 服务器 Host(IP 或域名)
- 端口(MySQL 默认 3306,SQL Server 1433,Oracle 1521,Hana 30015 一类)
- 数据库名 Schema
- 用户名、密码——建议用只读账号
第 1 步:连接配置
表格右上角「数据同步 → 新建同步」,在「数据库」一组里选类型,填上面五项和一个「备注」(给这个连接起个名字,以后别的表复用它时靠这个认)。填完点「下一步(通道配置)」。
第 2 步:通道配置
两种取数方式:
- 选择数据表:从库里列出的表中选一张;可以「添加过滤」「添加排序」限定范围。
- 自定义 SQL:直接写查询,
select * from orders where status = 'paid'这样。复杂的关联和聚合在这里做,超级表只接结果。
再设两样:
- 同步频率:多久取一次。
- 增量列:通常是自增 ID 或更新时间列。设了增量列,每次只取比上次新的行,不会把整张表重拉一遍。第一次同步全量历史时先不要填增量列,拉完再编辑通道加上。
第 3 步:定义数据结构
预览取回的前几行,勾选要进表的字段。这一步看不到数据,回头检查网络、账号和 SQL。
第 4 步:绑定数据列
字段对到表的列。列名默认沿用字段名,可以双击改;点完成回到表格。
保持数据一致
- 数据库里一条记录被更新时,同步进来是新的一行还是覆盖原行,取决于有没有序号列:把数据库的主键设成序号列,同一主键只保留最新。
- 数据库里删掉的行不会从表里消失。需要「以数据库为准」的镜像,用通道的「替换」方式或定期清空重拉。
- 表里的公式列、视图、看板都建在同步表之上,同步更新不会碰它们。
排错
| 现象 | 通常是 |
|---|---|
| 连接配置这一步过不去 | 网络不通、端口被防火墙拦、账号密码错。先用数据库客户端在这台电脑上试一次 |
| 通道配置看不到表 | 账号没有该库的读权限,或 Schema 填错 |
| 同步异常 | 数据库重启、密码改了、SQL 引用的列被删。点状态看详情 |
| 数据越来越多、有重复 | 没设序号列,或增量列选错 |