Class 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 columns parameter, the implicit data type bindings are:

    ElasticSearch type Dashbuilder type
    string TEXT ( if index value is analyzed ) or LABEL ( if index value is not_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 Detail

      • 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
      • _metadataMap

        protected final Map<String,​org.dashbuilder.dataset.DataSetMetadata> _metadataMap
        Backend cache map.
    • 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

      • destroy

        public void destroy()
      • getType

        public org.dashbuilder.dataprovider.DataSetProviderType getType()
        Specified by:
        getType in interface org.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:
        lookupDataSet in interface org.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 Exception
        Fills 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:
        isDataSetOutdated in interface org.dashbuilder.dataprovider.DataSetProvider
      • getDataSetMetadata

        public org.dashbuilder.dataset.DataSetMetadata getDataSetMetadata​(org.dashbuilder.dataset.def.DataSetDef def)
                                                                   throws Exception
        Specified by:
        getDataSetMetadata in interface org.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.
      • 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:
        onDataSetDefStale in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • onDataSetDefModified

        public void onDataSetDefModified​(org.dashbuilder.dataset.def.DataSetDef oldDef,
                                         org.dashbuilder.dataset.def.DataSetDef newDef)
        Specified by:
        onDataSetDefModified in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • onDataSetDefRemoved

        public void onDataSetDefRemoved​(org.dashbuilder.dataset.def.DataSetDef oldDef)
        Specified by:
        onDataSetDefRemoved in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • onDataSetDefRegistered

        public void onDataSetDefRegistered​(org.dashbuilder.dataset.def.DataSetDef newDef)
        Specified by:
        onDataSetDefRegistered in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • remove

        protected void remove​(String uuid)
      • fromString

        public static String[] fromString​(String str)
      • toString

        public static String toString​(String[] array)