使用说明
对接多种数据源并将数据抽取成要素数据集(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版本可设置可以不设置 |