## Geomesa SimpleFeatureType

In GeoTools, a SimpleFeatureType defines the schema for your data. It is similar to defining a SQL database table, as it consists of strongly-typed, ordered, named attributes (columns). Likewise, in Geomesa SimpleFeatureType defines the names and types of attributes in a schema.There are some predefined SimpleFeatureType coming with the Geomesa tools. We can use a specification string or a TypeSafe configuration to define a SimpleFeatureType.

A SimpleFeatureType definition consists of an attributes array, and an optional user-data section. attributes is an array of column definitions, each of which must include a name and a type. user-data element consists of key-value pairs that will be set in the user data for the SimpleFeatureType.

For example:

 twitter = {
fields = [
{ name = user_id      , type = String, index = true }
{ name = user_name    , type = String }
{ name = text         , type = String }
{ name = in_reply_to_user_id  , type = String }
{ name = in_reply_to_status_id, type = String }

{ name = hashtags             , type = String }
{ name = media                , type = String }
{ name = symbols              , type = String }
{ name = urls                 , type = String }
{ name = user_mentions        , type = String }

{ name = retweet_count        , type = Int }
{ name = lang                 , type = String }

{ name = place_name           , type = String }
{ name = place_type           , type = String }
{ name = place_country_code   , type = String }
{ name = place_full_name      , type = String }
{ name = place_id             , type = String }

{ name = dtg                  , type = Date }
{ name = geom                 , type = Point, srid = 4326 }
]
user-data = {
geomesa.table.sharing = "false"
}
}



Checkout next post about geomesa converter, which will discuss how to transform source file into SimpleFeatureType in Geomesa datastore.