读取矢量数据

使用说明

对接多种数据源并将数据抽取成要素数据集(FeatureRDD),为后续的分析做准备,SuperMap 为 FeatureRDD 提供了丰富的空间分析工具,具体参见“大数据矢量分析工具”。

要素数据集 (FeatureRDD) 是 iObjects for Spark 使用的基本数据模型,是数据读取、存储以及分析的入口。该工具支持对接多种数据源,目前支持:

  • 文件型数据源:UDB/UDBX、SimpleJson、CSV、GDB 、ShapeFile、DSF。
  • 数据库型数据源:达梦、华为云PostgreSQL、瀚高、神舟通用、禹贡、空天、人大金仓、Oracle 、PostGIS 、PostgreSQL、SQLSpatial、SQLPlus、MySQL、MongoDB、Hbase 、ElasticSearch 。

该工具在进行数据读取的同时,还支持 GeoSQL 能力,通过编写简单的 ECQL 语句进行数据过滤查询,实现按需读取数据,减少工作节点的计算压力。

参数说明

参数名 默认值 参数释义 参数类型
连接信息 访问数据源的连接信息,需要包含数据源类型、连接参数、数据集名字等信息。使用’—key=value’的方式设置,多个值使用’ ‘空格分隔。例如:
1. 连接 HBase 数据:
—providerType=hbase —hbase.zookeepers=127.0.0.1:2181 —hbase.catalog=testdata —dataset=DLTB
或者:
hbase —hbase.zookeepers=127.0.0.1:2181 —hbase.catalog=testdata —dataset=DLTB
2. 连接 DSF 数据(HDFS目录):
—providerType=dsf —path=hdfs://127.0.0.1:9000/data/vector/DLTB
或者:
dsf —path=hdfs://127.0.0.1:9000/data/vector/DLTB
3. 连接 DSF 数据(本地目录):
Linux系统下:
—providerType=dsf —path=file:////home/data/vector/Zoopt 或者 dsf —path=file:////home/data/vector/Zoopt
Windows系统下:
—providerType=dsf —path=file:///E:/data/vectordata/Zoopt 或者 dsf —path=file:///E:/data/vectordata/Zoopt
4.连接 GDB 数据:
—providerType=gdb —path=file:///F:/data/landuse2k/GDB/landuse.gdb —table=DLTB
5.连接 OracleSpatial 数据源:
—providerType=jdbc :
jdbc —host=127.0.0.1 —port=1521 —schema=testosp —database=orcl —user=testosp —password=testosp —dbtype=oracle —table=SMDTV(需要注意的是:有时数据集名称与数据集表名称不一致,此处需要填写数据集表名称。)
—providerType=sdx :
—providerType=sdx —server=127.0.0.1:1521/orcl —user=testosp —password=testosp —maxConnPoolNum=1 —dataset=SMDTV —dbType=ORACLESPATIAL
6.连接 PostGIS 数据:
—providerType=jdbc :
—providerType=jdbc —host=127.0.0.1 —port=5432 —schema=postgres —database=uitest —user=postgres —password=uitest —dbtype=postgis —dataset=DLTB
—providerType=sdx :
—providerType=sdx —server=127.0.0.1 —database=postgis —user=postgres —password=uitest —maxConnPoolNum=10 —dataset=DLTB —dbType=PGGIS
7.连接 UDB/UDBX 数据:
sdx —server=F:\data\landuse2k\UDB\landuse.udb —dataset=DLTB —dbType=udb
8.连接 ShapeFile 数据:
shape-file —path=file:///F:/data/landuse2k/shp
9.连接 Elasticsearch 数据:
—providerType=elastic —index=test —table=test —nodes=localhost —port=9200
String
数据查询条件
(可选)
数据查询条件,支持属性条件和空间关系查询, 例如:SmID<100、BBOX(the_geom, 120,30,121,31)、DLMC IN (‘有林地’, ‘果园’, ‘灌木林地’)。 String

输出结果

读取矢量数据工具的输出结果为要素数据集(FeatureRDD)。

数据源连接信息的详细释义

—providerType=hbase

参数名 参数释义
—hbase.catalog, —catalog, -C
(必填)
Hbase 目录表名
—dataset, —table
(必填)
需要读取的表名称
—hbase.zookeepers, —zookeepers, -Z HBase zookeepers 地址
—hbase.config.paths, —config-paths 指定 hbase-site.xml,core-site.xm l 等路径(可以是多个路径,以逗号分隔)

—providerType=dsf

参数名 参数释义
—path, -P, —url DSF 目录地址,本地目录前需要加 file://
—bounds, -B 地理范围查询的查询范围, as-dsf-rdd 为 true 时无效
—fields, —result-fields 需要读取的字段名称
—as-dsf-rdd 是否以 DSFFeatureRDD 方式读取,默认 false。如果为 true,则以 DSFFeatureRDD 读取,在进行两个数据集的空间关系或空间判断时,需要确保两个 DSFFeatureRDD 数据集的分区索引一致,否则用户可以设置为 false,以 FeatureRDD 方式读取,这样,在进行两个数据集的空间运算或判断时会统一建立分区索引

