Class ElasticSearchRestDataContext

  • All Implemented Interfaces:
    org.apache.metamodel.convert.HasReadTypeConverters, org.apache.metamodel.DataContext, org.apache.metamodel.UpdateableDataContext

    public class ElasticSearchRestDataContext
    extends org.apache.metamodel.elasticsearch.AbstractElasticSearchDataContext
    DataContext implementation for ElasticSearch analytics engine. ElasticSearch has a data storage structure hierarchy that briefly goes like this:
    • Index
    • Document type (short: Type) (within an index)
    • Documents (of a particular type)
    When instantiating this DataContext, an index name is provided. Within this index, each document type is represented as a table. This implementation supports either automatic discovery of a schema or manual specification of a schema, through the SimpleTableDef class.
    • Field Summary

      • Fields inherited from class org.apache.metamodel.elasticsearch.AbstractElasticSearchDataContext

        dynamicTableDefinitions, indexName, staticTableDefinitions, TIMEOUT_SCROLL
      • Fields inherited from class org.apache.metamodel.QueryPostprocessDataContext

        INFORMATION_SCHEMA_NAME, SYSTEM_PROPERTY_CREATE_DEFAULT_TABLE_ALIAS
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.apache.metamodel.util.SimpleTableDef[] detectSchema()  
      protected Number executeCountQuery​(org.apache.metamodel.schema.Table table, List<org.apache.metamodel.query.FilterItem> whereItems, boolean functionApproximationAllowed)  
      protected org.apache.metamodel.data.Row executePrimaryKeyLookupQuery​(org.apache.metamodel.schema.Table table, List<org.apache.metamodel.query.SelectItem> selectItems, org.apache.metamodel.schema.Column primaryKeyColumn, Object keyValue)  
      org.apache.metamodel.UpdateSummary executeUpdate​(org.apache.metamodel.UpdateScript update)  
      ElasticSearchRestClient getElasticSearchClient()
      Gets the ElasticSearchRestClient that this DataContext is wrapping.
      protected org.apache.metamodel.data.DataSet materializeMainSchemaTable​(org.apache.metamodel.schema.Table table, List<org.apache.metamodel.query.SelectItem> selectItems, List<org.apache.metamodel.query.FilterItem> whereItems, int firstRow, int maxRows)  
      protected org.apache.metamodel.data.DataSet materializeMainSchemaTable​(org.apache.metamodel.schema.Table table, List<org.apache.metamodel.schema.Column> columns, int maxRows)  
      protected void onSchemaCacheRefreshed()  
      • Methods inherited from class org.apache.metamodel.elasticsearch.AbstractElasticSearchDataContext

        getIndexName, getMainSchema, getMainSchemaName, limitMaxRowsIsSet, sortTables
      • Methods inherited from class org.apache.metamodel.QueryPostprocessDataContext

        addConverter, executeQuery, getDefaultSchemaName, getSchemaByNameInternal, getSchemaNamesInternal, isMainSchemaTable, isScalarFunctionMaterialized, materializeFromItem, materializeMainSchemaTable, materializeMainSchemaTableSelect, materializeTable
      • Methods inherited from class org.apache.metamodel.AbstractDataContext

        compileQuery, executeQuery, executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, isQualifiedPathDelim, parseQuery, query, refreshSchemas
      • Methods inherited from interface org.apache.metamodel.DataContext

        compileQuery, executeQuery, executeQuery, executeQuery, getColumnByQualifiedLabel, getDefaultSchema, getSchemaByName, getSchemaNames, getSchemas, getTableByQualifiedLabel, parseQuery, query, refreshSchemas
    • Constructor Detail

      • ElasticSearchRestDataContext

        public ElasticSearchRestDataContext​(ElasticSearchRestClient client,
                                            String indexName,
                                            org.apache.metamodel.util.SimpleTableDef... tableDefinitions)
        Constructs a ElasticSearchRestDataContext. This constructor accepts a custom array of SimpleTableDefs which allows the user to define his own view on the indexes in the engine.
        Parameters:
        client - the ElasticSearch client
        indexName - the name of the ElasticSearch index to represent
        tableDefinitions - an array of SimpleTableDefs, which define the table and column model of the ElasticSearch index.
      • ElasticSearchRestDataContext

        public ElasticSearchRestDataContext​(ElasticSearchRestClient client,
                                            String indexName)
        Constructs a ElasticSearchRestDataContext and automatically detects the schema structure/view on an index.
        Parameters:
        client - the ElasticSearch client
        indexName - the name of the ElasticSearch index to represent
    • Method Detail

      • detectSchema

        protected org.apache.metamodel.util.SimpleTableDef[] detectSchema()
        Specified by:
        detectSchema in class org.apache.metamodel.elasticsearch.AbstractElasticSearchDataContext
      • onSchemaCacheRefreshed

        protected void onSchemaCacheRefreshed()
        Overrides:
        onSchemaCacheRefreshed in class org.apache.metamodel.AbstractDataContext
      • materializeMainSchemaTable

        protected org.apache.metamodel.data.DataSet materializeMainSchemaTable​(org.apache.metamodel.schema.Table table,
                                                                               List<org.apache.metamodel.query.SelectItem> selectItems,
                                                                               List<org.apache.metamodel.query.FilterItem> whereItems,
                                                                               int firstRow,
                                                                               int maxRows)
        Overrides:
        materializeMainSchemaTable in class org.apache.metamodel.QueryPostprocessDataContext
      • materializeMainSchemaTable

        protected org.apache.metamodel.data.DataSet materializeMainSchemaTable​(org.apache.metamodel.schema.Table table,
                                                                               List<org.apache.metamodel.schema.Column> columns,
                                                                               int maxRows)
        Specified by:
        materializeMainSchemaTable in class org.apache.metamodel.QueryPostprocessDataContext
      • executePrimaryKeyLookupQuery

        protected org.apache.metamodel.data.Row executePrimaryKeyLookupQuery​(org.apache.metamodel.schema.Table table,
                                                                             List<org.apache.metamodel.query.SelectItem> selectItems,
                                                                             org.apache.metamodel.schema.Column primaryKeyColumn,
                                                                             Object keyValue)
        Overrides:
        executePrimaryKeyLookupQuery in class org.apache.metamodel.QueryPostprocessDataContext
      • executeCountQuery

        protected Number executeCountQuery​(org.apache.metamodel.schema.Table table,
                                           List<org.apache.metamodel.query.FilterItem> whereItems,
                                           boolean functionApproximationAllowed)
        Overrides:
        executeCountQuery in class org.apache.metamodel.QueryPostprocessDataContext
      • executeUpdate

        public org.apache.metamodel.UpdateSummary executeUpdate​(org.apache.metamodel.UpdateScript update)