嗨,大家好,我是GeoMesa的新手 . 并尝试将我的MySQL表导入其中 . 正如他们在http://www.geomesa.org/documentation/user/commandline_tools.html网站上给出的那样 .
要获取.csv文件,可以在application.conf文件中放置名为renegades的SimpleFeatureType和名为renegades-csv的转换器:
geomesa {
sfts {
renegades = {
attributes = [
{ name = "id", type = "Integer", index = false }
{ name = "name", type = "String", index = true }
{ name = "age", type = "Integer", index = false }
{ name = "lastseen", type = "Date", index = true }
{ name = "friends", type = "List[String]", index = true }
{ name = "geom", type = "Point", index = true, srid = 4326, default = true }
]
}
}
converters {
renegades-csv = {
type = "delimited-text"
format = "CSV"
options {
skip-lines = 1 //skip the header
}
id-field = "toString($id)"
fields = [
{ name = "id", transform = "$1::int" }
{ name = "name", transform = "$2::string" }
{ name = "age", transform = "$3::int" }
{ name = "lastseen", transform = "date('YYYY-MM-dd', $4)" }
{ name = "friends", transform = "parseList('string', $5)" }
{ name = "lon", transform = "$6::double" }
{ name = "lat", transform = "$7::double" }
{ name = "geom", transform = "point($lon, $lat)" }
]
}
}
}
但问题是:
-
我找不到任何关于如何使这个文件的教程或帮助在上面的例子中给出了一些数据类型 . 但是我的一些sql DB值是varchar,tinyint,float和datetime . 现在,GeoMesa中的数据类型与这些数据类型 both for renegade and converters 类似 .
-
以及何时制作 index= true or false for renegades .
1 回答
对于#1,当您在GeoMesa的MySQL和SimpleFeatureTypes之间进行映射时,varchar变为'string',任何整数字段应该是'Integer'或'Long',日期是'Date',几何字段可能是'Point', 'Linestring','Polygon'或'Geometry' . (注意:有多个版本,但您可能不需要那些 . )
对于#2,'index = true'(或false)位是关于GeoMesa中的二级索引 . 默认情况下,GeoMesa为几何和时间字段创建索引 . 如果您计划按空间和时间进行查询,那么您的查询应该是最佳的 . 如果您只想通过属性查询,比如上面示例中的“朋友”,那么使用'index = true'为该字段创建索引可能会有所帮助 .