—providerType=csv

参数名 参数释义
—path, -P, —url
(必填)
csv 文件地址,本地目录前需要加 file://
—fields, -F 待导入的字段,以逗号分隔,csv 有表头时,传入字段名,并将 FirstRowIsField 设为 true,没表头时,按照列序,传入 col0,col1 等
—geofields, —geo-fields, -GF 待导入的空间信息字段,以逗号分隔。传入一列代表线或面数据,两列代表点数据,更多则无效。csv 有头时,传入字段名,并将 FirstRowIsField 设为 true,没头时,按照列序,传入 col0,col1 等
—firstRowIsField, —first-as-field, -FAF 第一行是否是表头,作为字段名
—idField, —id-field, -IF 指定 id 字段名,如果不指定默认是 uuid
—modifyDesFieldTypes, —des-field-type, -DFT 指定字段的字段类型,如不指定则 W 默认读取字段为字符串型,输入格式为’字段名->字段类型,字段名->字段类型’
—timeZoneOffset,—time-Zone-Offset,-TZO 当modifyDesFieldTypes参数中指定字段类型为date时,默认为UTC时间,可通过此参数进行时差换算,格式为“+/-hh:mm:ss”。例如换算为北京时间:—timeZoneOffset=+08:00:00,表示UTC+8小时。

—providerType=gdb

参数名 参数释义
—path, -P, —url
(必填)
GDB 文件夹地址,本地目录前需要加 file://
—dataset, —table
(必填)
GDB 中需要读取的数据集名称
—minPartitions, —min-part, -M Spark RDD 最小分区数,默认0

—providerType=jdbc

参数名 参数释义
—dbtype, —type, -T, —db-type
(必填)
支持PostGIS 和 OracleSpatial数据库类型,并且在集群模式下可以实现分布式读写
—dataset, —table
(必填)
需要读取的表名称
—host
(必填)
数据库服务地址
—port
(必填)
数据库服务端口号,默认为0
—database, —db 数据源连接的数据库名
—schema 要访问的数据库模式
—user, -U 数据源连接的数据库名
—password, —pwd 登录数据库的密码
—numPartitions, —num-parts, -N 分区数目,默认为0
—partitionField, —part-field 用于分区的字段名称
—predicates 分区条件数组

—providerType=sdx

参数名 参数释义
—server, -S
(必填)
数据库引擎服务地址或文件路径
—dbType, —type, -T, —db-type
(必填)
数据库引擎类型,支持 udb/udbx、SQLPlus、MongoDB、达梦、禹贡、华为云数据库PostgreSQL等多种数据库引擎类型
—dataset, —dt
(必填)
需要读取的数据集名称
—driver 数据源连接所需的驱动名称
—database, —db 数据源连接的数据库名
—alias, -A 数据源别名
—user, -U 数据源连接的数据库名
—password, —pwd 登录数据库的密码
—numPartitions, —num-parts, -N 分区数目,默认为0
—partitionField, —part-field 用于分区的字段名称,默认用 SmID 字段,但如果数据库引擎 (例如 PGGIS)中没有 SmID,需要用户指定分区字段
—idField, —id-field 用于要素对象中读取唯一的要素 ID 的字段。必须确保字段值是唯一的。如果为空,会使用默认的 SmID 字段值

—providerType=shapefile

参数名 参数释义
—path, -P, —url
(必填)
Shape File 所在文件夹地址,本地目录前需要加 file://

—providerType=simplejson

参数名 参数释义
—path, -P, —url Simple Json 文件或目录地址,本地目录前需要加 file://
—minPartitions, —min-part Spark RDD 最小分区数,默认为0
—metaInfo, —meta-info, —meta Simple Json 文件元信息或元信息地址,用户可以指定独立的 Simple Json 文件元信息
—idField, —id-field, -IF 指定 feature ID 的字段,如果 SimpleJson 的对象没有 featureID,可以通过 —id-field 指定一个字段用于构造 featureID, 但用户需确保字段值唯一

—providerType=elasticsearch

参数名 参数释义
—ProviderType
(必填)
参数类型,必须设置为 elastic 或者 elasticsearch
—dataset, —table
(必填)
指定要读取的数据表名
—index
(必填)
索引名称
—es.nodes, —nodes
(必填)
ES 服务器地址
—es.port, —port
(必填)
端口
—es.batch.size.bytes, —batch-size-bytes, —BSB 批量写入的大小,默认为1mb
—es.batch.size.entries, —batch-size-entries, —BSE 与 es.batch.size.bytes 相匹配,执行批量更新,默认为1000
—es.internal.es.cluster.name, —cluster-name, CN 集群名,集群版本为5.x和6.x读写需要设置,7.x版本可设置可以不设置