java 创建数据库索引_创建索引表

1. 创建SimpleFeatureType

HBase Ganos API通过索引表来存储和查询数据。用户通过调用DataStore的createSchema(SimpleFeatureType)方法来创建索引。SimpleFeatureType定义Ganos中SimpleFeature的模式,由一系列常见的属性组成。 HBase Ganos支持所有标准GeoTools属性类型,同时也扩展了一些其他属性类型。在HBase Ganos通过Geomesa提供的SimpleFeatureTypes类来创建SimpleFeatureTypes的实例:

importorg.locationtech.geomesa.utils.interop.SimpleFeatureTypes;

SimpleFeatureTypes.createType("sft_name","dtg:Date,*geom:Point:srid=4326,name1:type1,name2,type2,...,nameN,typeN");

上例中我们创建了一个名为sft_name的SimpleFeatureType,该SimpleFeatureType包含了一个时间字段(dtg)、空间字段(geom,点要素类型,空间左边参考4326)以及若干属性字段(name1、name2、…)。

HBase Ganos支持的类型列表如下:

HBase Ganos类型

Java类型

是否支持创建索引

String

java.lang.String

Yes

Integer

java.lang.Integer

Yes

Double

java.lang.Double

Yes

Long

java.lang.Long

Yes

Float

java.lang.Float

Yes

Boolean

java.lang.Boolean

Yes

UUID

java.util.UUID

Yes

Date

java.util.Date

Yes

Timestamp

java.sql.Timestamp

Yes

Point

org.locationtech.jts.geom.Point

Yes

LineString

org.locationtech.jts.geom.LineString

Yes

Polygon

org.locationtech.jts.geom.Polygon

Yes

MultiPoint

org.locationtech.jts.geom.MultiPoint

Yes

MultiLineString

org.locationtech.jts.geom.MultiLineString

Yes

MultiPolygon

org.locationtech.jts.geom.MultiPolygon

Yes

GeometryCollection

org.locationtech.jts.geom.GeometryCollection

Yes

Geometry

org.locationtech.jts.geom.Geometry

Yes

List[A]

java.util.List

Yes

Map[A,B]

java.util.Map

No

Bytes

byte[]

No

注意:

geom为必需指定属性,而且一次只能对一个空间类型字段创建索引,此字段会被应用于主时空索引系统中(Z2、Z3、XZ2、XZ3)。

日期类型Date字段可以用于主时空索引,也可用作普通属性索引

2. 配置索引参数

创建索引所需要的一些列参数都通过设置SimpleFeatureType的静态属性来指定:

指定属性索引HBase Ganos允许对普通属性创建索引,这样在不指定时空参数的情况下可以大大提高查询效率,如下例单独对name字段创建索引:

SimpleFeatureTypesft=...

sft.getDescriptor("name").getUserData().put("index","true");

指定压缩方式通过设置适当的用户数据提示或通过命令行选项,可以在创建新的SimpleFeatureType时启用HBase文件压缩。有效的压缩类型是snappy,lzo,gz,bzip2,lz4或zstd。

SimpleFeatureTypesft=....;

sft.getUserData().put("geomesa.table.compression.enabled","true");

sft.getUserData().put("geomesa.table.compression.type","snappy");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值