21.3. 以编程方式使用Lambda数据存储

21.3.1. 创建数据存储

假定GeoMesa代码位于类路径上,可以通过常规的GeoTools发现方法获得Lambda数据存储的实例:

Map<String, String> parameters = new HashMap<>;
parameters.put("lambda.accumulo.instance.name", "myInstance");
parameters.put("lambda.accumulo.zookeepers", "zoo1,zoo2,zoo3");
parameters.put("lambda.accumulo.user", "myUser");
parameters.put("lambda.accumulo.password", "myPassword");
parameters.put("lambda.accumulo.tableName", "my_table");
parameters.put("lambda.kafka.brokers", "kafka1:9092,kafka2:9092");
parameters.put("lambda.kafka.zookeepers", "zoo1,zoo2,zoo3");
parameters.put("lambda.expiry", "10 minutes");
org.geotools.data.DataStore dataStore = org.geotools.data.DataStoreFinder.getDataStore(parameters);

有关使用GeoTool的更多信息,请参阅 GeoTools user guide

21.3.2. Lambda数据存储参数

数据存储采用多个参数(所需参数用标记 * ):

参数

类型

描述

lambda.accumulo.instance.name *

细绳

Acumulo安装的实例ID

lambda.accumulo.zookeepers *

细绳

以逗号分隔的ZooKeeper服务器列表(例如“zoo1、zoo2、zoo3”或“localhost:2181”)

lambda.accumulo.catalog *

细绳

GeoMesa目录表的名称

lambda.accumulo.user *

细绳

累积用户名

lambda.accumulo.password

细绳

累积密码

lambda.accumulo.keytab.path

细绳

包含指定用户条目的Kerberos密钥表文件的路径

lambda.kafka.brokers *

细绳

以逗号分隔的卡夫卡经纪人列表(例如 broker1:9092,broker2:9092 )

lambda.kafka.zookeepers *

细绳

以逗号分隔的ZooKeeper服务器列表(例如 zoo1,zoo2,zoo3localhost:2181 )

lambda.kafka.partitions

整型

用于创建新主题的分区数。通常应将其设置为计划运行的编写器实例数

lambda.kafka.consumers

整型

用于将数据加载到内存中缓存的使用者数量

lambda.kafka.producer.options

细绳

Java-PROPERTIES-直接传递给Kafka生产者的格式化字符串。看见 Producer Configs

lambda.kafka.consumer.options

细绳

Java-PROPERTIES-直接传递给Kafka使用者的格式字符串。看见 Consumer Configs

lambda.expiry *

细绳

特征在持久存储之前在内存中保留多长时间的持续时间(例如 10 minutes )。vbl.使用 Inf 将导致数据存储不参与保存过期条目

lambda.persist

布尔型

过期的功能是应该保留到Acumulo,还是直接丢弃

geomesa.security.auths

细绳

将用于通过Acumulo进行查询的以逗号分隔的授权超集

geomesa.security.force-empty-auths

布尔型

强制授权为空

geomesa.security.auth-provider

细绳

类的类名。 AuthorizationsProvider 实施

geomesa.query.audit

布尔型

正在运行的审核查询。查询将存储在 <catalog>_queries 表格

geomesa.query.timeout

细绳

在终止查询之前允许运行的最长时间。超时被指定为持续时间,例如 1 minute60 seconds

geomesa.query.threads

整型

每个查询要使用的线程数

geomesa.query.loose-bounding-box

布尔型

使用松散边界框-查询速度更快,但可能会返回无关的结果

accumulo.query.record-threads

整型

用于记录检索的线程数

accumulo.write.threads

整型

用于写入记录的线程数

geomesa.stats.generate

布尔型

切换新创建的要素类型的统计数据收集

注:其中一项(但不是两项) lambda.accumulo.passwordlambda.accumulo.keytab.path 必须提供。