이 문서에서는 구조화된 데이터의 데이터 통계를 생성, 확인, 관리하는 방법을 설명합니다. AI 기반 데이터 통계를 사용하면 테이블 및 데이터 세트 메타데이터에서 설명, 관계 그래프, SQL 쿼리를 자동으로 생성하여 데이터 탐색을 가속화할 수 있습니다.
BigQuery Studio에서는 BigQuery 데이터 세트, 테이블, 뷰, Google Cloud Lakehouse 테이블, BigQuery 외부 테이블의 데이터 통계를 생성할 수 있습니다.
Knowledge Catalog에서는 Lakehouse Iceberg REST 카탈로그 테이블의 데이터 통계를 생성할 수 있습니다.
시작하기 전에
데이터 통계를 사용하기 전에 다음 필수 단계를 완료했는지 확인하세요.
필요한 역할
데이터 통계를 사용하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
생성된 통계에 대한 읽기 전용 액세스 권한 가져오기:
Dataplex DataScan 데이터 뷰어 (
roles/dataplex.dataScanDataViewer) 리소스가 포함된 프로젝트의 -
Iceberg REST 카탈로그 테이블 데이터 읽기:
BigLake 뷰어 (
roles/biglake.viewer) 리소스에서 -
설명을 관점으로 게시:
Dataplex 카탈로그 편집자 (
roles/dataplex.catalogEditor) 리소스의 -
쿼리를 관점으로 게시:
리소스의 Dataplex 항목 및 EntryLink 소유자 (
roles/dataplex.entryOwner)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이러한 사전 정의된 역할에는 데이터 통계를 사용하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
데이터 통계를 사용하려면 다음 권한이 필요합니다.
-
dataplex.datascans.create -
dataplex.datascans.get -
dataplex.datascans.getData -
dataplex.datascans.run
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
API 사용 설정
데이터 통계를 사용하려면 프로젝트에서 다음 API를 사용 설정해야 합니다.
- Dataplex API
- BigQuery API
- Gemini for Google Cloud API
API 사용 설정에 필요한 역할
API를 사용 설정하려면 serviceusage.services.enable 권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법
알아보기.
Gemini for Google Cloud API 사용 설정에 대한 상세 설명은 프로젝트에서 Gemini for Google Cloud API 사용 설정을 참고하세요. Google Cloud
데이터 준비
Lakehouse 테이블의 경우 데이터가 Cloud Storage에 있고 Google Cloud Lakehouse 테이블을 만들었는지 확인합니다. Google Cloud
Iceberg REST 카탈로그 테이블의 경우 테이블이 Lakehouse 런타임 카탈로그에 등록되어 있는지 확인합니다.
BigQuery에서 통계 생성
BigQuery 데이터 세트, 테이블, 뷰, Google Cloud Lakehouse 테이블, BigQuery 외부 테이블의 데이터 통계는 BigQuery의 Gemini 를 사용하여 생성되며 BigQuery Studio에서만 생성될 수 있습니다.
먼저 BigQuery의 Gemini를 설정한 다음 통계를 생성해야 합니다. 통계를 생성한 후에는 Knowledge Catalog에서 통계를 보고 수정할 수 있습니다.
BigQuery에서 통계를 생성하는 방법에 대한 자세한 내용은 다음 문서를 참고하세요.
Iceberg REST 카탈로그 테이블의 통계 생성
콘솔에서 Knowledge Catalog 검색 페이지로 이동합니다. Google Cloud
필터에서 Lakehouse를 선택합니다.
통계를 생성할 Iceberg REST 카탈로그 테이블을 선택합니다.
통계 탭을 클릭합니다. 탭이 비어 있으면 이 테이블의 통계가 아직 생성되지 않은 것입니다.
통계를 생성하고 관점으로 테이블에 영구적으로 연결하려면 생성 및 게시 를 클릭합니다. 이렇게 하면 Knowledge Catalog 내에서 조직의 다른 사용자가 통계를 색인 생성, 검색, 확인하도록 할 수 있습니다.
인사이트를 생성하고 현재 세션 중에 일시적으로 보려면 게시하지 않고 생성을 클릭합니다. Knowledge Catalog에 메타데이터를 저장하지 않고 데이터의 빠른 분석만 필요한 경우 이 옵션을 사용하세요.
**생성 및 게시** 모드와 **게시하지 않고 생성** 모드의 차이점에 대한 자세한 내용은 데이터 통계 생성 모드를 참고하세요.
통계를 생성할 리전을 선택하고 생성 을 클릭합니다.
통계가 채워지는 데 몇 분 정도 걸립니다.
통계 탭을 클릭하고 다음을 검토합니다.
- 설명: 테이블의 목적을 설명하고 특정 열을 자세히 설명하는 AI 생성 요약입니다.
- 샘플 쿼리: 데이터 세트 스키마 및 콘텐츠를 위해 특별히 설계된 맞춤형 SQL 쿼리 목록입니다.
질문에 답변하는 SQL 쿼리를 보려면 질문을 클릭합니다.
리소스에 대해 생성된 통계 검토
리소스에 대해 생성된 통계를 보려면 다음 단계를 완료하세요.
콘솔에서 Knowledge Catalog 검색 페이지로 이동합니다. Google Cloud
통계를 보려는 리소스를 검색합니다.
검색 결과에서 리소스를 클릭하여 항목 세부정보 페이지를 엽니다.
선택한 리소스에 대해 생성된 설명 및 쿼리 를 검토합니다.
데이터 포인트가 연결되는 방식을 이해하기 위해 관계 그래프를 보려면 관계 (미리보기) 탭을 클릭합니다. 데이터 세트 수준이 아닌 테이블 수준에서만 관계를 볼 수 있습니다.
테이블 통계 관리
테이블 통계를 생성하고 게시한 후에는 Knowledge Catalog에서 메타데이터 관점으로 검토하고 관리할 수 있습니다. 테이블 수준 통계에는 테이블 및 열 설명과 샘플 쿼리가 포함됩니다.
테이블에 대해 생성된 설명 업데이트
Dataplex API만 사용하여 테이블 및 열 설명을 업데이트할 수 있습니다. 이렇게 하려면 entries.patch 메서드를 사용합니다.
테이블에 대해 생성된 쿼리 업데이트
콘솔과 Dataplex API를 모두 사용하여 테이블에 대해 생성된 쿼리를 업데이트할 수 있습니다. Google Cloud
콘솔
검색 결과에서 테이블을 클릭하여 항목 세부정보 페이지를 엽니다.
쿼리 섹션에서 수정을 클릭합니다.
필요에 따라 쿼리 설명을 업데이트합니다.
소유권 관리: 기본적으로 소스 는 에이전트 로 설정됩니다. 쿼리를 수정하고 소스를 사용자로 변경하면 후속 통계 생성 실행에서 변경사항이 재정의되지 않습니다. 소스 가 에이전트 로 유지되면 재생성 중에 쿼리가 대체될 수 있습니다.
재정의 관리: 다시 실행하는 동안 모든 쿼리가 재정의되지 않도록 하려면 사용자 관리 옵션을 True 로 설정하면 됩니다. 이는 해당 메타데이터 관점의 전체 쿼리 집합에 적용되어 수동 변경사항이 손실되지 않도록 합니다.
REST
테이블의 쿼리를 업데이트하려면 entries.patch 메서드를 사용합니다.
테이블에 대해 생성된 관계 업데이트
Dataplex API만 사용하여 관계를 업데이트할 수 있습니다. 이렇게 하려면 entries.patch 메서드를 사용합니다.
데이터 세트 통계 관리
데이터 세트 수준 통계는 대략적인 설명과 데이터 세트 전체 쿼리에 중점을 둡니다.
데이터 세트에 대해 생성된 설명 업데이트
Dataplex API만 사용하여 데이터 세트 설명을 업데이트할 수 있습니다. 이렇게 하려면 entries.patch 메서드를 사용합니다.
데이터 세트에 대해 생성된 쿼리 업데이트
콘솔과 Dataplex API를 모두 사용하여 데이터 세트에 대해 생성된 쿼리를 업데이트할 수 있습니다. Google Cloud
콘솔
생성된 쿼리를 업데이트할 데이터 세트를 검색합니다.
검색 결과에서 데이터 세트를 클릭하여 항목 세부정보 페이지를 엽니다.
쿼리 섹션에서 수정을 클릭합니다.
필요에 따라 설명을 업데이트합니다.
소유권 관리: 기본적으로 소스 는 에이전트 로 설정됩니다. 쿼리를 수정하고 소스를 사용자로 변경하면 후속 통계 생성 실행에서 변경사항이 재정의되지 않습니다. 소스 가 에이전트 로 유지되면 재생성 중에 쿼리가 대체될 수 있습니다.
재정의 관리: 다시 실행하는 동안 모든 쿼리가 재정의되지 않도록 하려면 사용자 관리 옵션을 True 로 설정하면 됩니다. 이는 해당 메타데이터 관점의 전체 쿼리 집합에 적용되어 수동 변경사항이 손실되지 않도록 합니다.
REST
데이터 세트의 쿼리를 업데이트하려면 entries.patch 메서드를 사용합니다.
데이터 세트에 대해 생성된 항목 링크 업데이트
데이터 통계에서 발견된 관계는 테이블 항목 간의
항목 링크로 저장됩니다.
이러한 링크에는 테이블이 연결되는 방식을 설명하는 schema-join 관점이 포함됩니다.
이러한 관계를 수정하거나 수동 재정의를 제공하려면 Dataplex API를 사용해야 합니다.
항목 링크 업데이트 동작
API를 사용하여 관계를 관리할 때는 데이터가 실수로 덮어쓰이지 않도록 수동 API 업데이트가 자동 백그라운드 스캔과 상호작용하는 방식을 이해하는 것이 중요합니다.
수동 업데이트 (API 수준 동작):
UpdateEntryLinkAPI는PATCH메서드를 사용하여 관점 수준 대체를 실행합니다.전체 관점 대체: 업데이트 요청에
schema-join관점을 포함하면 Knowledge Catalog에서 기존 관점 전체를 제공하는 새 관점으로 대체합니다.자동 병합 없음: API는 새 항목을 내부
joins목록에 자동으로 병합하지 않습니다. 조인이 하나만 포함된 페이로드를 제출하면 해당 관점 내에서 이전에 존재했던 모든 조인이 삭제됩니다.
자동 스캔 (시스템 수준 동작): 데이터 통계와 같은 자동 스캔은 API를 호출하기 전에 특수 병합 로직을 실행하여 소스를 기반으로 높은 확실성의 메타데이터가 보존되도록 합니다.
소스 우선순위: 여러 소스에서 동일한 관계를 식별하는 경우 Knowledge Catalog는 다음 순서로 우선순위를 지정합니다.
USER(수동 수정)TABLE_CONSTRAINTSQUERY_HISTORYAGENT(LLM 제안)
LLM 최신 상태:
AGENT소스에서 파생된 관계는 동적입니다. 후속 스캔에서 더 이상 관계를 추천하지 않으면 삭제됩니다.
항목 링크 업데이트
항목 링크를 보고 수정하려면 다음 단계를 완료하세요.
항목 링크를 식별합니다.
관계를 업데이트하기 전에 특정 테이블 항목과 관련된 모든 항목 링크를 나열하여 리소스 이름을 찾습니다.
gcurl -X GET "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entryLinks?filter=entry_references.name=\"TABLE_ENTRY_NAME\""다음을 바꿉니다.
- PROJECT_ID: 프로젝트의 Google Cloud ID
- LOCATION: 데이터 스캔이 트리거되는 리전
- TABLE_ENTRY_NAME: BigQuery 테이블 항목의 전체 리소스 이름 (예:
bigquery.googleapis.com/projects/my-project/datasets/my_dataset/tables/my_table)
항목 링크를 업데이트합니다.
타겟 항목 링크의
schema-join관점을 수정하려면PATCH메서드를 사용합니다.gcurl -X PATCH "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/entryGroups/@bigquery/entryLinks/ENTRYLINK_ID?aspectKeys=dataplex-types.global.schema-join" \ -d '{ "aspects": { "dataplex-types.global.schema-join": { "data": { "joins": [ { "source": { "name": "PROJECT_ID.DATASET_ID.SOURCE_TABLE", "fields": ["SOURCE_FIELD"] }, "target": { "name": "PROJECT_ID.DATASET_ID.TARGET_TABLE", "fields": ["TARGET_FIELD"] }, "type": "JOIN", "inferenceSource": "USER" } ], "userManaged": false } } } }'다음을 바꿉니다.
- ENTRYLINK_ID: 이전 식별 단계에서 가져온 항목 링크의 ID
- DATASET_ID: BigQuery 데이터 세트의 ID
- SOURCE_TABLE: 소스 테이블 이름
- SOURCE_FIELD: 소스 테이블에서 조인에 사용되는 열 이름
- TARGET_TABLE: 대상 테이블 이름
- TARGET_FIELD: 대상 테이블에서 조인에 사용되는 열 이름
다음 단계
구조화된 데이터의 데이터 통계에 대해 자세히 알아보세요.
비구조화된 데이터의 통계를 생성하는 방법을 알아보세요.