BigQuery를 사용한 데이터 베이스 디스크 활용도 모니터링

8477 단어 BigQuery

배경.


데이터 기반은 의사결정에 사용되어야 가치를 발휘할 수 있다.데이터 기초가 적절하게 개발/운용되었는지 모니터링하려면 데이터 기초가 조직의 결정에 얼마나 기여했는지 측정하십시오.하지만 그걸 측정하기는 어려워요.
이에 따라 이번에는 빅큐리 데이터를 활용한 토대 위에서 어느 정도 활용되고 있는지 모니터링할 수 있게 돼 의사결정에 기여하는 분위기와 공기감을 파악할 수 있기를 기대한다.

지속 메타데이터 테이블 필요


BigQuery의 활용도를 모니터링하는 데 가장 중요한 것은 메타데이터의 지속성이다.
예를 들어 조회 작업의 메타데이터를 저장하는 데 사용되는 보기INFORMATION_SCHEMA.JOBS_BY_*는 180일만 저장된다.장기적인 경계 감시를 위해서는 이 일대를 지속할 필요가 있다.예를 들어 일상생활에서 하루의 기록을 미리 저장하는 등이다.

감시


1. 원가 모니터링


나는 GCP의 지불 보고서가 원가를 충분히 모니터링할 수 있다고 생각한다.각 제품의 원가 추이와 매일의 원가 추이를 볼 수 있다.

2. 대시보드 수량 & 대시보드 PV


데이터 기반의 활용이 조직에서 확장되면 활용될 기회가 많아지는 계기판.
정기적으로 참조하는 대시보드가 몇 개, PV가 몇 개인지 살펴보면 활용도의 추이를 쉽게 볼 수 있다.
Tableau는 PV 기능이 있기 때문에 그것을 이용한다.Data Portal의 경우 GA가 포함될 수 있기 때문에 이를 활용한다.
보고서 사용 측정

3. 질의 UU 실행


조회를 실행하는 계정의 유일한 수량을 계산합니다.매달 빅큐리를 보는 사람이 얼마나 될까.
SELECT
  DATE_TRUNC(DATE(creation_time, "Asia/Tokyo"), MONTH),
  COUNT(distinct(user_email)) as uu,
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE job_type = "QUERY"
AND state = "DONE"
GROUP BY 1
ORDER BY 1 ASC

4. 조회량의 추이


한 달에 얼마나 스캔했어?이것이 많으면 좋거나 적기 때문에 안 되는 것은 아니다.추이를 보면서 사용 범위를 파악할 수 있다.
WITH base_tables as (
SELECT
  job_id,
  creation_time,
  total_bytes_processed,
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT 
WHERE job_type = "QUERY" 
AND state = "DONE" 
)

SELECT
  DATE_TRUNC(DATE(creation_time, 'Asia/Tokyo'), MONTH),
  COUNT(*)
FROM base_tables
GROUP BY 1
ORDER BY 1 asc

5. 스캐너의 추이


한 달에 얼마나 스캔했어?이것이 많으면 좋거나 적기 때문에 안 되는 것은 아니다.추이를 보면서 사용 범위를 파악할 수 있다.
WITH base_tables as (
SELECT
  job_id,
  creation_time,
  total_bytes_processed,
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT 
WHERE job_type = "QUERY" 
AND state = "DONE" 
)

SELECT
  DATE_TRUNC(DATE(creation_time, 'Asia/Tokyo'), MONTH),
  SUM(total_bytes_processed)
FROM base_tables
GROUP BY 1
ORDER BY 1 asc

6. 데이터 양


득점만 할 수 있다.나는 매일 보존하여 추이를 보고 싶다.
SELECT
  table_id,
  SUM(size_bytes) / 1000000000 as size_GB
FROM (
  SELECT * FROM `datasource1.__TABLES__`
  UNION ALL
  SELECT * FROM `datasource2.__TABLES__`
  UNION ALL
  SELECT * FROM `datasource3.__TABLES__`
)
GROUP BY 1
ORDER BY 2 desc

7. 기록수


득점만 할 수 있다.나는 매일 보존하여 추이를 보고 싶다.
SELECT
  SUM(row_count)
FROM (
  SELECT * FROM `datasource1.__TABLES__`
  UNION ALL
  SELECT * FROM `datasource2.__TABLES__`
  UNION ALL
  SELECT * FROM `datasource3.__TABLES__`
)
--GROUP BY 1
ORDER BY 1 desc

좋은 웹페이지 즐겨찾기