impulse_query_engine.analyze.query.query_builder
QueryBuilder
class QueryBuilder()
__init__
def __init__(db: "impulse_query_engine.analyze.MeasurementDB")
Initialize the QueryBuilder.
Arguments:
db(impulse_query_engine.analyze.MeasurementDB): Measurement database object.
where
def where(*args)
Add filter expressions to the query.
Arguments:
*args(list): Filter expressions to be added.
Returns:
QueryBuilder: The updated QueryBuilder instance.
filter
def filter(*args)
Alias for where().
Arguments:
*args(list): Filter expressions to be added.
Returns:
QueryBuilder: The updated QueryBuilder instance.
havingTag
def havingTag(**kwargs)
Add tag-based filters to the query.
Arguments:
**kwargs(dict): Tag-value pairs to filter by.
Returns:
QueryBuilder: The updated QueryBuilder instance.
tag
def tag(key: str, cast_type: str | None = None) -> TagSelector
Create a tag selector for the given key.
Arguments:
key(str): Name of the tag (element_id in the EAV table).cast_type(str or None): Spark type to cast the tag value to before comparison (e.g."int","double","string").
Returns:
TagSelector: Tag selector object.
metric
def metric(name) -> MetricSelector
Create a metric selector for the given name.
Arguments:
name(str): Name of the metric.
Returns:
MetricSelector: Metric selector object.
channel
def channel(**kwargs) -> TimeSeriesSelector
Create a time series selector for the given channel tags.
Arguments:
**kwargs(dict): Channel tag-value pairs.
Returns:
TimeSeriesSelector: Time series selector object.
select
def select(*args) -> Self
Set the selection expressions for the query.
Arguments:
*args(list): Selection expressions.
Returns:
QueryBuilder: The updated QueryBuilder instance.
solve
def solve(spark,
solver: QuerySolver = BlobSolver(),
pre_filtered_containers_df: DataFrame = None) -> DataFrame
Execute the query using the specified solver and return a Spark DataFrame.
Arguments:
spark(SparkSession): Spark session used for query execution.solver(QuerySolver): Query solver to use (default is BlobSolver).pre_filtered_containers_df(DataFrame): Pre-filtered container metrics DataFrame for incremental processing. When provided, only these containers will be processed. When None, all containers matching query filters are processed (full mode).
Returns:
pyspark.sql.DataFrame: DataFrame containing query results.
toPandas
def toPandas(spark, solver: QuerySolver = BlobSolver()) -> pd.DataFrame
Execute the query and collect results into a Pandas DataFrame.
Arguments:
spark(SparkSession): Spark session used for query execution.solver(QuerySolver): Query solver to use (default is BlobSolver).
Returns:
pd.DataFrame: Pandas DataFrame containing query results.