协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)

协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
PostgreSQL及对应版本的PostGIS下载
9.2、9.6、10.0、11、12共5个版本,根据自己的ArcGIS及ArcGIS Pro选择适合的版本下载即可。
0
免费资源

既然有人问,又刚好简单地实战过,那就以小白的身份分享一下吧~

PostgreSQL是我接触的第3个可ArcGIS直连的数据库软件。最开始使用的是Oracle,因为不熟,经常一出问题整个办公室几十号人等1人;之后是SQLServer,头疼的表空间和开一天电脑啥也不干噌噌噌上百GB……

国土三调期间接触到了PostgreSQL,简直不要太爽:图斑解译、调绘后修改、外业举证图斑统计(工作量)等等等等,免去了数据汇总、接边等工作,节省了不少时间。我记着三调中期有单位还就ArcMap直连Oracle发表了省级期刊论文。再到后来的全省风风火火的“云宅调”,简直不要太效率,直接降低了技术人员合并数据和村民着急下地干农活之间的时间冲突。

本教程基于ArcGIS以及ArcGIS Pro在线/离线帮助,结合以往使用经验总结编写,文中提及链接均有参考。

1 废话篇

PostgreSQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值型、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等,也包含各种文档。

作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据。一些PostgreSQL系统的极限值如下表所列:

极限值:
最大单个数据库大小不限
最大数据单表大小32 TB
单条记录最大1.6 TB
单字段最大允许1 GB
单表允许最大记录数不限
单表最大字段数250 – 1600 (取决于字段类型)
单表最大索引数不限

由于PostgreSQL的优异性能,它已赢得最终用户和业内的多次大奖,包括Linux新媒体(Linux New Media)的最佳数据库奖和5次Linux期刊编辑选出的最佳数据库奖。

2 安装篇

安装前提示:PostgreSQL和PostGIS的安装均为 Next → Next … → Finish


安装前首先查询自己ArcGIS支持的PostgreSQL版本,譬如我的ArcGIS Desktop10.8支持9.6/10/11三个版本。

路径:\ArcGIS\Desktop10.8\DatabaseSupport\PostgreSQL

小提示① ArcGIS订阅用户请从My Esri下载相关软件更方便。

小提示② 官方教程:PostgreSQL 中地理数据库入门—ArcMap从 ArcGIS 连接到 PostgreSQL—ArcGIS Pro

小提示③ 如果同时安装了ArcGIS和ArcGIS Pro,请阅读适用于 ArcGIS 10.8.x 以及 ArcGIS Pro 2.5、2.6 和 2.7 的 PostgreSQL 数据库要求—系统要求PostgreSQL 的 ArcGIS 10.9 和 ArcGIS Pro 2.8 要求—ArcGIS Enterprise | ArcGIS Enterprise 文档,以选择适合的版本。

本次安装选择 PostgreSQL 11.7 + PostGIS 3.0.1 的组合,点我下载。


图片[1]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
ArcGIS Desktop安装目录下受支持的PostgreSQL版本

2.1 安装PostgreSQL

PostgreSQL下载地址(官网),本文下载链接见文章开头。

图片[2]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
PostgreSQL下载页
图片[3]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
下一步
图片[4]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
设置安装路径,下一部
图片[5]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
勾选需要安装的部件,下一步
图片[6]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
设置数据存放路径,下一步
图片[7]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
设置数据库超级管理员密码,下一步
图片[8]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
设置端口,默认5432(公网的话记得防火墙放行),下一步
图片[9]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
设置地区,默认即可(印象中选Chinese安装环节就出问题,自己尝试),下一步
图片[10]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
安装概览,确认一下,下一步
图片[11]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
再次跟你啰嗦一下
图片[12]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
安装ing…

安装过程中建议关闭杀毒软件,否则会这样:

图片[13]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
全部允许即可
图片[14]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
安装完成默认会继续安装Stack Builder,建议取消勾选,完成

如选择继续(强烈建议必要继续,跳到2.2节去接着安装PostGIS),但如果你好奇那就接着看:

Stack Builder就是一个可以用来安装一些附加软件的工具。

图片[15]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
勾选已安装的数据库软件,下一步
图片[16]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
正在获取软件,等待ing
图片[17]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
你可以选择安装一些其他插件(润滑油)、甚至其他版本的PostgreSQL
图片[18]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
你也可以选择接下来我们要单独安装的必要组件PostGIS
图片[19]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
确认选择安装的包并选择下载路径,下一步

经过7分钟的漫长等待,我还是建议你强制结束!

图片[20]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
开始安装
图片[21]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
6分钟后

2.2 安装PostGIS

PostGIS下载地址(官网),本文下载链接见文章开头。

PostgreSQL与PostGIS版本兼容关系(截至2022年6月10日)

