연결된 BigQuery 데이터 세트 쿼리

이 문서에서는 로그 버킷의 연결된 데이터 세트를 만드는 방법과 해당 데이터 세트에서 로그를 쿼리하고 보는 방법을 설명합니다. 예를 들어 예약된 BigQuery 슬롯을 사용하여 로그 애널리틱스에서 쿼리를 실행할 수 있도록 연결된 데이터 세트를 만들 수 있습니다. 마찬가지로 BigQuery 또는 Looker Studio에서 로그 데이터를 다른 비즈니스 데이터와 조인하는 쿼리를 작성할 수 있도록 연결된 데이터 세트가 필요할 수 있습니다.

로그 애널리틱스에 익숙하지 않으면 로그 애널리틱스 개요를 참조하세요.

연결된 데이터 세트가 필요한 경우

기본 Cloud Logging 서비스를 사용하는 경우 로그 애널리틱스 페이지에서 로그 뷰에 쿼리를 실행하는 데 연결된 BigQuery 데이터 세트가 필요하지 않습니다. 쿼리를 저장 및 공유하고 결과를 커스텀 대시보드에 저장할 수 있습니다.

다음 작업을 수행하려면 연결된 BigQuery 데이터 세트가 필요합니다.

  • 로그 항목 데이터를 다른 BigQuery 데이터 세트와 조인합니다.
  • BigQuery Studio 페이지 또는 Looker Studio와 같은 다른 서비스에서 로그 데이터를 쿼리합니다.
  • BigQuery 예약된 슬롯에서 쿼리를 실행하여 로그 애널리틱스에서 실행되는 쿼리의 성능을 향상시킵니다.
  • SQL 쿼리의 결과를 모니터링하는 알림 정책을 만듭니다. 자세한 내용은 알림 정책으로 SQL 쿼리 결과 모니터링을 참고하세요.

로그 버킷의 연결된 BigQuery 데이터 세트를 사용하면 BigQuery에서 로그 버킷의 데이터를 읽을 수 있습니다.

예약된 BigQuery 슬롯에서 쿼리를 실행하는 경우 쿼리에 용량 컴퓨팅 가격 책정이 적용됩니다. 또한 로그 애널리틱스 이외의 서비스를 사용하여 데이터를 쿼리하면 해당 서비스에 따라 다른 요금이 청구될 수 있습니다. 사용 중인 서비스의 가격 책정 페이지를 참조하세요.

로그 버킷 및 로그 뷰가 BigQuery 객체에 매핑되는 방식

로그 버킷에 연결된 BigQuery 데이터 세트를 만들면 BigQuery에서 새 데이터 세트를 사용할 수 있게 됩니다. 연결 과정에서 연결된 데이터 세트의 이름을 지정합니다. 로그 버킷 내의 모든 로그 뷰는 데이터 세트의 가상 뷰에 자동으로 매핑됩니다. 가상 뷰의 이름은 해당 로그 뷰와 동일합니다.

예를 들어 프로젝트 my_projectexample라는 로그 버킷이 있고 이 로그 버킷에 _AllLogs라는 로그 뷰가 있다고 가정해 보겠습니다. my_dataset라는 이름으로 해당 로그 버킷의 연결된 데이터 세트를 만들면 BigQuery의 탐색기 페이지에 my_project 항목이 표시됩니다. my_project 항목의 하위 요소는 이름이 my_dataset인 데이터 세트이며 이 데이터 세트에는 _AllLogs라는 가상 뷰가 나열됩니다.

연결된 데이터 세트를 사용할 때의 액세스 제어 시사점

사용자가 연결된 BigQuery 데이터 세트에서 뷰를 쿼리하면 Cloud Logging 권한 레이어가 아닌 BigQuery 권한 레이어를 통해 쿼리가 실행됩니다. 따라서 연결된 데이터 세트에서 주 구성원에게 부여된 BigQuery 역할 및 권한에 따라 데이터 세트를 쿼리할 수 있는지 여부가 결정됩니다.

연결된 데이터 세트 내의 특정 가상 뷰로 주 구성원을 제한할 수는 없습니다. 연결된 데이터 세트에 대한 액세스 권한이 부여된 사용자는 해당 데이터 세트의 모든 뷰를 쿼리할 수 있습니다.

시작하기 전에

이 섹션에서는 Log Analytics를 사용하기 전에 완료해야 하는 단계를 설명합니다.

로그 버킷 구성

로그 애널리틱스를 사용하도록 로그 버킷이 업그레이드되었는지 확인합니다.

  1. Google Cloud 콘솔에서 로그 스토리지 페이지로 이동합니다.

    로그 스토리지로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  2. 쿼리하려는 로그 뷰가 있는 로그 버킷마다 로그 애널리틱스 사용 가능 열에 열기가 표시되어 있는지 확인합니다. 업그레이드가 표시되면 업그레이드를 클릭하고 대화상자를 완료합니다.

IAM 역할 및 권한 구성

이 섹션에서는 로그 애널리틱스를 사용하는 데 필요한 IAM 역할 또는 권한을 설명합니다.

  • 로그 애널리틱스를 사용하고 로그 뷰를 쿼리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.

    • _Required_Default 로그 버킷을 쿼리하려는 경우: 로그 뷰어(roles/logging.viewer)
    • 프로젝트의 모든 로그 뷰를 쿼리하려는 경우: 로그 뷰 접근자(roles/logging.viewAccessor)

    프로젝트 수준에서 부여된 로그 뷰 액세스자 역할에 IAM 조건을 추가하거나 로그 뷰의 정책 파일에 IAM 바인딩을 추가하여 주 구성원을 특정 로그 뷰로 제한할 수 있습니다. 자세한 내용은 로그 뷰에 대한 액세스 제어를 참조하세요.

    이는 로그 탐색기 페이지에서 로그 항목을 보는 데 필요한 권한과 같습니다. 사용자 정의 버킷에 대한 뷰를 쿼리하거나 _Default 로그 버킷의 _AllLogs 뷰를 쿼리하는 데 필요한 추가 역할에 대한 자세한 내용은 Cloud Logging 역할을 참조하세요.

  • 연결된 데이터 세트를 만들고 쿼리하는 데 필요한 권한을 얻으려면 관리자에게 로그 버킷을 저장하는 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

    • 연결된 데이터 세트를 만들고 보려는 경우: 로그 구성 작성자(roles/logging.configWriter)
    • 예약된 BigQuery 슬롯을 사용하여 연결된 데이터 세트에서 쿼리를 실행하려는 경우:
    • BigQuery Studio에서 연결된 데이터 세트를 보려면 이 단계에 언급된 모든 역할과 다음 역할을 부여합니다. 데이터 세트 또는 프로젝트에 BigQuery 데이터 뷰어(roles/bigquery.dataViewer) 역할을 부여할 수 있습니다.

BigQuery 버전 확인

예약된 BigQuery 슬롯을 사용하여 로그 애널리틱스 페이지에서 로그 데이터를 쿼리하려는 경우와 Virtual Private Cloud (VPC) 서비스 제어와 함께 프로젝트를 사용하는 경우 BigQuery Enterprise 버전을 사용하고 있는지 확인합니다. 자세한 내용은 BigQuery 버전 이해를 참고하세요.

BigQuery의 기능을 사용하여 로그 데이터를 분석하려면 로그 애널리틱스를 사용하도록 로그 버킷을 업그레이드한 다음 연결된 데이터 세트를 만듭니다. 이 구성을 사용하면 Logging에서 로그 데이터를 저장하지만 BigQuery에서 로그 데이터를 읽을 수 있습니다.

Google Cloud 콘솔

기존 로그 버킷의 BigQuery 데이터 세트에 대한 링크를 만들려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 로그 스토리지 페이지로 이동합니다.

    로그 스토리지로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  2. 로그 버킷을 찾아 로그 애널리틱스 사용 가능 열에 열기가 표시되는지 확인합니다.

    이 열에 업그레이드가 표시되면 로그 버킷이 로그 애널리틱스를 사용하도록 업그레이드되지 않은 것입니다. 로그 애널리틱스를 구성합니다.

    1. 업그레이드를 클릭합니다.
    2. 대화상자에서 확인을 클릭합니다.

    업그레이드가 완료되면 다음 단계로 진행합니다.

  3. 로그 버킷에서 더보기를 클릭한 다음 버킷 수정을 수정합니다.

    로그 버킷 수정 대화상자가 열립니다.

  4. 이 버킷에 연결되는 새 BigQuery 데이터 세트 만들기를 선택하고 새 데이터 세트의 이름을 입력합니다.

    데이터 세트 이름은 Google Cloud 프로젝트마다 고유해야 합니다. 기존 데이터 세트의 이름을 입력하면 Dataset name must be unique in the selected region. 오류가 표시됩니다.

  5. 완료를 클릭한 다음 버킷 업데이트를 클릭합니다.

    Logging의 로그 스토리지 페이지에 연결된 데이터 세트 이름이 표시된 후 BigQuery에서 데이터 세트를 인식하기까지 몇 분 정도 걸릴 수 있습니다.

