GCP Recommendation 에서 Big query 로 export 할 수 있다.
export 한 데이터는 다음과 같이 sql로 쿼리하여 recommendation_detail의 json 값을 가져올 수도 있다.
아래는 change_machine_type인 subtype 기준으로 데이터를 뽑는 것이다.
다음의 빅쿼리 가이드북을 참고하였다.
https://zzsza.github.io/bigquery/
SPLIT -> resource 를 불러와서 '/' 문자로 나눈 Array 형태.
OFFSET(4) -> Array의 5번째 값. (0부터 시작)
JSON_QUERY(json값이 있는 칼럼, $(json안에서 불러올 값의 위치. '.' 로 하위 위치 표시))
AS -> 결과 출력에서 표시할 칼럼이름
AND DATE(_PARTITIONTIME) = "2022-09-25" → 09월 25일에 추출된 데이터 가져오기
SELECT SPLIT(JSON_QUERY(recommendation_details, "$.overview.resource"),'/')[OFFSET(4)] AS PROJECT, JSON_QUERY(recommendation_details, "$.overview.location") AS LOCATION, JSON_QUERY(recommendation_details, "$.overview.resourceName") AS INSTANCE_NAME, JSON_QUERY(recommendation_details, "$.overview.currentMachineType.name") AS BEFORE_TYPE, JSON_QUERY(recommendation_details, "$.overview.currentMachineType.guestCpus") AS BEFORE_CPU, JSON_QUERY(recommendation_details, "$.overview.currentMachineType.memoryMb") AS BEFORE_MEMORY, JSON_QUERY(recommendation_details, "$.overview.recommendedMachineType.name") AS AFTER_TYPE, JSON_QUERY(recommendation_details, "$.overview.recommendedMachineType.guestCpus") AS AFTER_CPU, JSON_QUERY(recommendation_details, "$.overview.recommendedMachineType.memoryMb") AS AFTER_MEMORY, primary_impact.cost_projection.cost.currency_code AS COST_CODE, primary_impact.cost_projection.cost.units AS COST_UNIT, primary_impact.cost_projection.cost.nanos AS COST_NANO, primary_impact.cost_projection.duration.seconds AS COST_DURATIONsFROM `{프로젝트}.{DATASET}.{TABLE}`WHERE recommender_subtype = "CHANGE_MACHINE_TYPE"
AND DATE(_PARTITIONTIME) = "2022-09-25"
