abstract class GeoMesaDataStore[DS <: GeoMesaDataStore[DS]] extends MetadataBackedDataStore with HasGeoMesaStats
Abstract base class for data store implementations on top of distributed databases
- DS
type of this data store
- Self Type
- DS
- Alphabetic
- By Inheritance
- GeoMesaDataStore
- HasGeoMesaStats
- MetadataBackedDataStore
- LazyLogging
- DistributedLocking
- HasGeoMesaFeatureReader
- HasGeoMesaMetadata
- DataStore
- DataAccess
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
GeoMesaDataStore(config: GeoMesaDataStoreConfig)
- config
common datastore configuration options - subclasses can extend this
Abstract Value Members
-
abstract
def
acquireDistributedLock(key: String, timeOut: Long): Option[Closeable]
Gets and acquires a distributed lock based on the key.
Gets and acquires a distributed lock based on the key. Make sure that you 'release' the lock in a finally block.
- key
key to lock on - equivalent to a path in zookeeper
- timeOut
how long to wait to acquire the lock, in millis
- returns
the lock, if obtained
- Attributes
- protected
- Definition Classes
- DistributedLocking
-
abstract
def
acquireDistributedLock(key: String): Closeable
Gets and acquires a distributed lock based on the key.
Gets and acquires a distributed lock based on the key. Make sure that you 'release' the lock in a finally block.
- key
key to lock on - equivalent to a path in zookeeper
- returns
the lock
- Attributes
- protected
- Definition Classes
- DistributedLocking
- abstract def adapter: IndexAdapter[DS]
-
abstract
def
metadata: GeoMesaMetadata[String]
- Definition Classes
- HasGeoMesaMetadata
-
abstract
def
stats: GeoMesaStats
- Definition Classes
- HasGeoMesaStats
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
acquireCatalogLock(): Closeable
Acquires a distributed lock for all data stores sharing this catalog table.
Acquires a distributed lock for all data stores sharing this catalog table. Make sure that you 'release' the lock in a finally block.
- Attributes
- protected[geomesa]
- Definition Classes
- MetadataBackedDataStore
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
checkSchemaCompatibility(typeName: String, sft: SimpleFeatureType): SchemaCompatibility
Checks a simple feature type against an existing schema
Checks a simple feature type against an existing schema
- typeName
type name
- sft
udpated simple feature type
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
- val config: GeoMesaDataStoreConfig
-
def
createSchema(schema: SimpleFeatureType): Unit
Validates the schema and writes metadata to catalog.If the schema already exists, continue without error.
Validates the schema and writes metadata to catalog.If the schema already exists, continue without error.
This method uses distributed locking to ensure a schema is only created once.
- schema
type to create
- Definition Classes
- MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#createSchema(org.geotools.api.feature.type.FeatureType)
-
def
delete(): Unit
Optimized method to delete everything (all tables) associated with this datastore (index tables and catalog table) NB: We are *not* currently deleting the query table and/or query information.
-
def
dispose(): Unit
Cleanup any open connections, etc.
Cleanup any open connections, etc. Equivalent to java.io.Closeable.close()
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#dispose()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
getAllIndexTableNames(typeName: String): Seq[String]
Returns all index tables that may be created for the simple feature type.
Returns all index tables that may be created for the simple feature type. Note that some of these tables may be shared with other simple feature types, and the tables may not all currently exist.
- typeName
simple feature type name
-
def
getAllTableNames(typeName: String): Seq[String]
Returns all tables that may be created for the simple feature type.
Returns all tables that may be created for the simple feature type. Note that some of these tables may be shared with other simple feature types, and the tables may not all currently exist.
- typeName
simple feature type name
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
getClientVersion: SemanticVersion
Gets the geomesa version
Gets the geomesa version
- returns
client version
-
def
getDistributedVersion: Option[SemanticVersion]
Gets the geomesa version
Gets the geomesa version
- returns
iterator version, if data store has iterators
-
def
getFeatureReader(query: Query, transaction: Transaction): SimpleFeatureReader
- query
query to execute
- transaction
transaction to use (currently ignored)
- returns
feature reader
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getFeatureReader(org.geotools.api.data.Query, org.geotools.api.data.Transaction)
-
def
getFeatureSource(typeName: String): GeoMesaFeatureStore
- typeName
simple feature type name
- returns
featureStore, suitable for reading and writing
- Definition Classes
- GeoMesaDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getFeatureSource(java.lang.String)
-
def
getFeatureSource(typeName: Name): SimpleFeatureSource
- typeName
simple feature type name
- returns
featureStore, suitable for reading and writing
- Definition Classes
- MetadataBackedDataStore → DataStore → DataAccess
- See also
org.geotools.api.data.DataStore#getFeatureSource(java.lang.String)
-
def
getFeatureWriter(typeName: String, filter: Filter, transaction: Transaction): FlushableFeatureWriter
Create a general purpose writer that is capable of updates and deletes.
Create a general purpose writer that is capable of updates and deletes. Does not allow inserts.
- typeName
feature type name
- filter
cql filter to select features for update/delete
- transaction
transaction (currently ignored)
- returns
feature writer
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getFeatureWriter(java.lang.String, org.geotools.api.filter.Filter, org.geotools.api.data.Transaction)
-
def
getFeatureWriter(typeName: String, transaction: Transaction): FlushableFeatureWriter
Create a general purpose writer that is capable of updates and deletes.
Create a general purpose writer that is capable of updates and deletes. Does not allow inserts. Will return all existing features.
- typeName
feature type name
- transaction
transaction (currently ignored)
- returns
feature writer
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getFeatureWriter(java.lang.String, org.geotools.api.data.Transaction)
-
def
getFeatureWriterAppend(typeName: String, transaction: Transaction): FlushableFeatureWriter
Creates a feature writer only for writing - does not allow updates or deletes.
Creates a feature writer only for writing - does not allow updates or deletes.
- typeName
feature type name
- transaction
transaction (currently ignored)
- returns
feature writer
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getFeatureWriterAppend(java.lang.String, org.geotools.api.data.Transaction)
-
def
getIndexWriterAppend(typeName: String, indices: Seq[GeoMesaFeatureIndex[_, _]]): FlushableFeatureWriter
Writes to the specified indices
Writes to the specified indices
- typeName
feature type name
- indices
indices to write
-
def
getInfo(): ServiceInfo
- returns
service info
- Definition Classes
- MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#getInfo()
-
def
getLockingManager(): LockingManager
We always return null, which indicates that we are handling transactions ourselves.
We always return null, which indicates that we are handling transactions ourselves.
- returns
locking manager - null
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getLockingManager()
-
def
getNames(): List[Name]
- returns
existing simple feature type names
- Definition Classes
- MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#getNames()
-
def
getQueryPlan(query: Query, index: Option[String] = None, explainer: Explainer = new ExplainLogging): Seq[QueryPlan[DS]]
Gets the query plan for a given query.
Gets the query plan for a given query. The query plan consists of the tables, ranges, iterators etc required to run a query against the data store.
- query
query to execute
- index
hint on the index to use to satisfy the query
- returns
query plans
-
def
getSchema(typeName: String): SimpleFeatureType
- typeName
feature type name
- returns
feature type, or null if it does not exist
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getSchema(java.lang.String)
-
def
getSchema(name: Name): SimpleFeatureType
- name
feature type name
- returns
feature type, or null if it does not exist
- Definition Classes
- MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#getSchema(org.geotools.api.feature.type.Name)
-
def
getTypeNames(): Array[String]
- returns
existing simple feature type names
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#getTypeNames()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
val
interceptors: QueryInterceptorFactory
- Attributes
- protected[geomesa]
- Definition Classes
- MetadataBackedDataStore
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
loadIteratorVersions: Set[String]
Gets iterator versions as a string.
Gets iterator versions as a string. Subclasses with distributed classpaths should override and implement.
- returns
iterator versions
- Attributes
- protected
-
lazy val
logger: Logger
- Attributes
- protected
- Definition Classes
- LazyLogging
- Annotations
- @transient()
- val manager: IndexManager
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
onSchemaCreated(sft: SimpleFeatureType): Unit
Called after schema metadata has been persisted.
Called after schema metadata has been persisted. Allows for creating tables, etc
- sft
simple feature type
- Attributes
- protected
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore
-
def
onSchemaDeleted(sft: SimpleFeatureType): Unit
Called after deleting schema metadata.
Called after deleting schema metadata. Allows for deleting tables, etc
- sft
simple feature type
- Attributes
- protected
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore
-
def
onSchemaUpdated(sft: SimpleFeatureType, previous: SimpleFeatureType): Unit
Called after schema metadata has been persisted.
Called after schema metadata has been persisted. Allows for creating tables, etc
- sft
simple feature type
- previous
previous feature type before changes
- Attributes
- protected
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore
-
def
preSchemaCreate(sft: SimpleFeatureType): Unit
Called just before persisting schema metadata.
Called just before persisting schema metadata. Allows for validation or configuration of user data
- sft
simple feature type
- Attributes
- protected
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore
- Annotations
- @throws( classOf[IllegalArgumentException] )
- Exceptions thrown
java.lang.IllegalArgumentException
if schema is invalid and shouldn't be written
-
def
preSchemaUpdate(sft: SimpleFeatureType, previous: SimpleFeatureType): Unit
Called just before updating schema metadata.
Called just before updating schema metadata. Allows for validation or configuration of user data
- sft
simple feature type
- previous
previous feature type before changes
- Attributes
- protected
- Definition Classes
- GeoMesaDataStore → MetadataBackedDataStore
- Annotations
- @throws( classOf[IllegalArgumentException] )
- Exceptions thrown
java.lang.IllegalArgumentException
if schema is invalid and shouldn't be updated
- val queryPlanner: QueryPlanner[DS]
-
def
removeSchema(typeName: Name): Unit
- typeName
simple feature type name
- Definition Classes
- MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#removeSchema(org.geotools.api.feature.type.Name)
-
def
removeSchema(typeName: String): Unit
Deletes the schema metadata
Deletes the schema metadata
- typeName
simple feature type name
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#removeSchema(java.lang.String)
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transitionIndices(sft: SimpleFeatureType): Unit
Update the local value for
sft.getIndices
.Update the local value for
sft.getIndices
. Only needed for legacy data stores with old index metadata encoding- sft
simple feature type
- Attributes
- protected
-
def
updateSchema(typeName: Name, schema: SimpleFeatureType): Unit
Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data
Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data
Other modifications are not supported.
- typeName
simple feature type name
- schema
new simple feature type
- Definition Classes
- MetadataBackedDataStore → DataAccess
- See also
org.geotools.data.DataAccess#updateSchema(org.geotools.api.feature.type.Name, org.geotools.api.feature.type.FeatureType)
-
def
updateSchema(typeName: String, sft: SimpleFeatureType): Unit
Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data
Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data
Other modifications are not supported.
- typeName
simple feature type name
- sft
new simple feature type
- Definition Classes
- MetadataBackedDataStore → DataStore
- See also
org.geotools.api.data.DataStore#updateSchema(java.lang.String, org.geotools.api.feature.simple.SimpleFeatureType)
-
def
validateSchemaUpdate(existing: SimpleFeatureType, schema: SimpleFeatureType): Either[UnsupportedOperationException, Compatible]
Validate a call to updateSchema, throwing errors on failed validation
Validate a call to updateSchema, throwing errors on failed validation
- existing
existing schema
- schema
updated sft
- returns
validation result
- Attributes
- protected
- Definition Classes
- MetadataBackedDataStore
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withLock[T](key: String, timeOut: Long, fn: ⇒ T, fallback: ⇒ T): T
Execute a function wrapped in a lock
Execute a function wrapped in a lock
- T
result type
- key
key to lock on
- timeOut
how long to wait to acquire the lock, in millis
- fn
function to run with the lock
- fallback
function to run if the lock could not be acquired
- Attributes
- protected
- Definition Classes
- DistributedLocking
-
def
withLock[T](key: String, timeOut: Long, fn: ⇒ T): T
Execute a function wrapped in a lock
Execute a function wrapped in a lock
- T
result type
- key
key to lock on
- timeOut
how long to wait to acquire the lock, in millis
- fn
function to run with the lock
- Attributes
- protected
- Definition Classes
- DistributedLocking
-
def
withLock[T](key: String, fn: ⇒ T): T
Execute a function wrapped in a lock
Execute a function wrapped in a lock
- T
result type
- key
key to lock on
- fn
function to run with the lock
- Attributes
- protected
- Definition Classes
- DistributedLocking
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated