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):
QueryExecutionIds: List[str]
class ResultReuseByAgeConfiguration(BaseModel):
Enabled: bool
class ResultConfiguration(BaseModel):
OutputLocation: str
class QueryExecutionContext(BaseModel):
Database: str
Catalog: str
QueryExecutionIds: Optional[List[str]]
class Status(BaseModel):
State: str
SubmissionDateTime: datetime
CompletionDateTime: datetime
class ResultReuseInformation(BaseModel):
ReusedPreviousResult: bool
State: Optional[str]
SubmissionDateTime: Optional[datetime]
class Statistics(BaseModel):
EngineExecutionTimeInMillis: int
DataScannedInBytes: int
TotalExecutionTimeInMillis: int
QueryQueueTimeInMillis: int
ServiceProcessingTimeInMillis: int
ResultReuseInformation: ResultReuseInformation
class EngineVersion(BaseModel):
SelectedEngineVersion: str
EffectiveEngineVersion: str
TotalExecutionTimeInMillis: Optional[int]
class AthenaQueryExecution(BaseModel):
QueryExecutionId: str
Query: str
StatementType: str
ResultConfiguration: ResultConfiguration
ResultReuseConfiguration: dict
QueryExecutionContext: QueryExecutionContext
Status: Status
Statistics: Statistics
WorkGroup: str
EngineVersion: EngineVersion
SubstatementType: Optional[str]
Query: Optional[str]
Statistics: Optional[Statistics]
Status: Optional[Status]
class AthenaQueryExecutionList(BaseModel):
QueryExecutions: List[AthenaQueryExecution]
QueryExecutions: Optional[List[AthenaQueryExecution]]

View File

@ -48,11 +48,15 @@ class AthenaUsageSource(AthenaQueryParserSource, UsageSource):
),
analysisDate=query.Status.SubmissionDateTime,
serviceName=self.config.serviceName,
duration=query.Statistics.TotalExecutionTimeInMillis,
duration=query.Statistics.TotalExecutionTimeInMillis
if query.Statistics
else None,
aborted=query.Status.State == QUERY_ABORTED_STATE,
)
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)
]
yield TableQueries(queries=queries)