Class QueryInsights

java.lang.Object
software.amazon.awssdk.services.timestreamquery.model.QueryInsights
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<QueryInsights.Builder,QueryInsights>

@Generated("software.amazon.awssdk:codegen") public final class QueryInsights extends Object implements SdkPojo, Serializable, ToCopyableBuilder<QueryInsights.Builder,QueryInsights>

QueryInsights is a performance tuning feature that helps you optimize your queries, reducing costs and improving performance. With QueryInsights, you can assess the pruning efficiency of your queries and identify areas for improvement to enhance query performance. With QueryInsights, you can also analyze the effectiveness of your queries in terms of temporal and spatial pruning, and identify opportunities to improve performance. Specifically, you can evaluate how well your queries use time-based and partition key-based indexing strategies to optimize data retrieval. To optimize query performance, it's essential that you fine-tune both the temporal and spatial parameters that govern query execution.

The key metrics provided by QueryInsights are QuerySpatialCoverage and QueryTemporalRange. QuerySpatialCoverage indicates how much of the spatial axis the query scans, with lower values being more efficient. QueryTemporalRange shows the time range scanned, with narrower ranges being more performant.

Benefits of QueryInsights

The following are the key benefits of using QueryInsights:

  • Identifying inefficient queriesQueryInsights provides information on the time-based and attribute-based pruning of the tables accessed by the query. This information helps you identify the tables that are sub-optimally accessed.

  • Optimizing your data model and partitioning – You can use the QueryInsights information to access and fine-tune your data model and partitioning strategy.

  • Tuning queriesQueryInsights highlights opportunities to use indexes more effectively.

The maximum number of Query API requests you're allowed to make with QueryInsights enabled is 1 query per second (QPS). If you exceed this query rate, it might result in throttling.

See Also:
  • Method Details

    • mode

      public final QueryInsightsMode mode()

      Provides the following modes to enable QueryInsights:

      • ENABLED_WITH_RATE_CONTROL – Enables QueryInsights for the queries being processed. This mode also includes a rate control mechanism, which limits the QueryInsights feature to 1 query per second (QPS).

      • DISABLED – Disables QueryInsights.

      If the service returns an enum value that is not available in the current SDK version, mode will return QueryInsightsMode.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from modeAsString().

      Returns:
      Provides the following modes to enable QueryInsights:

      • ENABLED_WITH_RATE_CONTROL – Enables QueryInsights for the queries being processed. This mode also includes a rate control mechanism, which limits the QueryInsights feature to 1 query per second (QPS).

      • DISABLED – Disables QueryInsights.

      See Also:
    • modeAsString

      public final String modeAsString()

      Provides the following modes to enable QueryInsights:

      • ENABLED_WITH_RATE_CONTROL – Enables QueryInsights for the queries being processed. This mode also includes a rate control mechanism, which limits the QueryInsights feature to 1 query per second (QPS).

      • DISABLED – Disables QueryInsights.

      If the service returns an enum value that is not available in the current SDK version, mode will return QueryInsightsMode.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from modeAsString().

      Returns:
      Provides the following modes to enable QueryInsights:

      • ENABLED_WITH_RATE_CONTROL – Enables QueryInsights for the queries being processed. This mode also includes a rate control mechanism, which limits the QueryInsights feature to 1 query per second (QPS).

      • DISABLED – Disables QueryInsights.

      See Also:
    • toBuilder

      public QueryInsights.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<QueryInsights.Builder,QueryInsights>
      Returns:
      a builder for type T
    • builder

      public static QueryInsights.Builder builder()
    • serializableBuilderClass

      public static Class<? extends QueryInsights.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.