KsqlExecutionContext¶
KsqlExecutionContext is an abstraction of execution contexts.
Contract (Subset)¶
Creating Stream Pull Query¶
StreamPullQueryMetadata createStreamPullQuery(
ServiceContext serviceContext,
ImmutableAnalysis analysis,
ConfiguredStatement<Query> statementOrig,
boolean excludeTombstones)
See KsqlEngine
Used when:
QueryExecutoris requested to handle a stream pull query
Creating Sandboxed Execution Context (createSandbox)¶
KsqlExecutionContext createSandbox(
ServiceContext serviceContext)
Used when:
KsqlContextis requested to execute a SQL textDefaultSchemaInjectoris requested toforCreateAsStatementSchemaRegisterInjectoris requested to registerForCreateAsStandaloneExecutoris requested to validateStatementsDistributingExecutoris requested to executeExplainExecutoris requested toexplainStatementKsqlResourceis requested to configure
Statement Execution (execute)¶
ExecuteResult execute(
ServiceContext serviceContext,
ConfiguredKsqlPlan plan)
ExecuteResult execute(
ServiceContext serviceContext,
ConfiguredStatement<?> statement)
Executes a KsqlPlan or a Statement
Used when:
InteractiveStatementExecutoris requested to execute a KsqlPlanKsqlContextis requested to execute a statementStandaloneExecutor.StatementExecutoris requested to handleExecutableDdl and handlePersistentQueryExplainExecutoris requested to explain a StatementKsqlRestApplicationis requested to registerCommandTopicValidatedCommandFactoryis requested to createForPlannedQuery
Executing Scalable Push Query¶
ScalablePushQueryMetadata executeScalablePushQuery(
ImmutableAnalysis analysis,
ServiceContext serviceContext,
ConfiguredStatement<Query> statement,
PushRouting pushRouting,
PushRoutingOptions pushRoutingOptions,
QueryPlannerOptions queryPlannerOptions,
Context context,
Optional<ScalablePushQueryMetrics> scalablePushQueryMetrics)
Used when:
QueryExecutoris requested to handle a scalable push query
Executing Table Pull Query¶
PullQueryResult executeTablePullQuery(
ImmutableAnalysis analysis,
ServiceContext serviceContext,
ConfiguredStatement<Query> statement,
HARouting routing,
RoutingOptions routingOptions,
QueryPlannerOptions queryPlannerOptions,
Optional<PullQueryExecutorMetrics> pullQueryMetrics,
boolean startImmediately,
Optional<ConsistencyOffsetVector> consistencyOffsetVector)
Used when:
QueryExecutoris requested to handleTablePullQuery
Executing Transient Query¶
TransientQueryMetadata executeTransientQuery(
ServiceContext serviceContext,
ConfiguredStatement<Query> statement,
boolean excludeTombstones)
Used when:
CustomExecutorsis requested to handle a QUERY statementExplainExecutoris requested to explain a QUERY statementQueryExecutoris requested to handlePushQuery
getAllLiveQueries¶
List<QueryMetadata> getAllLiveQueries()
Used when:
ListQueriesExecutoris requested togetLocalSimple,getLocalExtendedQueryCapacityUtilutility is used togetNumLivePushQueries
getPersistentQueries¶
List<PersistentQueryMetadata> getPersistentQueries()
Used when:
KsqlContextis requested to getPersistentQueriesKsqlEngineMetricsis requested toconfigureNumPersistentQueriesandconfigureGaugeForStatePersistentQuerySaturationMetricsis requested torunDiscoverClusterServiceis requested torunOneIterationSendLagServiceis requested torunOneIterationStandaloneExecutoris requested to processesQueryFileCommandRunneris requested to processPriorCommands- others
Parsing SQL Text¶
List<ParsedStatement> parse(
String sql)
Used when:
KsqlContextis requested to sqlSqlFormatInjectoris requested toinjectQueryEndpointis requested to createStatementKsqlRestApplicationis requested to registerCommandTopicStandaloneExecutoris requested to processesQueryFileStatementParseris requested toparseSingleStatementKsqlResourceis requested to handleKsqlStatements
Statement Planning (plan)¶
KsqlPlan plan(
ServiceContext serviceContext,
ConfiguredStatement<?> statement)
Plans a given DDL/DML statement (in the ServiceContext) and creates a KsqlPlan
See KsqlEngine or SandboxedExecutionContext
Used when:
KsqlEngineis requested to execute a statementSandboxedExecutionContextis requested to execute a statementDefaultSchemaInjectoris requested toforCreateAsStatementSchemaRegisterInjectoris requested to registerForCreateAsValidatedCommandFactoryis requested to createForPlannedQuery
Preparing Statement for Execution¶
PreparedStatement<?> prepare(
ParsedStatement stmt,
Map<String, String> variablesMap)
PreparedStatement<?> prepare(
ParsedStatement stmt) // (1)!
- Uses an empty
Map
Used when:
KsqlContextis requested to executeKsqlRestApplicationis requested to registerCommandTopicQueryEndpointis requested tocreateStatementRequestHandleris requested to executeRequestValidatoris requested to validateSqlFormatInjectoris requested toinjectStandaloneExecutor.StatementExecutoris requested to prepare a statementStatementParseris requested toparseSingleStatement
updateStreamsPropertiesAndRestartRuntime¶
void updateStreamsPropertiesAndRestartRuntime()
Used when:
InteractiveStatementExecutoris requested to execute an ALTER SYSTEM command