PostgreSQL versionPostGIS 1.3 EOLPostGIS 1.4 EOLPostGIS 1.5 EOLPostGIS 2.0 EOLPostGIS 2.1 EOLPostGIS 2.2 EOLPostGIS 2.3 EOLPostGIS 2.4 EOLPostGIS 2.5PostGIS 3.0PostGIS 3.1PostGIS 3.2PostGIS 3.3
PostGIS release date2007/08/092009/07/242010/02/042012/04/032013/08/172015/10/072016/09/262017/09/302018/09/232019/10/202020/12/182021/12/182022/XX/XX
15NoNoNoNoNoNoNoNoNoNoNoYes*Yes
14NoNoNoNoNoNoNoNoNoNoYesYesYes
13NoNoNoNoNoNoNoNoNoYesYesYesYes
12NoNoNoNoNoNoNoNoYesYesYesYesYes
11NoNoNoNoNoNoNoYes*YesYesYesYesYes
10NoNoNoNoNoNoYes (not recommended)YesYesYesYesYes
9.6 EOLNoNoNoNoNoYes (not recommended)YesYesYesYesYesYes
9.5 EOLYesNoNoNoNoYesYesYesYesYesNoNo
9.4 EOLNoNoNoNoYesYesYesYesYesNoNoNo
9.3 EOLNoNoNoNoYesYesYesYesNoNoNoNo
9.2 EOLNoNoYes (not recommended)YesYesYesYesNoNoNoNoNo
9.1 EOLNoNoYesYesYesYesNoNoNoNoNoNo
9.0 EOLNoNoYesYes (not recommended)Yes (not recommended)NoNoNoNoNoNoNo
8.4 EOLYesYesYesYes (not recommended)NoNoNoNoNoNoNoNo
8.3 EOLYesYesYesNoNoNoNoNoNoNoNoNo
8.2 EOLYesYesNoNoNoNoNoNoNoNoNoNo
8.1 EOLYesNoNoNoNoNoNoNoNoNoNoNo
8.0 EOLYes (not windows)NoNoNoNoNoNoNoNoNoNoNo
7.2-7.4 EOLYes (not windows)NoNoNoNoNoNoNoNoNoNoNo
PostgreSQL与PostGIS版本兼容关系(截至2022年6月10日)
图片[22]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
你要是不同意也不让你继续
图片[23]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
可以选择安装完成自动创建一个空样例空间数据库
图片[24]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
没有自动识别到PostgreSQL安装目录,手动选择到PostgreSQL安装目录(到版本号),因为PostgreSQL是支持多版本共存的
图片[25]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
输入用户名postgres、密码123,端口5432,密码和端口都是自己安装PostgreSQL时设置的
图片[26]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
设置空样例空间数据库名称(可用字符:英文、下划线),然后安装
图片[27]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
安装ing…

以下3个弹窗提醒,通通“是(Y)”,大概意思就是告诉你:PostgreSQL不仅仅支持矢量导入、还支持栅格导入。

图片[28]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
先说你要注册GDAL_DATA环境变量
图片[29]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
又告诉你栅格驱动默认不开启,你需要设置GDAL_ENABLED_DRIVES环境变量
图片[30]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
最后说默认情况下数据库外的栅格是禁用的,你需要将ENABLE_OUTDB_RASTERS的环境变量设置成1
图片[31]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
安装完成,Close

安装过程到此结束!

2.3 pgAdmin 4

可使用pgAdmin来管理你的所有数据库,包括刚刚创建的postgis_30_sample

图片[32]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
开始菜单打开pgAdmin 4
图片[33]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
让你设置一个pgAdmin的密码
图片[34]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
输入PostgreSQL数据库超级管理员密码以登录
图片[35]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
我们可在此执行维护、备份、恢复、删除等操作

2.4 ArcGIS连接

输入服务器地址、数据库用户名、密码以连接。

图片[36]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
空样例数据库没有创建额外用户,使用超管身份登录
图片[37]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
连接到样例数据库成功,可导入数据地理测试

3 配置篇

以下内容登录可见,输入手机号码自动弹出验证码发送按钮。无需尝试其他登录方式,本站点已按《中华人民共和国网络安全法》第24条之规定要求用户绑定手机号码才可访问或下载。

4 创建篇

4.1 创建地理数据库

可以使用创建企业级地理数据库地理处理工具在 PostgreSQL 中创建数据库、sde 用户、sde 方案及地理数据库。

  1. 启动 ArcGIS Desktop 客户端或 ArcGIS Pro,然后打开创建企业级地理数据库工具。
  2. 需要以 postgres 超级用户身份连接 PostgreSQL 数据库集群来提供信息,以创建数据库和 sde 用户。 此外,还必须指向在授权 ArcGIS Server 站点时生成的密钥代码文件。可以使用创建企业级地理数据库工具帮助确定必须提供的信息。
  3. 单击确定 (ArcMap) 或运行 (ArcGIS Pro)。

在 PostgreSQL 中创建数据库、sde 用户、sde 方案及名为sdb的地理数据库。

图片[38]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
创建企业级地理数据库
图片[39]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
创建ing
图片[40]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
成功创建

4.2 创建拥有数据的用户

存储在地理数据库中的数据应归 sde 用户之外的其他用户所有。 使用创建数据库用户地理处理工具在 PostgreSQL 数据库集群中创建用户并在新建数据库中创建方案。

但是要创建用户,必须先以数据库管理员的身份连接地理数据库。 此时,您可以 postgres 超级用户或 sde 用户身份进行连接,因为创建企业级地理数据库工具将授予 sde 用户超级用户权限。