gcloud

로그 애널리틱스를 사용하도록 업그레이드된 로그 버킷의 연결된 데이터 세트를 만들려면 gcloud logging links create 명령어를 실행합니다.

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

제공하는 LINK_ID는 BigQuery 데이터 세트의 이름으로 사용되며 이 필드 값은 Google Cloud 프로젝트에서 고유해야 합니다.

links create 명령어는 비동기식입니다. 비동기 메서드는 Operation 객체를 반환하며 메서드의 진행률에 대한 정보를 포함합니다. 메서드가 완료되면 Operation 객체에 상태가 포함됩니다. 자세한 내용은 비동기 API 메서드를 참조하세요.

links create 명령어가 완료되는 데 몇 분 정도 걸립니다.

예를 들어 다음 명령어는 my-bucket이라는 로그 버킷에 대해 mylink라는 연결된 데이터 세트를 만듭니다.

gcloud logging links create mylink --bucket=my-bucket --location=global

데이터 세트 이름은 Google Cloud 프로젝트마다 고유해야 합니다. 기존 데이터 세트와 이름이 같은 데이터 세트를 만들려고 하면 다음 오류가 표시됩니다.

BigQuery dataset with name "LINK_ID" already exists.

로그 분석을 사용하도록 업그레이드되지 않은 로그 버킷에 연결된 데이터 세트를 만들려고 하면 다음 오류가 보고됩니다.

A link can only be created for an analytics-enabled bucket.

REST

로그 분석을 사용하여 업그레이드된 기존 로그 버킷에 연결된 BigQuery 데이터 세트를 만들려면 Cloud Logging API의 비동기 projects.locations.buckets.links.create 메서드를 호출합니다.

메서드의 인수를 다음과 같이 준비하세요.

  1. create 명령어의 요청 본문을 구성합니다. 요청 본문은 Link 객체로 형식이 지정됩니다.
  2. 명령어의 쿼리 매개변수에는 linkId=LINK_ID를 사용합니다. 제공하는 LINK_ID는 BigQuery 데이터 세트의 이름으로 사용되며 이 필드 값은 Google Cloud 프로젝트에서 고유해야 합니다.

비동기 메서드에 대한 응답은 Operation 객체입니다. 이 객체에는 메서드의 진행률에 대한 정보가 포함됩니다. 메서드가 완료되면 Operation 객체에 상태가 포함됩니다. 자세한 내용은 비동기 API 메서드를 참조하세요.

links.create 메서드가 완료되는 데 몇 분 정도 걸립니다.

데이터 세트 이름은 Google Cloud 프로젝트마다 고유해야 합니다. 기존 데이터 세트와 이름이 같은 데이터 세트를 만들려고 하면 다음 오류가 표시됩니다.

BigQuery dataset with name "LINK_ID" already exists.

로그 분석을 사용하도록 업그레이드되지 않은 로그 버킷에 연결된 데이터 세트를 만들려고 하면 다음 오류가 보고됩니다.

A link can only be created for an analytics-enabled bucket.

BigQuery에서 쿼리 실행

로그 애널리틱스 및 연결된 데이터 세트를 사용하는 로그 버킷이 있는 경우 BigQuery Studio 페이지를 사용하여 연결된 데이터 세트를 보고 쿼리할 수 있습니다. 이 구성을 사용하면 BigQuery Studio에서만 사용할 수 있는 명령어, 워크플로, 데이터 세트를 사용하여 데이터 세트를 분석할 수 있습니다.

