Fix #11352: Fix athena usage models (#11378)

This commit is contained in:
Mayur Singal 2023-05-02 13:54:01 +05:30 committed by GitHub
parent a5c43290c3
commit 4110dc2472
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 46 deletions

View File

@ -19,59 +19,23 @@ from pydantic import BaseModel
class QueryExecutionIdsResponse(BaseModel): class QueryExecutionIdsResponse(BaseModel):
QueryExecutionIds: List[str] QueryExecutionIds: Optional[List[str]]
class ResultReuseByAgeConfiguration(BaseModel):
Enabled: bool
class ResultConfiguration(BaseModel):
OutputLocation: str
class QueryExecutionContext(BaseModel):
Database: str
Catalog: str
class Status(BaseModel): class Status(BaseModel):
State: str State: Optional[str]
SubmissionDateTime: datetime SubmissionDateTime: Optional[datetime]
CompletionDateTime: datetime
class ResultReuseInformation(BaseModel):
ReusedPreviousResult: bool
class Statistics(BaseModel): class Statistics(BaseModel):
EngineExecutionTimeInMillis: int TotalExecutionTimeInMillis: Optional[int]
DataScannedInBytes: int
TotalExecutionTimeInMillis: int
QueryQueueTimeInMillis: int
ServiceProcessingTimeInMillis: int
ResultReuseInformation: ResultReuseInformation
class EngineVersion(BaseModel):
SelectedEngineVersion: str
EffectiveEngineVersion: str
class AthenaQueryExecution(BaseModel): class AthenaQueryExecution(BaseModel):
QueryExecutionId: str Query: Optional[str]
Query: str Statistics: Optional[Statistics]
StatementType: str Status: Optional[Status]
ResultConfiguration: ResultConfiguration
ResultReuseConfiguration: dict
QueryExecutionContext: QueryExecutionContext
Status: Status
Statistics: Statistics
WorkGroup: str
EngineVersion: EngineVersion
SubstatementType: Optional[str]
class AthenaQueryExecutionList(BaseModel): class AthenaQueryExecutionList(BaseModel):
QueryExecutions: List[AthenaQueryExecution] QueryExecutions: Optional[List[AthenaQueryExecution]]

View File

@ -48,11 +48,15 @@ class AthenaUsageSource(AthenaQueryParserSource, UsageSource):
), ),
analysisDate=query.Status.SubmissionDateTime, analysisDate=query.Status.SubmissionDateTime,
serviceName=self.config.serviceName, serviceName=self.config.serviceName,
duration=query.Statistics.TotalExecutionTimeInMillis, duration=query.Statistics.TotalExecutionTimeInMillis
if query.Statistics
else None,
aborted=query.Status.State == QUERY_ABORTED_STATE, aborted=query.Status.State == QUERY_ABORTED_STATE,
) )
for query in query_list.QueryExecutions for query in query_list.QueryExecutions
if query.Status.SubmissionDateTime.date() >= self.start.date() if query.Status
and query.Query
and query.Status.SubmissionDateTime.date() >= self.start.date()
and self.is_not_dbt_or_om_query(query.Query) and self.is_not_dbt_or_om_query(query.Query)
] ]
yield TableQueries(queries=queries) yield TableQueries(queries=queries)