Class ElasticSearchDataSetProvider
- java.lang.Object
-
- org.dashbuilder.dataprovider.backend.elasticsearch.ElasticSearchDataSetProvider
-
- All Implemented Interfaces:
org.dashbuilder.dataprovider.DataSetProvider,org.dashbuilder.dataset.def.DataSetDefRegistryListener
public class ElasticSearchDataSetProvider extends Object implements org.dashbuilder.dataprovider.DataSetProvider, org.dashbuilder.dataset.def.DataSetDefRegistryListener
Data provider for an ElasticSearch server.
It's basically implemented as a REST client for querying an ElasticSearch server instance.
If a given type field is not explicitly mapped as a concrete dashbuilder datatype using the
columnsparameter, the implicit data type bindings are:ElasticSearch type Dashbuilder type string TEXT ( if indexvalue isanalyzed) or LABEL ( ifindexvalue isnot_analyzed)float NUMBER double NUMBER byte NUMBER short NUMBER integer NUMBER long NUMBER token_count LABEL date DATE boolean LABEL binary LABEL - Since:
- 0.3.0
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,ElasticSearchClient>_clientsMapSingleton clients for each data set definition..protected Map<String,org.dashbuilder.dataset.DataSetMetadata>_metadataMapBackend cache map.protected ElasticSearchClientFactoryclientFactoryprotected org.dashbuilder.dataset.IntervalBuilderDynamicDateintervalBuilderDynamicDateprotected org.dashbuilder.dataset.engine.group.IntervalBuilderLocatorintervalBuilderLocatorprotected org.slf4j.Loggerlogprotected ElasticSearchQueryBuilderFactoryqueryBuilderFactorystatic intRESPONSE_CODE_OKprotected org.dashbuilder.dataprovider.StaticDataSetProviderstaticDataSetProviderprotected ElasticSearchValueTypeMappertypeMapper
-
Constructor Summary
Constructors Constructor Description ElasticSearchDataSetProvider()ElasticSearchDataSetProvider(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider, org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator, org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.dashbuilder.dataset.filter.ColumnFilter_getIntervalSelectionFilter(org.dashbuilder.dataset.group.DataSetGroup intervalSel)protected org.dashbuilder.dataset.DataSet_lookupDataSet(org.dashbuilder.dataset.def.ElasticSearchDataSetDef elDef, org.dashbuilder.dataset.DataSetLookup lookup)voiddestroy()protected booleanexistColumn(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)protected voidfillDataSetValues(org.dashbuilder.dataset.def.ElasticSearchDataSetDef elDef, org.dashbuilder.dataset.DataSet dataSet, SearchHitResponse[] hits)Fills the dataset values.static String[]fromString(String str)static ElasticSearchDataSetProviderget()protected List<org.dashbuilder.dataset.DataColumn>getAllColumns(org.dashbuilder.dataset.DataSetMetadata metadata)protected org.dashbuilder.dataset.DataColumngetColumnById(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)protected StringgetColumnId(String index, String type, String field)org.dashbuilder.dataset.DataSetMetadatagetDataSetMetadata(org.dashbuilder.dataset.def.DataSetDef def)protected org.dashbuilder.dataset.ColumnTypegetDataType(FieldMappingResponse.FieldType fieldType, FieldMappingResponse.IndexType indexType)Return the dashbuilder data type for a given ElasticSearch field type.protected longgetRowCount(org.dashbuilder.dataset.def.ElasticSearchDataSetDef elasticSearchDataSetDef)org.dashbuilder.dataprovider.DataSetProviderTypegetType()booleanisDataSetOutdated(org.dashbuilder.dataset.def.DataSetDef def)org.dashbuilder.dataset.DataSetlookupDataSet(org.dashbuilder.dataset.def.DataSetDef def, org.dashbuilder.dataset.DataSetLookup lookup)voidonDataSetDefModified(org.dashbuilder.dataset.def.DataSetDef oldDef, org.dashbuilder.dataset.def.DataSetDef newDef)voidonDataSetDefRegistered(org.dashbuilder.dataset.def.DataSetDef newDef)voidonDataSetDefRemoved(org.dashbuilder.dataset.def.DataSetDef oldDef)voidonDataSetDefStale(org.dashbuilder.dataset.def.DataSetDef def)protected org.dashbuilder.dataset.DataColumnparseColumnFromIndexMappings(org.dashbuilder.dataset.def.ElasticSearchDataSetDef def, String indexName, String typeName, String fieldName, String format, FieldMappingResponse.FieldType fieldType, FieldMappingResponse.IndexType indexType)protected Map<String,org.dashbuilder.dataset.DataColumn>parseColumnsFromIndexMappings(IndexMappingResponse[] indexMappings, org.dashbuilder.dataset.def.ElasticSearchDataSetDef def)Parse a given index' field definitions from EL index mappings response.protected voidremove(String uuid)static StringtoString(String[] array)
-
-
-
Field Detail
-
RESPONSE_CODE_OK
public static final int RESPONSE_CODE_OK
- See Also:
- Constant Field Values
-
log
protected org.slf4j.Logger log
-
staticDataSetProvider
protected org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider
-
intervalBuilderLocator
protected org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator
-
intervalBuilderDynamicDate
protected org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate
-
clientFactory
protected ElasticSearchClientFactory clientFactory
-
typeMapper
protected ElasticSearchValueTypeMapper typeMapper
-
queryBuilderFactory
protected ElasticSearchQueryBuilderFactory queryBuilderFactory
-
_metadataMap
protected final Map<String,org.dashbuilder.dataset.DataSetMetadata> _metadataMap
Backend cache map.
-
_clientsMap
protected final Map<String,ElasticSearchClient> _clientsMap
Singleton clients for each data set definition..
-
-
Constructor Detail
-
ElasticSearchDataSetProvider
public ElasticSearchDataSetProvider()
-
ElasticSearchDataSetProvider
public ElasticSearchDataSetProvider(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider, org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator, org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate)
-
-
Method Detail
-
get
public static ElasticSearchDataSetProvider get()
-
destroy
public void destroy()
-
getType
public org.dashbuilder.dataprovider.DataSetProviderType getType()
- Specified by:
getTypein interfaceorg.dashbuilder.dataprovider.DataSetProvider
-
lookupDataSet
public org.dashbuilder.dataset.DataSet lookupDataSet(org.dashbuilder.dataset.def.DataSetDef def, org.dashbuilder.dataset.DataSetLookup lookup) throws Exception- Specified by:
lookupDataSetin interfaceorg.dashbuilder.dataprovider.DataSetProvider- Throws:
Exception
-
_lookupDataSet
protected org.dashbuilder.dataset.DataSet _lookupDataSet(org.dashbuilder.dataset.def.ElasticSearchDataSetDef elDef, org.dashbuilder.dataset.DataSetLookup lookup) throws Exception- Throws:
Exception
-
_getIntervalSelectionFilter
protected org.dashbuilder.dataset.filter.ColumnFilter _getIntervalSelectionFilter(org.dashbuilder.dataset.group.DataSetGroup intervalSel)
-
getAllColumns
protected List<org.dashbuilder.dataset.DataColumn> getAllColumns(org.dashbuilder.dataset.DataSetMetadata metadata)
-
getColumnById
protected org.dashbuilder.dataset.DataColumn getColumnById(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)
-
existColumn
protected boolean existColumn(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)
-
fillDataSetValues
protected void fillDataSetValues(org.dashbuilder.dataset.def.ElasticSearchDataSetDef elDef, org.dashbuilder.dataset.DataSet dataSet, SearchHitResponse[] hits) throws ExceptionFills the dataset values.- Parameters:
dataSet- The dataset instance to fill. Note that dataset columns must be added before calling this method.hits- The search result hits.- Throws:
Exception
-
isDataSetOutdated
public boolean isDataSetOutdated(org.dashbuilder.dataset.def.DataSetDef def)
- Specified by:
isDataSetOutdatedin interfaceorg.dashbuilder.dataprovider.DataSetProvider
-
getDataSetMetadata
public org.dashbuilder.dataset.DataSetMetadata getDataSetMetadata(org.dashbuilder.dataset.def.DataSetDef def) throws Exception- Specified by:
getDataSetMetadatain interfaceorg.dashbuilder.dataprovider.DataSetProvider- Throws:
Exception
-
parseColumnsFromIndexMappings
protected Map<String,org.dashbuilder.dataset.DataColumn> parseColumnsFromIndexMappings(IndexMappingResponse[] indexMappings, org.dashbuilder.dataset.def.ElasticSearchDataSetDef def)
Parse a given index' field definitions from EL index mappings response.- Parameters:
indexMappings- The mappings response from EL server.def- The data set definition.- Returns:
- The Data columns from index mappings.
-
parseColumnFromIndexMappings
protected org.dashbuilder.dataset.DataColumn parseColumnFromIndexMappings(org.dashbuilder.dataset.def.ElasticSearchDataSetDef def, String indexName, String typeName, String fieldName, String format, FieldMappingResponse.FieldType fieldType, FieldMappingResponse.IndexType indexType)
-
getColumnId
protected String getColumnId(String index, String type, String field) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
getDataType
protected org.dashbuilder.dataset.ColumnType getDataType(FieldMappingResponse.FieldType fieldType, FieldMappingResponse.IndexType indexType) throws IllegalArgumentException
Return the dashbuilder data type for a given ElasticSearch field type.
- Parameters:
fieldType- The ElasticSearch field type..indexType- The index type for the field.- Returns:
- The dashbuilder data type.
- Throws:
IllegalArgumentException- If ElasticSearch core data type is not supported.
-
getRowCount
protected long getRowCount(org.dashbuilder.dataset.def.ElasticSearchDataSetDef elasticSearchDataSetDef) throws Exception- Throws:
Exception
-
onDataSetDefStale
public void onDataSetDefStale(org.dashbuilder.dataset.def.DataSetDef def)
- Specified by:
onDataSetDefStalein interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
onDataSetDefModified
public void onDataSetDefModified(org.dashbuilder.dataset.def.DataSetDef oldDef, org.dashbuilder.dataset.def.DataSetDef newDef)- Specified by:
onDataSetDefModifiedin interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
onDataSetDefRemoved
public void onDataSetDefRemoved(org.dashbuilder.dataset.def.DataSetDef oldDef)
- Specified by:
onDataSetDefRemovedin interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
onDataSetDefRegistered
public void onDataSetDefRegistered(org.dashbuilder.dataset.def.DataSetDef newDef)
- Specified by:
onDataSetDefRegisteredin interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
remove
protected void remove(String uuid)
-
-