로그 애널리틱스에서 BigQuery를 열고 연결된 데이터 세트를 쿼리하려면 다음을 수행합니다.

  1. 쿼리하려는 로그 뷰를 호스팅하는 로그 버킷에 연결된 데이터 세트가 있는지 확인합니다.

    1. Google Cloud 콘솔에서 로그 스토리지 페이지로 이동합니다.

      로그 스토리지로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

    2. 로그 버킷을 찾고 BigQuery 연결 데이터 세트 열에 URL이 표시되는지 확인합니다. 항목이 비어 있으면 연결된 데이터 세트를 만들어야 합니다. 이 단계에 대한 자세한 내용은 연결된 BigQuery 데이터 세트 만들기를 참조하세요.

  2. Google Cloud 콘솔에서 로그 분석 페이지로 이동합니다.

    로그 애널리틱스로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  3. 로그 뷰 목록에서 로그 뷰를 찾은 후 쿼리를 선택합니다. 쿼리 창에는 기본 쿼리가 채워집니다. 쿼리 창에 쿼리를 입력하거나 표시된 쿼리를 수정할 수도 있습니다.

  4. 툴바에서 쿼리 실행 또는 BigQuery에서 실행 라벨이 지정된 버튼을 펼치고 BigQuery에서 열기를 선택합니다.

    BigQuery Studio 페이지가 열립니다. 쿼리의 FROM 문은 BigQuery 테이블 경로 구문을 통해 연결된 데이터 세트에서 로그 뷰 경로를 지정하도록 수정됩니다.

    표시된 쿼리를 수정할 수도 있습니다.

  5. BigQuery Studio 페이지에서 쿼리 실행을 클릭합니다.

예약된 BigQuery 슬롯에서 로그 애널리틱스 쿼리 실행

로그 애널리틱스 쿼리의 실행 시간을 최소화하려면 예약된 BigQuery 슬롯에서 쿼리를 실행합니다. 로그 애널리틱스 페이지는 기본 로그 애널리틱스 서비스를 사용하도록 사전 구성되어 있으므로 쿼리가 제한된 슬롯 공간을 다른 쿼리와 경쟁해야 합니다. 사용 가능한 슬롯이 없으면 쿼리 실행이 지연됩니다. 예약된 BigQuery 슬롯에서 쿼리를 실행하면 이러한 지연을 방지할 수 있습니다.

로그 뷰에 대해 SQL 쿼리를 실행하려면 다음을 수행합니다.

  1. 쿼리하려는 로그 뷰를 호스팅하는 로그 버킷에 연결된 데이터 세트가 있는지 확인합니다.

    1. Google Cloud 콘솔에서 로그 스토리지 페이지로 이동합니다.

      로그 스토리지로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

    2. 로그 버킷을 찾고 BigQuery 연결 데이터 세트 열에 URL이 표시되는지 확인합니다. 항목이 비어 있으면 연결된 데이터 세트를 만들어야 합니다. 이 단계에 대한 자세한 내용은 연결된 BigQuery 데이터 세트 만들기를 참조하세요.

  2. 예약된 BigQuery 슬롯을 구성했는지 확인합니다.

    1. 전용 슬롯이 있는 예약 만들기
    2. 예약 할당 만들기
  3. 예약된 BigQuery 슬롯에서 쿼리를 실행하도록 로그 애널리틱스를 구성합니다.

    1. Google Cloud 콘솔에서 로그 분석 페이지로 이동합니다.

      로그 애널리틱스로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

    2. 로그 뷰 목록에서 뷰를 찾은 후 쿼리를 선택하거나 쿼리를 입력합니다.

      쿼리 창에 FROM 문을 참조하는 오류 메시지가 표시되면 테이블을 특정 로그 뷰로 확인할 수 없습니다. 이 실패를 해결하는 방법은 FROM clause must contain exactly one log view 오류를 참조하세요.

    3. 툴바로 이동하여 BigQuery에서 실행 라벨이 지정된 버튼이 표시되는지 확인합니다.

      툴바에 쿼리 실행이 표시되면 설정을 클릭하고 BigQuery를 선택합니다.

      BigQuery에서 실행 버튼이 중지되면 연결된 데이터 세트를 만들어야 합니다.

    4. 쿼리를 실행합니다.

      툴바 옵션을 사용하여 쿼리 형식을 지정하고, 쿼리를 삭제하고, BigQuery SQL 참조 문서를 열 수 있습니다.

다음 단계