在Lindorm Ganos开通后通过 Ganos接口进行开发工作。
操作步骤
代码示例下载:示例代码。
下载解压后进入lindorm-sample目录,执行以下语句。
mvn install -Dmaven.test.skip=true -s ../settings.xml
编译成功后,在target目录下生成
lindorm-sample-1.0.0.jar
。代码示例说明。以AIS数据为例,展示了对轨迹数据的写入、查询功能。
Main: 示例程序入口。
通过JSON文件指定操作和参数,JSON文件可参照示例sample_template.json。
Writer:向Lindorm Ganos写入数据,支持两种写入模式:
WRITER:单线程写入。连接Lindorm Ganos,定义Schema,创建时空索引表,读取示例数据并写入。
PWRITER:多线程写入。连接Lindorm Ganos,定义Schema,创建时空索引表。指定线程数,每个线程随机生成指定范围内的n个AIS点,写入已创建的表中。需通过JSON文件指定参数。JSON文件可参照示例write_template.json。
Reader:查询接口,对Writer写入的AIS数据进行查询,支持两种查询模式:
READER:进行固定参数的属性查询,空间查询和时空查询等示例。
UDFQUERY:通过JSON文件指定参数,自定义选择空间/时空/属性查询,指定查询条件。JSON文件可参照示例query_template.json。
使用示例。以下示例中
zk_address
的地址为Lindorm宽表引擎的使用HBase Java API访问地址。写入数据
在sample_template.json中,设置写入参数。
{ "operation" : "WRITER", "zk_address" : $your_zk_address, "catalog" : "example", "schema" : "ship" }
执行示例写入。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.json
默认创建schema为ship的4个索引表 (index on id, z2, z3, attr) 。若要创建指定的索引表,可以参见创建索引表。
查询数据
在sample_template.json中设置查询参数,使用示例代码默认的查询范围。
{ "operation" : "READER", "zk_address" : $your_zk_address, "catalog" : "example", "schema" : "ship" }
也可设置查询语句filter_string,指定查询范围。
{ "operation" : "READER", "filter_string" : "bbox(geom, 20, 20, 40, 40)" "zk_address" : $your_zk_address, "catalog" : "example", "schema" : "ship" }
执行示例查询。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.json
并行写入数据
使用PWRITER。
{ "operation" : "PWRITER", "zk_address" : $your_zk_address, "catalog" : "example", "schema" : "ship", "write_template_file" : "src_root/src/main/java/com/aliyun/apsaradb/lindorm/ganos/sample/write_template.json" }
自定义查询
使用UDFQUERY。
{ "operation" : "UDFQUERY", "zk_address" : $your_zk_address, "catalog" : "example", "schema" : "ship", "query_template_file" : "src_root/src/main/java/com/aliyun/apsaradb/lindorm/ganos/sample/query_template.json" }