Knowledge Catalog를 사용하면 조직의 데이터를 탐색하고 중앙에서 카탈로그화하고 관리하며 이해할 수 있습니다. 데이터 카탈로그 내에서 특정 데이터 애셋을 효율적으로 찾으려면 강력한 검색어를 사용하면 됩니다. 검색어 문법에는 다음이 포함됩니다.
- 단순 검색: 단일 검색어를 사용하여 데이터 애셋을 찾는 방법입니다.
- 자유 텍스트 검색: 자연어 구문 또는 키워드를 사용하여 데이터 애셋을 찾습니다.
- 한정된 술어: 이름, 위치, 시스템 또는 유형과 같은 특정 메타데이터 필드를 사용하여 검색을 미세 조정합니다.
- 관점 검색: 연결된 비즈니스 및 기술 메타데이터를 기반으로 항목을 검색합니다.
- 논리 연산자:
AND,OR또는NOT연산자를 사용하여 검색 조건을 여러 개 결합해 복잡한 쿼리를 만듭니다. 이 문법을 이해하면 필요한 데이터를 빠르게 찾을 수 있습니다.
한정된 조건자
한정된 술어를 사용하여 애셋 이름, 유형 또는 시스템과 같은 특정 메타데이터 필드를 평가하도록 검색에 명시적으로 지시하여 검색 결과를 좁힙니다.
특정 메타데이터 조각으로 일치를 제한하는 키를 조건자에 프리픽스로 추가하여 조건자를 한정시킬 수 있습니다.
- 등호 (
=)를 사용하여 검색을 일치검색으로 제한합니다. - 키 뒤의 콜론 (
:)은 조건자를 검색 결과 값의 하위 문자열이나 토큰과 일치시킵니다.
토큰화는 텍스트 스트림을 일련의 토큰으로 나누며 일반적으로 각 토큰은 단어 하나에 해당합니다.
예를 들면 다음과 같습니다.
name:foo는foo하위 문자열이 포함된 이름의 리소스를 선택합니다(예:foo1및barfoo).description:foo는 설명에foo토큰이 있는 리소스를 선택합니다(예:bar및foo).location=foo는 지정된 위치에서 위치 이름이foo인 리소스와 일치합니다.
지원되는 한정자
Knowledge Catalog 검색은 다음 한정자를 지원합니다.
| 한정자 | 설명 |
|---|---|
name:x |
x를 리소스 ID 또는 리소스 표시 이름의 하위 문자열로 일치시킵니다. |
displayname:x |
x를 리소스 표시 이름의 하위 문자열로 일치시킵니다. |
column:x |
x를 리소스 스키마의 열 이름 (또는 중첩 열 이름) 하위 문자열로 일치시킵니다. |
description:x |
리소스 설명에서 토큰인 x와 일치합니다. 예를 들면 다음과 같습니다.
|
labels:bar |
라벨 (일부 값 포함)이 있고 라벨 키에 bar가 하위 문자열로 있는 리소스와 일치합니다. |
labels=bar |
라벨 (일부 값 포함)이 있고 라벨 키가 문자열로 bar인 리소스와 일치합니다. |
labels.bar:x |
x를 리소스에 연결된 bar 키가 포함된 라벨 값의 하위 문자열로 일치시킵니다. |
labels.foo=bar |
키가 foo이고 키 값이 bar인 리소스와 일치합니다. |
type=TYPE |
특정 항목 유형 또는 유형 별칭의 리소스와 일치합니다. = 한정자가 필요합니다. |
projectid:bar |
bar를 ID 하위 문자열로 일치시키는 Google Cloud 프로젝트 내 리소스와 일치시킵니다. |
parent:x |
x를 리소스의 계층 경로 하위 문자열로 일치시킵니다. |
system=SYSTEM |
지정된 시스템의 리소스와 일치합니다. = 한정자가 필요합니다. |
location=LOCATION |
지정된 위치의 리소스를 정확한 이름으로 일치시킵니다. BigQuery Omni 애셋은 BigQuery Omni 위치 이름을 사용하여 이 한정자를 지원합니다.
예를 들어 |
createtime |
지정된 날짜, 타임스탬프 또는 일 단위의 상대 시간 내에, 이전 또는 이후에 생성된 리소스를 찾습니다. 지원되는 형식과 연산자는 시간 필터를 참고하세요. |
updatetime |
지정된 날짜, 타임스탬프 또는 일 단위의 상대 시간 내에, 이전 또는 이후에 업데이트된 리소스를 찾습니다. 지원되는 형식과 연산자는 시간 필터를 참고하세요. |
일치검색 한정자
조건자 키 type, system, location 및 관점 검색 (has 제외)은 하위 문자열 한정자 (:)가 아닌 일치검색 (=) 한정자만 지원합니다.
이러한 술어에는 다음 일치검색 문법을 사용하세요.
| 프레디케이트 키 | 올바른 문법 | 잘못된 문법 |
|---|---|---|
type |
type=table (또는 type=view, type=dataset) |
type:table 또는 type:tab |
system |
system=bigquery(또는 system=spanner) |
system:bigquery 또는 system:big |
location |
location=us-central1(또는 location=europe-west1) |
location:us-central1 또는 location:us |
하위 문자열 한정자
name, displayname, column, projectid, parent과 같은 조건자는 콜론 (:) 한정자를 사용한 하위 문자열 일치를 지원합니다.
name:transactions는 ID 또는 표시 이름에transactions이 포함된 리소스와 일치합니다. 예를 들면daily_transactions_raw및transactions_v2입니다.column:customer_id는customer_id이 포함된 열 이름이 있는 리소스와 일치합니다.projectid:prod는 ID에prod가 포함된 프로젝트의 리소스와 일치합니다. 예를 들면finance-prod-2026입니다.
시간 필터
생성 시간 (createtime) 또는 마지막 업데이트 시간(updatetime)으로 리소스를 필터링할 수 있습니다.
지원되는 연산자 및 형식
- 지원되는 연산자:
:,=,<,>,<=,>=,=>,=< - 상대 일수 (
-Nd): 과거의 상대 일수로 필터링합니다 (예:-30d,-7d,-1d). - 캘린더 날짜 (
YYYY-MM-DD또는YYYY/MM/DD): GMT/UTC의 특정 날짜로 필터링합니다. - 전체 타임스탬프 (
YYYY-MM-DDTHH:MM:SS또는YYYY-MM-DDTHH:MM:SSZ): GMT/UTC의 정확한 타임스탬프로 필터링합니다.YYYY-MM-DDTHH:MM또는YYYY-MM-DDTHH과 같은 부분 타임스탬프도 지원됩니다.
시간 필터 문법
다음 표에서는 시간 필터 문법을 설명합니다.
| 형식 카테고리 | 유효한 구문 | 잘못된 구문 | 설명 |
|---|---|---|---|
| 상대 시간 단위 |
|
|
|
| Calendar 날짜 |
|
|
|
| 타임스탬프 및 시간대 |
|
|
|
| 시간대 |
|
|
|
| 자연어 날짜 |
|
|
|
라벨 필터
labels 술어를 사용하여 연결된 라벨별로 리소스를 필터링합니다. 라벨 키, 라벨 값 또는 둘 다로 필터링할 수 있습니다.
| 쿼리 패턴 | 예 | 설명 |
|---|---|---|
labels=KEY |
labels=environment |
값에 관계없이 정확한 키가 environment인 라벨이 있는 리소스와 일치합니다. |
labels:KEY_SUBSTRING |
labels:tier |
tier가 하위 문자열로 포함된 라벨 키가 있는 리소스와 일치합니다 (예: service_tier 또는 storage_tier). |
labels.KEY=VALUE |
labels.env=prod |
라벨 키가 env이고 값이 정확히 prod인 리소스와 일치합니다. |
labels.KEY:VALUE_SUBSTRING |
labels.owner:analytics |
값이 analytics을 하위 문자열로 포함하는 라벨 키 owner가 있는 리소스와 일치합니다 (예: analytics-team 또는 data-analytics). |
| 여러 라벨 (AND) | labels.env=prod labels.data_tier=tier1 |
env=prod 및 data_tier=tier1 라벨이 모두 연결된 리소스와 일치합니다. |
| 시스템 및 유형과 결합 | system=bigquery type=table labels.env=prod labels.confidentiality=high |
env=prod 및 confidentiality=high 라벨이 지정된 BigQuery 테이블과 일치합니다. |
관점 검색
쿼리 문법을 사용하여 연결된 관점을 기반으로 항목을 검색할 수 있습니다.
하위 문자열 일치는 제한된 수의 관점과 일치시키려고 시도합니다. 경로 일부를 사용하여 항목을 찾을 수 없으면 전체 경로를 사용하여 검색 범위를 좁히고 재현율을 높이세요.
| 한정자 | 설명 |
|---|---|
aspect:x또는 has:x |
x를 항목에 연결된 관점의 관점 유형에 대한 전체 경로의 하위 문자열(projectid.location.ASPECT_TYPE_ID 형식)로 일치시킵니다. |
aspect=x또는 has=x |
x를 항목에 연결된 관점의 관점 유형에 대한 전체 경로(projectid.location.ASPECT_TYPE_ID 형식)로 일치시킵니다. |
x |
관점 필드 값을 검색합니다.
관점의 최상위 필드만 검색할 수 있습니다. |
논리 연산자
쿼리는 논리 연산자를 사용하여 여러 조건자를 결합할 수 있습니다.
참고: 논리 연산자 AND, OR, NOT는 대소문자를 구분하며 대문자로 작성해야 합니다.
AND 연산자
여러 검색어 또는 술어를 공백으로 구분하면 논리적 AND가 암시되므로 명시적으로 작성하지 않아도 됩니다.
다음 예에서는 AND 연산자를 사용하여 쿼리를 구성하는 방법을 보여줍니다.
BigQuery 테이블 검색
system=bigquery type=tablecustomer_id이라는 열이 있는banking-prod프로젝트에서 리소스를 검색합니다.projectid:banking-prod column:customer_id필요한 경우 명시적
AND연산자를 사용할 수 있습니다.system=bigquery AND type=table AND location=us-central1
OR 연산자
OR 연산자를 사용하여 여러 조건 중 하나와 일치시킵니다. OR를 다른 기준과 결합할 때는 괄호 ( )를 사용하여 표현식을 그룹화하고 우선순위를 정의하세요.
다음 예에서는 OR 연산자를 사용하여 쿼리를 구성하는 방법을 보여줍니다.
BigQuery 테이블 및 뷰 검색
system=bigquery (type=table OR type=view)여러 시스템에서 표 검색
(system=bigquery OR system=spanner) type=table마케팅 또는 금융 데이터 세트에서 항목 검색
system=bigquery (parent:marketing_analytics OR parent:finance_analytics)
NOT 연산자
대문자 NOT 또는 - (하이픈)을 접두사로 추가하면 조건자를 부정할 수 있습니다.
다음 예에서는 NOT 연산자를 사용하여 쿼리를 구성하는 방법을 보여줍니다.
샌드박스 프로젝트에 있는 테이블을 제외한 모든 테이블 찾기
NOT연산자 사용
type=table NOT projectid:sandbox-project- 하이픈 사용
type=table -projectid:sandbox-project이름에
test가 포함되지 않은 모든 BigQuery 리소스를 찾습니다.system=bigquery -name:test
축약된 구문
축약된 문법을 사용하려면 괄호 안에 OR 연산자에 | (세로 막대)를, AND 연산자에 , (쉼표)를 사용하세요.
축약된 구문은 자격이 있는 서술어에 적용됩니다.
여러 프로젝트 ID 검색
OR연산자를 사용합니다.
projectid:(finance-prod|sales-prod|analytics-prod)- 괄호 사용:
projectid:finance-prod OR projectid:sales-prod OR projectid:analytics-prod여러 열 이름 (
AND)과 일치하는 항목 검색column:(customer_id,transaction_date,amount)여러 열 이름 (
OR) 중 하나와 일치하는 항목 검색column:(customer_id|user_id|client_id)
와일드 카드 정책
Knowledge Catalog 검색 구문은 쿼리 문자열이나 술어에서 * 또는 ?과 같은 와일드 카드를 지원하지 않습니다.
쿼리에 별표 (*) 또는 물음표 (?)를 포함하면 패턴 일치 와일드 카드가 아닌 리터럴 문자로 처리됩니다.
예를 들어 이름이 _masked로 끝나는 테이블을 검색하려면 다음을 실행합니다.
- 지원됨:
name:_masked: 하위 문자열 일치:한정자를 사용하여 이름에_masked이 포함된 모든 리소스를 찾습니다(예:customer_records_masked또는transactions_masked). - 지원되지 않음:
name:*_masked:*이 패턴 와일드 카드가 아닌 리터럴 문자로 처리됩니다.
괄호
검색어의 괄호에는 특정 기술적 기능이 있습니다. 괄호를 과도하게 사용하거나 자연어 질문에 적용하면 검색 파서가 혼동되어 결과 품질이 저하될 수 있습니다.
일반 자연어
비즈니스 질문을 할 때는 일반 텍스트로 질문을 전달하세요. 괄호로 묶지 마세요. 예를 들어 다음과 같이 작성합니다.
Find customer orders containing email addresses
축약된 술어 구문
괄호는 술어 키와 함께 사용하여 여러 OR 및 AND 조건을 간결한 형식으로 나열할 때 매우 효과적입니다.
OR(|)로 그룹 조건자 키(
|)를 사용하여 나열된 프로젝트에 있는 항목을 검색합니다.projectid:(finance-prod|finance-test|analytics-raw)(
OR)를 사용하여 나열된 프로젝트에 있는 항목을 검색합니다.
projectid:finance-prod OR projectid:finance-test OR projectid:finance-rawAND(,)로 그룹 조건자 키- (
,)를 사용하여 지정된 열이 모두 포함된 항목 검색
column:(customer_id, order_date, total_amount)- (
AND)를 사용하여 지정된 열이 모두 포함된 항목 검색
column:customer_id AND column:order_date AND column:total_amount- (
하이브리드 검색
자연어 질문을 간결한 필터와 결합할 수 있습니다.
예를 들어 월간 활성 사용자 수를 지정하는 테이블을 찾되 검색을 지정된 프로젝트로 제한하려면 다음 쿼리를 사용합니다.
monthly active users type=table projectid:(data-warehouse|analytical-tier)
괄호 사용 권장사항
의미론적 엔진이 괄호를 리터럴 문자로 취급하여 관련성이 낮은 결과가 나올 수 있으므로 질문 전체를 괄호로 묶지 마세요.
- 잘못된 예:
(Show me datasets about US population by state) - 올바른 예:
Show me datasets about US population by state
- 잘못된 예:
자연어 필드 내에 괄호가 있는 복잡한 중첩된 불리언 트리를 혼합하지 마세요. 검색은 자연어 의도에 최적화되어 있습니다. 괄호와 명시적 논리 블록으로 쿼리를 지나치게 복잡하게 만들면 파서가 혼동됩니다.
- 잘못된 예:
(revenue data) AND system=BIGQUERY AND projectid:(data-warehouse | analytical-tier) - 올바른 예:
revenue data system=bigquery projectid:(data-warehouse|analytical-tier)
- 잘못된 예:
값이 아닌 경우 임의로 공백을 추가하지 마세요.
- 잘못된 예:
column:( email | id ) - 올바른 예:
column:(email|id).
- 잘못된 예:
다음 단계
- Knowledge Catalog에서 리소스를 검색하는 방법 알아보기
- Knowledge Catalog의 메타데이터 관리 자세히 알아보기
- 관점을 사용하여 메타데이터로 항목 및 항목 링크를 보강하는 방법 알아보기
- 항목 관리 및 커스텀 소스 수집 방법 알아보기