geoserver ——数据商店
目录
数据商店
应用程序架构映射文件要求您在该sourceDataStores
部分中指定数据源。对于GeoServer简单功能,这些功能是使用Web界面配置的,但由于app-schema缺少Web配置界面,因此必须通过编辑映射文件来配置数据存储。
许多配置选项可以通过使用Property Interpolation进行外部化。
DataStore元素
一个DataStore
配置由
- an
id
,这是一个不透明的标识符,用于引用映射文件中其他位置的数据存储,以及 - 一个或多个
Parameter
元件,其每个都包含name
和value
的一个参数,和用于配置数据存储。
DataStore
元素的轮廓:
< DataStore >
< id > datastore </ id >
< parameters >
< Parameter >
< name > ... </ name >
< value > ... </ value >
</ Parameter >
...
</ parameters >
</ DataStore >
参数顺序不重要。
数据库选项
PostGIS,Oracle和ArcSDE等数据库共享一些常见或类似的配置选项。
name |
含义 | value 例子 |
---|---|---|
dbtype |
数据库类型 | postgisng ,Oracle ,arcsde |
host |
数据库服务器的主机名或IP地址 | database.example.org , 192.168.3.12 |
port |
数据库服务器上的TCP端口 | 如果省略则默认:1521 (Oracle),5432 (PostGIS),5151 (ArcSDE) |
database |
PostGIS / Oracle数据库 | |
instance |
ArcSDE实例 | |
schema |
数据库架构 | |
user |
用于登录数据库服务器的用户名 | |
passwd |
用于登录数据库服务器的密码 | |
Expose primary keys |
主键可用于映射的列 | 默认false 设置为true 在映射中使用主键列 |
PostGIS的
将参数dbtype
设置postgisng
为使用与GeoServer 2.0及更高版本捆绑在一起的PostGIS NG(新一代)驱动程序。
例:
< DataStore >
< id > datastore </ id >
< parameters >
< Parameter >
< name > dbtype </ name >
< value > postgisng </ value >
</ Parameter >
< Parameter >
< name > host </ name >
< value > postgresql 。例子。>
</ Parameter >
< Parameter >
< name > port </ name >
< value > 5432 </ value >
</ Parameter >
< Parameter >
< name > database </ name >
< value > test </ value >
</ parameter >
< 参数>
< 名称>用户</ name>
< value > test </ value >
</ Parameter >
< Parameter >
< name > passwd </ name >
< value > test </ value >
</ Parameter >
</ parameters >
</ DataStore >
注意
PostGIS支持包含在主GeoServer包中,因此不需要单独的插件。
甲骨文
将参数dbtype
设置Oracle
为使用与GeoServer 2.0及更高版本兼容的Oracle Spatial NG(新一代)驱动程序。
例:
< DataStore >
< id > datastore </ id >
< parameters >
< Parameter >
< name > dbtype </ name >
< value > Oracle </ value >
</ Parameter >
< Parameter >
< name > host </ name >
< value > oracle 。例子。组织<>
</ Parameter >
< Parameter >
< name > port </ name >
< value > 1521 </ value >
</ Parameter >
< Parameter >
< name > database </ name >
< value > demodb </ value >
</ Parameter >
< 参数>
< 名称>用户</ name>
< value > orauser </ value >
</ Parameter >
< Parameter >
< name > passwd </ name >
< value > s3cr3t </ value >
</ Parameter >
</ parameters >
</ DataStore >
注意
您必须安装Oracle插件才能连接到Oracle Spatial数据库。
ArcSDE的
此示例连接到ArcSDE数据库:
< DataStore >
< id > datastore </ id >
< parameters >
< Parameter >
< name > dbtype </ name >
< value > arcsde </ value >
</ Parameter >
< Parameter >
< name > server </ name >
< value > arcsde 。例子。组织<>
</ Parameter >
< Parameter >
< name > port </ name >
< value > 5151 </ value >
</ Parameter >
< Parameter >
< name > instance </ name >
< value > sde </ value >
</ parameter >
< 参数>
< 名称>用户</ name>
< value > demo </ value >
</ Parameter >
< Parameter >
< name > password </ name >
< value > s3cr3t </ value >
</ Parameter >
< Parameter >
< name > datastore 。allowNonSpatialTables </ name >
< value > true </ value >
<>
</ parameters >
</ DataStore >
非空间表的使用有助于传递使用非空间属性的应用程序模式。
注意
您必须安装ArcSDE插件才能连接到ArcSDE数据库。
Shape文件
Shapefile数据源由参数的存在标识,参数url
的值应该是.shp文件的文件URL。
在此示例中,仅url
需要参数。其他是可选的:
< DataStore >
< id > shapefile </ id >
< parameters >
< Parameter >
< name > url </ name >
< value > file :/ D :/ Workspace / shapefiles / VerdeRiverBuffer 。shp </ value >
</ Parameter >
< Parameter >
< name > memory 映射 缓冲区</ name >
< 值> false </ value >
</ 参数>
< 参数>
< 名称> 创建 空间 索引</ name >
< 值> true </ value >
</ 参数>
< 参数>
< 名称> 字符集</ name >
< value >ISO - 8859- 1 </ value >
</ Parameter >
</ parameters >
</ DataStore >
注意
在url
这种情况下转换为URL标记一个Windows文件系统路径的一个例子。
注意
Shapefile支持包含在主GeoServer包中,因此不需要单独的插件。
属性文件
属性文件通过指定配置directory
是一个file:
URI。
- 如果目录以
file:./
它开头,则它相对于映射文件目录。(这是一个无效的URI,但它有效。)
例如,以下数据存储用于访问与映射文件位于同一目录中的属性文件:
< DataStore >
< id > propertyfile </ id >
< parameters >
< Parameter >
< name > directory </ name >
< value > file :./ </ value >
</ Parameter >
</ parameters >
</ DataStore >
属性文件数据存储包含存储在目录中的.properties文件中的所有要素类型。例如,如果目录包含River.properties和station.properties,数据存储将能够为他们服务的功能类型River
和station
。其他文件扩展名将被忽略。
注意
属性文件支持包含在主GeoServer包中,因此不需要单独的插件。
JNDI
jndiReferenceName
使用a 定义JDBC数据存储允许您使用servlet容器提供的连接池。这允许详细配置连接池参数和共享数据源之间的连接,甚至是servlet之间的连接。
要使用JNDI连接提供程序:
- 指定
dbtype
参数以指示数据库类型。这些值与上面的非JNDI示例相同。 jndiReferenceName
在servlet容器中为您设置。支持缩写形式jdbc/oracle
(如Tomcat)和规范形式java:comp/env/jdbc/oracle
。
此示例使用JNDI获取Oracle连接:
< DataStore >
< id > datastore </ id >
< parameters >
< Parameter >
< name > dbtype </ name >
< value > Oracle </ value >
</ Parameter >
< Parameter >
< name > jndiReferenceName </ name >
< value > jdbc / oracle </ value >
</ Parameter >
</ parameters >
</ DataStore >
您的servlet容器我要求您resource-ref
在最后添加一个部分geoserver/WEB-INF/web.xml
。(Tomcat需要这个,Jetty没有。)例如:
< resource - ref >
< description > Oracle Spatial 数据源</ description >
< res - ref - name > jdbc / oracle </ res - ref - name >
< res - type > javax 。sql 。DataSource </ res - type >
< res - auth > Container </res - auth >
</ resource - ref >
以下是Tomcat 6上下文的示例,/etc/tomcat6/server.xml
其中包括Oracle连接池:
< 背景
路径= “/的GeoServer”
的docBase = “/ USR /本地/ GeoServer的”
crossContext = “假”
重新加载= “假” >
< 资源
名称= “JDBC / ORACLE”
AUTH = “容器”
类型= “javax.sql中。 DataSource“
url = ”jdbc:oracle:thin:@YOUR_DATABASE_HOSTNAME:1521:YOUR_DATABASE_NAME“
driverClassName = ”oracle.jdbc.driver.OracleDriver“
username = ”YOUR_DATABASE_USERNAME“
password = “YOUR_DATABASE_PASSWORD”
maxActive = “20”
maxIdle = “10”
minIdle = “0”
maxWait = “10000”
minEvictableIdleTimeMillis = “300000”
timeBetweenEvictionRunsMillis = “300000”
numTestsPerEvictionRun = “20”
poolPreparedStatements = “true”
maxOpenPreparedStatements = “100”
testOnBorrow = “true”
validationQuery = “SELECT SYSDATE FROM DUAL” />
</ Context >
防火墙超时可以静默切断与数据库的空闲连接,并导致GeoServer挂起。如果GeoServer与数据库之间存在防火墙,则配置为在防火墙可以丢弃空闲连接之前关闭空闲连接的连接池将阻止GeoServer挂起。此JNDI连接池配置为在5到10分钟后关闭空闲连接。
另请参阅使用Tomcat设置JNDI连接池。
暴露主键
默认情况下,GeoServer使用主键隐藏数据库列的存在。要使此类列可用于app-schema映射文件,请将data store参数设置为:Expose primary keys
true
< Parameter >
< name > 显示 主 键</ name >
< value > true </ value >
</ Parameter >
众所周知,这可以与PostGIS,Oracle和JNDI数据存储一起使用。
MongoDB的
MongoDB数据库的数据存储配置如下所示:
<sourceDataStores>
<DataStore>
<id> data_source </ id>
<parameters>
<Parameter>
<name> data_store </ name>
<value> MONGO_DB_URL </ value>
</ Parameter>
<Parameter>
<name> namespace </ name >
<value> NAME_SPACE </ value>
</ Parameter>
<Parameter>
<name> schema_store </ name>
<value> SCHEMA_STORE </ value>
</ Parameter>
<Parameter>
<name> data_store_type </ name>
<value> complex </ value>
</ Parameter>
</ parameters>
</ DataStore>
</ sourceDataStores>
查看MongoDB教程,了解有关如何将MongoDB与app-schema一起使用的更详细说明。
注意
您必须安装MongoDB插件才能连接到MongoDB数据库。
转载自:https://blog.csdn.net/qq_36178899/article/details/81351989