BigQuery에 결제 데이터 내보내기

비용 모니터링, 분석 및 최적화를 위한 도구가 개발 관리의 중요한 부분으로 자리 잡았습니다. BigQuery 결제 내보내기를 통해 일일 사용량 및 비용 예측을 직접 지정한 BigQuery 데이터세트로 자동으로 계속 내보낼 수 있습니다. 그런 다음 BigQuery에서 결제 데이터에 액세스할 수 있습니다. 이 내보내기 방법을 사용하여 데이터를 JSON 파일로 내보낼 수도 있습니다.

CSV 및 JSON으로 정규 파일 내보내기도 가능합니다. 그러나 정규 파일 내보내기를 사용하는 경우 BigQuery로 내보낼 때보다 작은 데이터세트가 캡처된다는 점에 주의해야 합니다. 정규 파일 내보내기 및 캡처되는 데이터에 대한 자세한 내용은 파일로 결제 데이터 내보내기를 참조하세요.

BigQuery로 결제 내보내기를 사용 설정하는 방법

BigQuery로 결제 내보내기를 사용 설정하는 방법은 다음과 같습니다.

  1. Google Cloud Platform Console로 이동합니다.
  2. 왼쪽 메뉴를 열고 결제를 선택합니다.
  3. 결제 계정이 둘 이상인 경우 현재 프로젝트의 결제를 관리하기 위해 연결된 결제 계정으로 이동을 선택합니다. 다른 결제 계정을 찾으려면 결제 계정 관리를 선택합니다.
  4. 결제 내보내기를 클릭합니다.
  5. BigQuery 내보내기를 선택합니다.
  6. 프로젝트 목록에서 BigQuery 데이터세트가 저장된 프로젝트를 선택합니다. BigQuery 데이터세트를 아직 만들지 않은 경우 데이터세트를 만들라는 메시지가 표시됩니다.
  7. 필요한 경우 새 데이터세트를 만드는 방법은 다음과 같습니다.

    1. BigQuery 웹 UI에서 프로젝트 이름 옆의 아래쪽 화살표를 클릭하고 새 데이터세트 만들기를 클릭합니다.
    2. 데이터세트의 데이터세트 ID, 데이터 위치데이터 만료를 지정하고 확인을 클릭합니다.
  8. 콘솔의 결제 내보내기 데이터세트 목록에서 데이터를 내보낼 데이터세트를 지정합니다. 방금 데이터세트를 만든 경우 새 데이터세트의 이름을 선택합니다.

  9. BigQuery 내보내기 사용 설정을 클릭합니다.

BigQuery 내보내기를 사용 설정한 후 데이터가 표시되기 시작할 때까지 몇 시간 정도 걸릴 수 있습니다. 이렇게 하면 자동으로 결제 데이터를 BigQuery에 정기적으로 내보내지만, BigQuery의 업데이트 빈도는 사용하는 서비스에 따라 다릅니다. BigQuery 로드는 ACID와 호환되므로, 데이터를 로드하는 중 BigQuery 결제 내보내기 데이터세트를 쿼리할 경우, 부분적으로 로드된 데이터가 발생하지 않습니다. BigQuery 특성에 대해 자세히 알아보세요.

결제 데이터 내보내기 테이블 버전 정보: 원본 및 v1

BigQuery 데이터 내보내기를 사용 설정한 시점에 따라 데이터세트에 둘 이상의 테이블이 포함될 수 있습니다. GA 기능 출시 시점(2017년 11월 중순) 이후에 BigQuery 데이터 내보내기를 사용 설정한 경우 v1 버전만 표시되므로 이 섹션의 나머지 부분은 무시하시기 바랍니다.

기능이 베타 단계였던 시점에 BigQuery 데이터 내보내기를 사용 설정한 경우 내보낸 결제 데이터가 데이터세트에서 두 가지 테이블로 유입됩니다. 이러한 테이블은 같은 데이터의 두 가지 버전(원본 버전 및 새로운 v1 버전)을 포함합니다.

베타 참여 고객에게는 당분간 두 가지 형식이 모두 제공되므로 기존과 같이 결제 데이터를 분석하면서 v1 스키마로 전환할 수 있습니다. 새 결제 데이터가 유입될 때 자동으로 두 BigQuery 테이블로 내보냅니다.

테이블 이름을 통해 데이터 버전을 알 수 있습니다.

  • 원본 버전: gcp_billingexportBILLING_ACCOUNT_ID
  • v1 버전: gcp_billing_exportv1BILLING_ACCOUNT_ID

원본 버전과 v1의 차이점

내보내기 스키마에 몇 가지 변화가 있었습니다. 일부 열이 Google Cloud Platform의 나머지 부분과 일치하도록 이름이 바뀌었고, 비용과 관련하여 유용한 추가 정보를 포함하는 열이 몇 개 추가되었습니다.

스키마 변경사항을 요약하면 다음과 같습니다.

  • product 열 이름을 service.description으로 변경
  • resource_type 열 이름을 sku.description으로 변경
  • start_timeend_time 열 이름을 usage_start_timeusage_end_time으로 변경
  • service.id 열 추가
  • sku.id 열 추가
  • export_time 열 추가

sku.id 열을 사용하면 각 항목을 Cloud Billing Catalog API를 통해 Google Cloud Platform 가격 페이지에 공시된 정가에 매핑할 수 있습니다. export_time 열을 사용하면 결제 데이터가 마지막으로 업데이트된 시점을 파악할 수 있습니다.

BigQuery의 결제 데이터

다음 표에서는 BigQuery로 내보내는 결제 데이터의 내용을 보여줍니다.

필드 유형 설명
billing_account_id 문자열 사용량에 연결된 결제 계정 ID입니다.
invoice.month 문자열

비용 항목이 포함된 인보이스의 연도 및 월(YYYYMM)입니다. 예를 들어 '201901'은 2019년 1월에 해당합니다.

이 필드를 사용하여 인보이스에 대한 총 청구 금액을 확인할 수 있습니다. BigQuery 쿼리로 결제 내보내기 예제를 참조하세요.

cost_type 문자열

정기 비용, 세금, 조정 또는 반올림 오류 등 이 항목이 나타내는 비용 유형입니다.

service.id(v1 전용) 문자열 사용량에 연결된 서비스의 ID입니다.
service.description(v1)
product(원본)
문자열 결제 데이터를 보고한 Google Cloud Platform 서비스입니다.
sku.id(v1 전용) 문자열 서비스에서 사용한 리소스의 ID입니다. 전체 SKU 목록은 GCP SKU를 참조하세요.
sku.description(v1)
resource_type(원본)
문자열 서비스에서 사용한 리소스 유형에 대한 설명입니다. 예를 들어 Cloud Storage의 리소스 유형은 Standard Storage US입니다.
usage_start_time(v1)
start_time(원본)
타임스탬프 서비스 사용이 시작된 시점의 UNIX 타임스탬프입니다. 자세한 내용은 타임스탬프 데이터 유형에 대한 BigQuery 문서를 참조하세요. 또한 아래의 내보낸 데이터와 인보이스의 차이점을 참조하세요.
usage_end_time(v1)
end_time(원본)
타임스탬프 서비스 사용이 끝난 시점의 UNIX 타임스탬프입니다. 자세한 내용은 타임스탬프 데이터 유형에 대한 BigQuery 문서를 참조하세요. 또한 아래의 내보낸 데이터와 인보이스의 차이점을 참조하세요.
project.id 문자열 결제 데이터를 생성한 프로젝트의 ID입니다.
project.name 문자열 결제 데이터를 생성한 프로젝트의 이름입니다.
project.ancestry_numbers 문자열 지정된 project.id로 식별된 프로젝트에 대한 리소스 계층의 상위 항목입니다(예: my-project-123).

예: /ParentOrgNumber/ParentFolderNumber/. 리소스 계층에 대해 자세히 알아보세요.