创建以 postgres 或 sde 用户登录的数据库连接。

  1. 连接到数据库。 在 ArcMap 中,展开 ArcMap 目录树中的数据库连接节点,然后双击添加数据库连接。 在 ArcGIS Pro 中,右键单击目录窗格中的数据库文件夹,然后单击新建数据库连接。将打开数据库连接对话框。
  2. 提供以 PostgreSQL 超级用户连接新建数据库所需的信息。在本例中,以 postgres 用户连接新建的 sdb 地理数据库。
    由于要在地理处理工具中使用此连接文件,因此必须选中保存用户名和密码。 但是运行此工具后,您应该在连接文件中取消选中此选项并以不同用户进行连接,或者删除此连接文件从而防止可以访问此文件的其他用户以数据库管理员登录地理数据库。
  3. 单击确定创建连接。
图片[41]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云

数据库连接下出现新建的连接文件。

图片[42]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云

接下来,您可以运行创建数据库用户工具。

  1. 打开创建数据库用户。
  2. 将新的连接文件拖至创建数据库用户工具的输入数据库工作空间文本框中。
  3. 数据库用户文本框中输入新用户的名称,然后在数据库用户密码文本框中输入新用户的密码。在本例中,已经将在最后几步中创建的连接文件添加到工具中,并且提供了用户名 (xiaoming) 和密码。 由于尚未创建任何数据库角色,因此角色名称未指定。
  4. 单击确定 (ArcMap) 或运行 (ArcGIS Pro)。
图片[43]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
创建数据库用户

在 PostgreSQL 中创建新用户和方案,而且为公共角色自动授予对方案的 USAGE 权限。

5 连接篇

5.1 ArcGIS Desktop

由于具有可以在新地理数据库中添加数据的用户,则可以该用户连接数据库。 最简单的方法是修改先前创建的连接文件。

打开现有数据库连接,并更改用户名和密码。

  1. 右键单击数据库连接,然后单击连接属性
  2. 用户名密码值更改为新用户的值。
  3. 单击确定以新用户的身份进行连接。
图片[44]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
ArcGIS Desktop以xiaoming身份修改或新建数据库连接

接下来,您可以使用此连接向地理数据库中添加数据。

5.2 ArcGIS Pro

使用数据库连接对话框或创建数据库连接工具来添加数据库连接。 以下步骤介绍了如何使用数据库连接对话框。

  1. 右键单击目录窗格中的数据库,然后单击新建数据库连接
  2. 数据库平台下拉列表中选择 PostgreSQL
  3. 数据源文本框中,输入安装 PostgreSQL 的服务器的数据库集群名称或 IP 地址。例如,如果 PostgreSQL 数据库集群名为 ficus,请在数据源文本框中输入 ficus。 如果指定 IPV6 地址,则要用括号将地址括起来。 例如,如果服务器的 IPV6 地址是 1111:aa1:0:1:f111:a222:33f3:b4bb,请在数据源文本框中输入 [1111:aa1:0:1:f111:a222:33f3:b4bb]。注:如果 PostgreSQL 数据库集群监听的不是默认端口 (5432),请将端口号包括在实例内。 例如,如果 PostgreSQL 安装在服务器 mamabear 上,且监听端口 49200,请在数据源文本框中键入 mamabear,49200。
  4. 身份验证类型中选择数据库身份验证
  5. 用户名密码文本框中分别输入有效的数据库用户名和密码。
  6. 如果不希望将登录信息保存为连接的一部分,请取消选中保存用户名和密码;这样做可帮助保持数据库的安全性。 但是,如果执行此操作,则系统会在每次连接时提示您提供用户名和密码。注:对于为 ArcGIS web 服务提供数据库访问权限的连接文件,或希望使用搜索 ArcGIS Pro 找到通过此连接文件访问的数据,都必须选中保存用户名和密码
  7. 输入或选择想要连接到的 PostgreSQL 数据库集群中的数据库的名称。
  8. 单击确定进行连接。

图片[45]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
ArcGIS Pro以xiaoming身份修改或新建数据库连接

5.2 ArcGIS Server

ArcGIS Server 包括 PostgreSQL 客户端文件;因此,您无需下载和复制 PostgreSQL 客户端文件即可进行连接。

从其他客户端进行连接时,请确保更改 PostgreSQL pg_hba.conf 文件并确保必要登录角色或组角色具有数据库的 CONNECT 权限

如果希望发布到 ArcGIS Server 的服务使用 PostgreSQL 中数据库或地理数据库的数据,则请将数据库注册到您的 ArcGIS Server 站点。 有关说明,请参阅管理注册的数据存储


接下来,您可往数据库里添加数据并邀请同事一起编辑。

图片[46]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
ArcGIS Desktop导入数据并编辑
图片[47]-协同编辑・GISer也能居家办公丨ArcGIS直连PostgreSQL(Windows篇)-地理信息云
ArcGIS Pro导入数据并编辑

© 版权声明
THE END
喜欢就支持一下吧
点赞25 分享
评论 抢沙发

请登录后发表评论