표 통계 생성
이 문서에서는 BigQuery 테이블, BigLake 테이블, 외부 테이블의 테이블 통계를 생성하는 방법을 설명합니다. 표 통계는 표 메타데이터를 기반으로 자연어 질문과 SQL 쿼리를 생성하여 단일 표 내의 데이터를 이해하는 데 도움이 됩니다.
표 통계를 사용하면 복잡한 쿼리를 작성하지 않고도 새 표나 익숙하지 않은 표의 구조와 콘텐츠를 빠르게 파악하여 데이터 탐색 속도를 높일 수 있습니다. 자연어 질문을 기반으로 SQL 쿼리를 생성할 수도 있으므로 쿼리를 수동으로 작성하는 데 필요한 시간과 노력을 줄일 수 있습니다. 표 통계는 SQL을 사용하지 않는 사용자가 이러한 자연어 쿼리를 통해 데이터를 이해하고 분석하는 데도 도움이 됩니다.
표 및 데이터 세트 통계 개요는 데이터 통계 개요를 참고하세요.
표 데이터 통계를 생성하는 모드
표 통계를 생성할 때 BigQuery는 다음 두 가지 모드를 제공합니다.
| 모드 | 설명 | 사용 |
|---|---|---|
| 생성 및 게시 (미리보기) |
생성된 테이블 통계를 메타데이터 측면으로 Dataplex Universal Catalog에 유지합니다. 게시하려면 필요한 권한이 있어야 합니다. 생성 및 게시를 사용하면 다음 작업이 발생합니다.
|
이 모드는 지속되고 재사용 가능한 전사적 데이터 문서를 작성하거나 카탈로그 기반 거버넌스 워크플로를 빌드할 때 사용합니다. |
| 게시하지 않고 생성 |
요청 시 설명, 자연어 질문, SQL 쿼리와 같은 표 통계를 만듭니다. 게시하지 않고 생성을 선택하면 Dataplex Universal Catalog에 인사이트가 게시되지 않습니다. |
카탈로그가 어수선해지지 않도록 임시로 빠르게 탐색하려면 이 모드를 사용하세요. |
시작하기 전에
데이터 인사이트는 BigQuery의 Gemini를 사용하여 생성됩니다. 통계 생성을 시작하려면 먼저 BigQuery의 Gemini를 설정해야 합니다.
API 사용 설정
데이터 인사이트를 사용하려면 프로젝트에서 Dataplex API, BigQuery API, Gemini for Google Cloud API를 사용 설정합니다.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
Gemini for Google Cloud API 사용 설정에 대한 상세 설명은 Google Cloud 프로젝트에서 Gemini for Google Cloud API 사용 설정을 참고하세요.
역할 및 권한
데이터 통계를 생성, 관리, 검색하려면 관리자에게 다음 Identity and Access Management (IAM) 역할을 부여해 달라고 요청하세요.
- 통계를 생성할 프로젝트에 대한 Dataplex Universal Catalog DataScan 편집자 (
roles/dataplex.dataScanEditor) 또는 Dataplex Universal Catalog DataScan 관리자 (roles/dataplex.dataScanAdmin) - 통계를 생성할 BigQuery 테이블에 대한 BigQuery 데이터 뷰어(
roles/bigquery.dataViewer) - 통계를 생성할 BigQuery 테이블에 대한 BigQuery 데이터 편집자(
roles/bigquery.dataEditor) - 통계를 생성할 프로젝트에 대한 BigQuery 사용자(
roles/bigquery.user) 또는 BigQuery Studio 사용자(roles/bigquery.studioUser)
생성된 통계에 대한 읽기 전용 액세스 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- 인사이트를 보려는 BigQuery 테이블이 포함된 프로젝트에 대한 Dataplex Universal Catalog DataScan DataViewer (
roles/dataplex.dataScanDataViewer)
Dataplex Universal Catalog에 데이터 통계를 게시하려면 관리자에게 리소스에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- 설명을 관점으로 게시: Dataplex Universal Catalog 카탈로그 편집자 (
roles/dataplex.catalogEditor) - 쿼리를 관점으로 게시: Dataplex Universal Catalog 항목 및 항목 링크 소유자 (
roles/dataplex.entryOwner)
API를 사용 설정하려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- 통계를 생성할 프로젝트의 서비스 사용량 관리자(
roles/serviceusage.serviceUsageAdmin)
역할 부여에 대한 상세 설명은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할 또는 기타 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다. 필수 권한 섹션을 펼치면 인사이트를 생성하는 데 필요한 권한을 정확하게 확인할 수 있습니다.
필수 권한
bigquery.jobs.createbigquery.tables.getbigquery.tables.getDatadataplex.datascans.createdataplex.datascans.getdataplex.datascans.getDatadataplex.datascans.run
BigQuery 테이블의 통계 생성
BigQuery 테이블의 통계를 생성하려면Google Cloud 콘솔 또는 Dataplex Universal Catalog DataScans API에서 지원하는 DATA_DOCUMENTATION 스캔 유형을 사용하면 됩니다.
이러한 스캔을 통해 메타데이터, 데이터 탐색을 위한 SQL 쿼리, 스키마 설명, 테이블 수준 요약이 생성됩니다.
콘솔
BigQuery 테이블의 통계를 생성하려면 BigQuery Studio를 사용하여 BigQuery의 테이블 항목에 액세스해야 합니다.
Google Cloud 콘솔에서 BigQuery Studio로 이동합니다.
탐색기 창에서 통계를 생성할 프로젝트, 데이터 세트, 테이블을 선택합니다.
통계 탭을 클릭합니다. 탭이 비어 있는 경우 이 테이블의 통계가 아직 생성되지 않았음을 의미합니다.
인사이트를 생성하고 Dataplex Universal Catalog에 게시하려면 생성 및 게시(미리보기)를 클릭합니다.
Dataplex Universal Catalog에 게시하지 않고 인사이트를 생성하려면 게시하지 않고 생성을 클릭합니다.
생성 및 게시 모드와 게시 없이 생성 모드의 차이점에 대한 자세한 내용은 통계 생성 모드를 참고하세요.
인사이트를 생성할 리전을 선택하고 생성을 클릭합니다.
통계가 채워지는 데 몇 분 정도 걸립니다.
테이블에 대해 게시된 데이터 프로파일링 결과를 사용할 수 있으면 이 결과를 사용하여 통계를 생성합니다. 그렇지 않으면 열 이름과 설명을 기반으로 통계가 생성됩니다. 자세한 내용은 생성된 통계를 개선하기 위한 권장사항을 참고하세요.
통계 탭에서 생성된 자연어 질문을 살펴봅니다.
질문에 답하는 SQL 쿼리를 보려면 질문을 클릭합니다.
BigQuery에서 쿼리를 열려면 쿼리로 복사를 클릭합니다.
후속 질문을 하려면 다음 단계를 따르세요.
이어서 질문하기를 클릭합니다. 쿼리가 새 데이터 캔버스에서 열립니다.
실행을 클릭한 다음 결과 쿼리를 클릭합니다.
후속 질문을 하려면 자연어 프롬프트 필드에 프롬프트를 입력하거나 쿼리 편집기에서 SQL을 수정합니다.
새로운 쿼리 세트를 생성하려면 통계 생성을 클릭하고 파이프라인을 다시 트리거합니다.
테이블에 대해 통계를 생성한 후에는 dataplex.datascans.getData 권한과 테이블에 대한 액세스 권한이 있는 모든 사용자가 이러한 통계를 볼 수 있습니다.
REST
프로그래매틱 방식으로 인사이트를 생성하려면 Dataplex Universal Catalog DataScans API를 사용하세요. 이렇게 하려면 다음 단계를 수행합니다.
- 선택사항: 테이블의 데이터 프로필 스캔 만들기
- BigQuery 테이블의 데이터 문서 데이터 스캔 생성
- 데이터 문서 스캔 상태 확인하기
- 데이터 문서 스캔 결과를 BigQuery 테이블에 게시
선택사항: 테이블의 데이터 프로필 스캔 만들기
데이터 프로필 스캔이 있으면 Gemini가 데이터에 있는 실제 값을 기반으로 출력을 생성하므로 환각 및 근사치가 줄어듭니다.
데이터 프로필 스캔을 만들고 실행하려면 다음 단계를 따르세요.
dataScans.create메서드를 사용하여 데이터 프로필 스캔을 만듭니다.dataScans.run메서드를 사용하여 데이터 프로필 스캔을 실행합니다. 실행이 완료될 때까지 기다립니다.다음 데이터 프로파일링 라벨을 테이블에 연결하여 스캔 결과를 BigQuery 테이블에 게시합니다.
dataplex-dp-published-scan:DATASCAN_IDdataplex-dp-published-project:PROJECT_IDdataplex-dp-published-location:LOCATION
자세한 내용은 표 및 뷰에 라벨 추가를 참고하세요.
BigQuery 테이블의 데이터 문서화 데이터 스캔 생성
표준 관리형 검사 또는 간소화된 일회성 검사를 실행할 수 있습니다.
옵션 A: 표준 관리형 검사 (생성 + 실행)
시간이 지남에 따라 스캔 리소스를 관리하려면 이 방법을 사용하세요.
dataScans.create메서드를 사용하여 데이터 문서 데이터 스캔을 만듭니다.generation_scopes매개변수를 사용하여 스키마, 설명, 쿼리 또는 조합을 포함하도록 생성 범위를 맞춤설정할 수 있습니다.스키마, 테이블 설명, SQL 쿼리를 생성하려면
data_documentation_spec를 비워 두거나generation_scopes을ALL로 설정합니다. 예를 들면 다음과 같습니다.gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans?dataScanId=DATASCAN_ID \ -d '{ "data": { "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/\ datasets/DATASET_ID/tables/TABLE_ID" }, "executionSpec": { "trigger": { "onDemand": {} } }, "type": "DATA_DOCUMENTATION", "dataDocumentationSpec": { "generation_scopes": "ALL" } }'다음을 바꿉니다.
- PROJECT_ID: 데이터 세트가 있는 Google Cloud 프로젝트의 ID
- LOCATION: 데이터 스캔이 실행되는 리전
- DATASCAN_ID: 이 스캔에 제공하는 고유한 이름
- DATASET_ID: 스캔 중인 BigQuery 데이터 세트의 ID
- TABLE_ID: 스캔 중인 BigQuery 테이블의 ID
SQL 쿼리 없이 스키마, 테이블 설명, 열 설명을 생성하려면
generation_scopes을TABLE_AND_COLUMN_DESCRIPTIONS로 설정합니다. 예를 들면 다음과 같습니다.gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans?dataScanId=DATASCAN_ID \ -d '{ "data": { "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/\ datasets/DATASET_ID/tables/TABLE_ID" }, "executionSpec": { "trigger": { "onDemand": {} } }, "type": "DATA_DOCUMENTATION", "dataDocumentationSpec": { "generation_scopes": "TABLE_AND_COLUMN_DESCRIPTIONS" } }'설명 없이 SQL 쿼리를 생성하려면
generation_scopes를SQL_QUERIES로 설정합니다. 예를 들면 다음과 같습니다.gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans?dataScanId=DATASCAN_ID \ -d '{ "data": { "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/\ datasets/DATASET_ID/tables/TABLE_ID" }, "executionSpec": { "trigger": { "onDemand": {} } }, "type": "DATA_DOCUMENTATION", "dataDocumentationSpec": { "generation_scopes": "SQL_QUERIES" } }'
dataScans.run메서드를 사용하여 데이터 문서화 스캔 작업을 시작합니다.예를 들면 다음과 같습니다.
gcurl -X POST \ https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\ dataScans/DATASCAN_ID:run이 요청은 초기 상태와 함께 고유한 작업 ID를 반환합니다.
옵션 B: 일회성 스캔 (간소화됨)
이 메서드를 사용하여 단일 API 호출로 검사를 시작하고 완료합니다. 이 메서드를 사용하면 run 메서드를 별도로 호출할 필요가 없으며 TTL (수명) 기능을 사용하여 스캔 리소스를 자동으로 삭제할 수 있습니다.
dataScans.create 메서드를 사용하여 스캔을 만들고 트리거합니다. 예를 들면 다음과 같습니다.
gcurl -X POST \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans?\
dataScanId=DATASCAN_ID" \
-d '{
"data": {
"resource": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/\
tables/TABLE_ID"
},
"type": "DATA_DOCUMENTATION",
"dataDocumentationSpec": { "generation_scopes": "ALL" },
"executionSpec": {
"trigger": {
"one_time": {
"ttl_after_scan_completion": { "seconds": TTL_TIME }
}
}
}
}'
다음을 바꿉니다.
- PROJECT_ID: 데이터 세트가 있는 Google Cloud 프로젝트의 ID
- LOCATION: 데이터 스캔이 실행되는 리전
- DATASCAN_ID: 이 스캔에 제공하는 고유한 이름
- DATASET_ID: 스캔 중인 BigQuery 데이터 세트의 ID
- TABLE_ID: 스캔 중인 BigQuery 테이블의 ID
- TTL_TIME: 스캔 리소스가 자동으로 삭제되어야 하는 기간(초)(예: 1시간의 경우
3600)
데이터 문서 스캔 상태 확인
dataScans.get 메서드를 사용하여 스캔 작업 실행이 완료되었는지 확인합니다.
작업 ID를 사용하여 작업 상태를 가져옵니다. 예를 들면 다음과 같습니다.
gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID
상태가 SUCCEEDED 또는 FAILURE이면 작업이 완료된 것입니다.
데이터 문서 스캔 결과를 BigQuery 테이블에 게시
스캔 결과를 BigQuery 테이블에 게시하려면 다음 데이터 문서 라벨을 테이블에 연결하세요.
dataplex-data-documentation-published-scan:DATASCAN_IDdataplex-data-documentation-published-project:PROJECT_IDdataplex-data-documentation-published-location:LOCATION
BigQuery 외부 테이블의 통계 생성
BigQuery 데이터 인사이트는 Cloud Storage의 데이터로 BigQuery 외부 테이블에 대한 통계 생성을 지원합니다.
사용자와 현재 프로젝트의 Dataplex Universal Catalog 서비스 계정에는 데이터가 포함된 Cloud Storage 버킷에 대한 스토리지 객체 뷰어 역할 (roles/storage.objectViewer)이 있어야 합니다. 자세한 내용은 버킷 수준 정책에 주 구성원 추가를 참조하세요.
BigQuery 외부 테이블에 대한 통계를 생성하려면 이 문서의 BigQuery 테이블의 통계 생성 섹션에 설명된 안내를 따르세요.
BigLake 테이블의 통계 생성
BigLake 테이블에 대한 통계를 생성하려면 다음 단계를 수행하세요.
프로젝트에 대해 BigQuery Connection API를 사용 설정합니다.
BigQuery 연결을 만듭니다. 자세한 내용은 연결 관리를 참조하세요.
생성된 BigQuery 연결에 해당하는 서비스 계정에 스토리지 객체 뷰어(
roles/storage.objectViewer) IAM 역할을 부여합니다.연결 세부정보에서 서비스 계정 ID를 검색할 수 있습니다.
통계를 생성하려면 이 문서의 BigQuery 테이블의 통계 생성 섹션에 설명된 안내를 따르세요.
테이블 및 열 설명 생성
데이터 인사이트를 생성하면 BigQuery의 Gemini에서 테이블 및 열 설명을 자동으로 생성합니다. 필요에 따라 이러한 설명을 수정한 후 테이블의 메타데이터에 저장할 수 있습니다. 저장된 설명은 향후 통계를 생성하는 데 사용됩니다.
생성 언어 제어
Gemini가 특정 언어로 테이블 및 열 설명을 생성하도록 안내할 수 있습니다. 이렇게 하려면 데이터 통계를 생성하기 전에 테이블의 기존 설명에 짧은 지시어 (예: '프랑스어를 사용하여 테이블 및 열 설명을 생성해 줘')를 추가합니다.
인사이트를 생성하면 Gemini가 이 지시사항을 해석하고 요청된 언어로 메타데이터를 생성합니다. 이 메커니즘은 Gemini가 새 테이블 설명을 생성할 때 기존 테이블 설명을 컨텍스트로 사용하기 때문에 작동합니다.
지원되는 언어 목록은 Gemini 언어 지원을 참고하세요.
설명 생성
테이블 및 열 설명을 생성하려면 다음 단계를 따르세요.
이 문서의 관련 섹션에 설명된 안내에 따라 통계를 생성합니다.
스키마 탭을 클릭합니다.
열 설명 보기를 클릭합니다.
생성된 테이블 설명과 열 설명이 표시됩니다.
생성된 표 설명을 수정하고 저장하려면 다음 단계를 따르세요.
테이블 설명 섹션에서 세부정보에 저장을 클릭합니다.
생성된 설명으로 현재 설명을 바꾸려면 추천 설명 복사를 클릭합니다.
필요에 따라 테이블 설명을 수정한 후 세부정보에 저장을 클릭합니다.
표 설명이 즉시 업데이트됩니다.
생성된 열 설명을 수정하고 저장하려면 다음 단계를 따르세요.
열 설명 섹션에서 스키마에 저장을 클릭합니다.
생성된 열 설명은 각 열의 새 설명 필드에 채워집니다.
필요에 따라 열 설명을 수정한 다음 저장을 클릭합니다.
열 설명은 즉시 업데이트됩니다.
미리보기 패널을 닫으려면 닫기를 클릭합니다.
데이터 통계 생성 권장사항
생성된 통계의 정확성을 높이려면 다음 권장사항을 따르세요.
포괄적인 설명을 제공합니다. 데이터 세트 내의 테이블과 열에 명확하고 자세한 설명이 있는지 확인합니다.
프로파일링을 통해 통계 그라운딩 설명을 사용할 수 없는 경우 생성된 통계의 근거를 제공할 수 있도록 프로필 스캔이 데이터 세트의 각 테이블에 연결되어 있는지 확인하세요.
규칙을 명시적으로 정의합니다. 통계 모듈이 각 테이블의 설명 내에서 관계 생성에 영향을 미치는 데 사용하는 관계 또는 비즈니스 로직을 포함합니다.
통계를 데이터 프로파일링 결과에 그라운딩
생성형 AI에서 그라운딩은 모델 출력을 확인 가능한 정보 소스에 연결하는 기능입니다. 생성된 표 통계를 데이터 프로파일링 결과에 그라운딩할 수 있습니다. 데이터 프로파일링은 BigQuery 테이블의 열을 분석하고 일반적인 데이터 값, 데이터 분포와 같은 일반적인 통계적 특성을 식별합니다.
테이블에 데이터 프로파일링 스캔을 만들 때 스캔 결과를 Google Cloud 콘솔의 BigQuery 및 Dataplex Universal Catalog 페이지에 게시할 수 있습니다. 통계는 데이터 프로파일링 결과를 사용하여 다음과 같은 방식으로 더 정확하고 관련성 높은 쿼리를 만듭니다.
데이터 프로파일링 결과를 분석하여 데이터에서 흥미로운 패턴, 추세 또는 이상점을 식별합니다.
유용한 정보를 얻기 위해 이러한 패턴, 트렌드, 이상점에 초점을 맞춘 쿼리를 생성합니다.
생성된 쿼리가 데이터 프로파일링 결과에 대해 유효한지 검증하여 쿼리가 유의미한 결과를 반환하는지 확인합니다.
데이터 프로파일링 스캔을 사용하지 않으면 다음과 같은 일이 발생합니다.
생성된 쿼리는 부정확한 절을 포함하거나 의미 없는 결과를 생성할 가능성이 더 큽니다.
생성된 열 설명은 열 이름만을 기반으로 합니다.
테이블의 데이터 프로파일링 스캔이 최신 상태이고 결과가 BigQuery에 게시되어 있는지 확인합니다.
데이터 프로파일링 설정을 조정하여 샘플링 크기를 늘리고 행과 열을 필터링할 수 있습니다. 새 데이터 프로파일링 스캔을 실행한 후 통계를 다시 생성합니다.
데이터 세트의 테이블에 데이터 프로파일링 결과가 있는 경우 데이터 세트 통계의 품질도 크게 향상됩니다.
테이블 설명 추가
테이블에서 분석하려는 항목을 설명하는 자세한 테이블 설명을 제공하면 BigQuery의 Gemini에서 테이블 및 데이터 세트 통계 모두에 더 관련성 높은 통계를 생성하는 데 도움이 됩니다. 테이블 설명을 추가한 후 통계를 다시 생성합니다.
예를 들어 표 데이터 통계 예에 사용된 것과 같은 telco_churn 표에 다음 설명을 추가할 수 있습니다.
This table tracks customer churn data, including subscription details, tenure,
and service usage, to predict customer churn behavior.
Gemini에서 생성한 테이블 설명을 저장하면 이 설명을 사용하여 향후 통계를 생성합니다.
열 설명 추가
각 열의 의미나 한 열과 다른 열의 관계를 설명하는 열 설명을 추가하면 테이블 및 데이터 세트 통계의 품질을 개선할 수 있습니다. 테이블에서 열 설명을 업데이트한 후 통계를 다시 생성합니다.
예를 들어 표 데이터 통계 예에 사용된 것과 같은 telco_churn 표의 특정 열에 다음 설명을 추가할 수 있습니다.
tenure 열의 경우:
The number of months the customer has been with the service.
churn 열의 경우:
Whether the customer has stopped using the service. TRUE indicates the customer
no longer uses the service, FALSE indicates the customer is active.
Gemini에서 생성한 열 설명을 저장하면 이러한 설명을 사용하여 향후 통계를 생성합니다.
다음 단계
- 데이터 통계 개요에 대해 알아봅니다.
- 데이터 세트 통계 생성 방법 알아보기
- Dataplex Universal Catalog 데이터 프로파일링 자세히 알아보기