project.labels.key 문자열 라벨이 있는 경우, 사용량이 발생한 프로젝트의 라벨을 구성하는 키:값 쌍에서 부분입니다. 라벨 사용에 대한 자세한 내용은 라벨 사용을 참조하세요.
project.labels.value 문자열 라벨이 있는 경우, 사용량이 발생한 프로젝트의 라벨을 구성하는 키:값 쌍에서 부분입니다. 라벨 사용에 대한 자세한 내용은 라벨 사용을 참조하세요.
labels.key 문자열 라벨이 있는 경우, 사용량이 발생한 리소스의 라벨을 구성하는 키:값 쌍에서 부분입니다. 라벨 사용에 대한 자세한 내용은 라벨 사용을 참조하세요.
labels.value 문자열 라벨이 있는 경우, 사용량이 발생한 리소스의 라벨을 구성하는 키:값 쌍에서 부분입니다. 라벨 사용에 대한 자세한 내용은 라벨 사용을 참조하세요.
system_labels.key 문자열 라벨이 있는 경우, 사용량이 발생한 리소스의 시스템 생성 라벨을 구성하는 키:값 쌍에서 부분입니다. 또한 아래의 사용 가능한 시스템 라벨을 참조하세요.
system_labels.value 문자열 라벨이 있는 경우, 사용량이 발생한 리소스의 시스템 생성 라벨을 구성하는 키:값 쌍에서 부분입니다. 또한 아래의 사용 가능한 시스템 라벨을 참조하세요.
location.location 문자열 국가, 지역 또는 영역의 수준에서 사용량의 위치 또는 특정 위치가 없는 리소스의 경우 global입니다. 자세한 내용은 지역 및 영역을 참조하세요.
location.country 문자열 location.location이 국가, 지역 또는 영역인 경우, 이 필드는 사용량이 발생한 국가(예: US)입니다. 자세한 내용은 지역 및 영역을 참조하세요.
location.region 문자열 location.location이 국가 또는 지역인 경우 이 필드는 사용량이 발생한 지역(예: us-central1)입니다. 자세한 내용은 지역 및 영역을 참조하세요.
location.zone 문자열 location.location이 영역인 경우 이 필드는 사용량이 발생한 영역(예: us-central1-a)입니다. 자세한 내용은 지역 및 영역을 참조하세요.
cost 부동 소수점 결제 계정에 청구된 금액입니다.
currency 문자열 청구된 비용의 통화입니다. 자세한 내용은 현지 통화로 청구 및 결제를 참조하세요.
currency_conversion_rate 부동 소수점 미국 달러와 현지 통화의 환율입니다. 따라서 cost/currency_conversion_rate는 미국 달러로 계산한 비용입니다.
usage.amount 부동 소수점 사용한 usage.unit의 양입니다.
usage.unit 문자열 리소스 사용량을 측정하는 기본 단위입니다. 예를 들어 표준 저장소의 기본 단위는 byte-seconds입니다.
usage.amount_in_pricing_units 부동 소수점 사용한 usage.pricing_unit의 양입니다. 이 필드는 2018년 1월 22일부터 현재까지의 데이터를 반환합니다.
usage.pricing_unit 문자열 리소스 사용량을 측정하는 단위로서 Catalog API(현재 베타 단계)를 기준으로 합니다. 이 필드는 2018년 1월 22일부터 현재까지의 데이터를 반환합니다.
credits.name 문자열 결제 계정에 적용된 크레딧에 대한 설명입니다.
credits.amount 부동 소수점 사용량에 적용된 크레딧 금액입니다. 크레딧은 항상 음수이며 총 요금은 cost + credits.amount로 계산됩니다.
export_time(v1 전용) 타임스탬프 새 추가 데이터에 연결된 처리 시간입니다. 새로 내보낼 때마다 항상 증가합니다.
또한 아래의 내보낸 데이터와 인보이스의 차이점을 참조하세요.

라벨 정보

BigQuery 데이터세트에는 라벨 열이 있지만 현재 버전에서는 일부 라벨 값이 비어 있습니다. 라벨 내보내기 데이터가 입력되는 시점은 해당 서비스가 라벨을 제공하는 시점에 따라 다릅니다.

사용 가능한 시스템 라벨

시스템 라벨은 사용량을 생성한 리소스에 대한 중요 메타데이터의 키-값 쌍입니다. 다음 시스템 라벨은 적용 가능한 사용량에 자동으로 포함됩니다.

system_labels.key 예제 system_labels.value 설명
compute.googleapis.com/machine_spec n1-standard-1, custom-2-2048 가상 머신의 구성입니다. 자세한 내용은 머신 유형을 참조하세요.
compute.googleapis.com/cores n1-standard-4의 경우는 4, custom-2-2048의 경우는 2 가상 머신에 사용할 수 있는 vCPU 수입니다.
compute.googleapis.com/memory n1-standard-4의 경우는 15360(즉, 15GB * 1024MB/GB), custom-2-2048의 경우는 2048 가상 머신에 사용할 수 있는 메모리 양(MB)입니다.

내보낸 데이터와 인보이스의 차이점

타임스탬프 필드를 기준으로 쿼리하면 인보이스에 포함되지 않은 지연 보고 사용량이 포함될 수 있으므로, 반환된 데이터가 인보이스에 직접 매핑되지 않을 수 있습니다.

타임스탬프 필드는 다음과 같습니다.

  • usage_start_time(v1) 또는 start_time(원본)
  • usage_end_time(v1) 또는 end_time(원본)
  • export_time

오류 및 조정

드문 경우이지만, 결제 데이터에 오류가 포함되거나 조정이 필요한 경우 결제 데이터에 오류를 상쇄하는 데이터가 추가됩니다. 다음 열을 제외한 모든 열은 그대로 유지됩니다.

  • cost
  • credit
  • usage.amount
  • export_time

새로운 데이터가 무엇인지 판단해야 하는 경우 export_time(v1 전용)을 쿼리하면 됩니다. 원본 버전을 사용한다면 다음 예와 같은 쿼리를 사용할 수 있습니다.

SELECT partition_id, MSEC_TO_TIMESTAMP(last_modified_time)
FROM [dataset_name.table_name$__PARTITIONS_SUMMARY__]

위의 쿼리 예에서는 이전 SQL을 사용해야 합니다. 표준 SQL은 파티션 데코레이터 구분기호($)를 지원하지 않기 때문입니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.