단일 항목 유형의 모든 항목에 대한 특성 값을 BigQuery 테이블이나 Cloud Storage 버킷으로 내보냅니다. 스냅샷을 가져오거나 전체 특성 값을 내보낼 수 있습니다. 스냅샷은 특성당 여러 값을 반환할 수 있는 전체 내보내기와 달리 특성당 단일 값을 반환합니다. 특성 값을 내보낼 때는 특정 항목 ID를 선택하거나 여러 항목 유형을 포함할 수 없습니다.
특성 값을 내보내면 데이터를 보관처리하거나 임시 분석을 수행하는 데 유용합니다. 예를 들어 피처스토어의 일반 스냅샷을 저장하여 여러 시점의 상태를 저장할 수 있습니다. 학습 데이터 세트를 만들기 위한 특성 값을 가져와야 하는 경우에는 대신 일괄 제공을 사용합니다.
스냅샷 및 전체 내보내기 비교
스냅샷과 전체 내보내기 옵션을 모두 사용하면 단일 타임스탬프(시작 시간 또는 종료 시간) 또는 타임스탬프 둘 다 지정하여 데이터를 쿼리할 수 있습니다. 스냅샷의 경우 Vertex AI Feature Store(기존)는 지정된 기간 내 최신 특성 값을 반환합니다. 출력에서 각 특성 값이 연결된 타임스탬프는 특성 값 타임스탬프가 아닌 스냅샷 타임스탬프입니다.
전체 내보내기의 경우 Vertex AI Feature Store(기존)는 지정된 기간 내 모든 특성 값을 반환합니다. 출력에서 각 특성 값이 연결된 타임스탬프는 특성 타임스탬프(특성 값이 수집될 때 지정된 타임스탬프)입니다.
다음 표에는 선택한 옵션과 제공된 타임스탬프를 기준으로 Vertex AI Feature Store(기존)에서 반환하는 항목이 요약되어 있습니다.
옵션 | 시작 시간만(포함) | 종료 시간만(포함) | 시작 및 종료 시간(포함) |
---|---|---|---|
스냅샷 | 현재 시간(요청이 수신된 시간)부터 시작하여 최신 값을 반환하고 시작 시간까지 다시 확인할 수 있습니다. 스냅샷 타임스탬프는 현재 시간으로 설정됩니다. |
종료 시간부터 최신 값을 반환하며 각 특성의 첫 번째 값을 다시 확인할 수 있습니다. 스냅샷 타임스탬프는 지정된 종료 시간으로 설정됩니다. |
지정된 기간 내 최신 값을 반환합니다. 스냅샷 타임스탬프는 지정된 종료 시간으로 설정됩니다. |
전체 내보내기 | 시작 시간부터 현재 시간까지(요청이 전송된 시간)의 모든 값을 반환합니다. | 종료 시간까지의 모든 값을 반환하여 각 특성의 첫 번째 값으로 돌아갑니다. | 지정된 기간 내 모든 값을 반환합니다. |
Null 값
스냅샷의 경우 최신 특성 값이 지정된 타임스탬프에서 null이면 Vertex AI Feature Store(기존)는 null이 아닌 이전 특성 값을 반환합니다. null이 아닌 이전 값이 없으면 Vertex AI Feature Store(기존)는 null을 반환합니다.
전체 내보내기의 경우 특성 값이 지정된 타임스탬프에서 null이면 Vertex AI Feature Store(기존)는 해당 타임스탬프의 null을 반환합니다.
예시
예를 들어 피처스토어에 다음 값이 있다고 가정해 보겠습니다. 여기서 Feature_A
및 Feature_B
의 값은 동일한 타임스탬프를 공유합니다.
엔티티 ID | 특성 값 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | T1 | A_T1 | B_T1 |
123 | T2 | A_T2 | NULL |
123 | T3 | A_T3 | NULL |
123 | T4 | A_T4 | B_T4 |
123 | T5 | NULL | B_T5 |
스냅샷
스냅샷의 경우 Vertex AI Feature Store(기존)는 지정된 타임스탬프 값을 기준으로 다음 값을 반환합니다.
- 시작 시간만
T3
으로 설정되면 스냅샷은 다음 값을 반환합니다.
엔티티 ID | 스냅샷 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | CURRENT_TIME | A_T4 | B_T5 |
- 종료 시간만
T3
으로 설정되면 스냅샷에서 다음 값을 반환합니다.
엔티티 ID | 스냅샷 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | T3 | A_T3 | B_T1 |
- 시작 및 종료 시간이
T2
및T3
으로 설정되면 스냅샷은 다음 값을 반환합니다.
엔티티 ID | 스냅샷 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | T3 | A_T3 | NULL |
전체 내보내기
전체 내보내기의 경우 Vertex AI Feature Store(기존)는 지정된 타임스탬프 값을 기준으로 다음 값을 반환합니다.
- 시작 시간만
T3
으로 설정되면 전체 내보내기는 다음 값을 반환합니다.
엔티티 ID | 특성 값 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | T3 | A_T3 | NULL |
123 | T4 | A_T4 | B_T4 |
123 | T5 | NULL | B_T5 |
- 종료 시간만
T3
으로 설정되면 전체 내보내기는 다음 값을 반환합니다.
엔티티 ID | 특성 값 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | T1 | A_T1 | B_T1 |
123 | T2 | A_T2 | NULL |
123 | T3 | A_T3 | NULL |
- 시작 및 종료 시간이
T2
및T4
로 설정되면 전체 내보내기는 다음 값을 반환합니다.
엔티티 ID | 특성 값 타임스탬프 | Feature_A | Feature_B |
---|---|---|---|
123 | T2 | A_T2 | NULL |
123 | T3 | A_T3 | NULL |
123 | T4 | A_T4 | B_T4 |
특성 값 내보내기
특성 값을 내보낼 때 쿼리할 특성과 스냅샷 또는 전체 내보내기를 선택합니다. 다음 섹션에서는 각 옵션의 샘플을 보여줍니다.
두 옵션 모두 출력 대상은 소스 피처스토어와 동일한 리전에 있어야 합니다. 예를 들어 피처스토어가 us-central1
에 있으면 대상 Cloud Storage 버킷이나 BigQuery 테이블도 us-central1
에 있어야 합니다.
스냅샷
지정된 기간의 최신 특성 값을 내보냅니다.
웹 UI
다른 메서드를 사용합니다. Google Cloud 콘솔에서 특성 값을 내보낼 수 없습니다.
REST
특성 값을 내보내려면 entityTypes.exportFeatureValues 메서드를 사용하여 POST 요청을 전송합니다.
다음 샘플은 BigQuery 테이블을 출력하지만 Cloud Storage 버킷에 출력할 수도 있습니다. 각 출력 대상에는 요청을 제출하기 전에 몇 가지 기본 요건이 있을 수 있습니다. 예를 들어 bigqueryDestination
필드에 테이블 이름을 지정하려면 기존 데이터 세트가 있어야 합니다. 이러한 요구사항은 API 참조에 설명되어 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION_ID: 피처스토어가 있는 리전입니다. 예를 들면
us-central1
입니다. - PROJECT_ID: 프로젝트 ID
- FEATURESTORE_ID: 피처스토어의 ID
- ENTITY_TYPE_ID: 항목 유형의 ID입니다.
- START_TIME 및 END_TIME: (선택사항) 시작 시간만 지정하면 현재 시간(요청이 전송된 시간)부터 시작하고 시작 시간 전까지 다시 확인하는 최신 값을 반환합니다. 종료 시간만 지정하면 종료 시간(포함)부터 시작하고 첫 번째 값까지 다시 확인하는 최신 값을 반환합니다. 시작 시간과 종료 시간을 지정하면 지정된 시간 범위(포함) 내 최신 값을 반환합니다. 둘 다 지정하지 않으면 현재 시간부터 시작하고 첫 번째 값을 다시 확인하는 각 특성의 최신 값을 반환합니다.
- DATASET_NAME: 대상 BigQuery 데이터 세트의 이름입니다.
- TABLE_NAME: 대상 BigQuery 테이블의 이름입니다.
- FEATURE_ID: 특성 하나 이상의 ID입니다. 단일
*
(별표)를 지정하여 모든 특성을 선택합니다.
HTTP 메서드 및 URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues
JSON 요청 본문:
{ "snapshotExport": { "start_time": "START_TIME", "snapshot_time": "END_TIME" }, "destination" : { "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" } }, "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID", ...] } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportFeatureValuesOperationMetadata", "genericMetadata": { "createTime": "2021-12-03T22:55:25.974976Z", "updateTime": "2021-12-03T22:55:25.974976Z" } } }
Java
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Vertex AI Java API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 Vertex AI Node.js API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
Vertex AI SDK for Python을 설치하고 사용하는 방법은 Vertex AI SDK for Python 사용을 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참고 문서를 확인하세요.
전체 내보내기
지정된 기간 내 모든 특성 값을 내보냅니다.
웹 UI
다른 메서드를 사용합니다. Google Cloud 콘솔에서 특성 값을 내보낼 수 없습니다.
REST
특성 값을 내보내려면 entityTypes.exportFeatureValues 메서드를 사용하여 POST 요청을 전송합니다.
다음 샘플은 BigQuery 테이블을 출력하지만 Cloud Storage 버킷에 출력할 수도 있습니다. 각 출력 대상에는 요청을 제출하기 전에 몇 가지 기본 요건이 있을 수 있습니다. 예를 들어 bigqueryDestination
필드에 테이블 이름을 지정하려면 기존 데이터 세트가 있어야 합니다. 이러한 요구사항은 API 참조에 설명되어 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION_ID: 피처스토어가 있는 리전입니다. 예를 들면
us-central1
입니다. - PROJECT_ID: 프로젝트 ID
- FEATURESTORE_ID: 피처스토어의 ID
- ENTITY_TYPE_ID: 항목 유형의 ID입니다.
- START_TIME 및 END_TIME: (선택사항) 시작 시간만 지정하면 현재 시간(요청이 전송된 시간)과 시작 시간(포함) 사이의 모든 값을 반환합니다. 종료 시간만 지정하면 종료 시간(포함)과 각 특성의 첫 번째 값 타임스탬프 사이의 모든 값을 반환합니다. 시작 시간과 종료 시간을 지정하면 지정된 시간 범위(포함) 내 모든 값을 반환합니다. 둘 다 지정하지 않으면 현재 시간과 각 특성의 첫 번째 값 타임스탬프 사이의 모든 값을 반환합니다.
- DATASET_NAME: 대상 BigQuery 데이터 세트의 이름입니다.
- TABLE_NAME: 대상 BigQuery 테이블의 이름입니다.
- FEATURE_ID: 특성 하나 이상의 ID입니다. 단일
*
(별표)를 지정하여 모든 특성을 선택합니다.
HTTP 메서드 및 URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues
JSON 요청 본문:
{ "fullExport": { "start_time": "START_TIME", "end_time": "END_TIME" }, "destination" : { "bigqueryDestination": { "outputUri": "bq://PROJECT.DATASET_NAME.TABLE_NAME" } }, "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID", ...] } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:exportFeatureValues" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportFeatureValuesOperationMetadata", "genericMetadata": { "createTime": "2021-12-03T22:55:25.974976Z", "updateTime": "2021-12-03T22:55:25.974976Z" } } }
Java
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Vertex AI Java API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 Vertex AI Node.js API 참고 문서를 참조하세요.
Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
추가 언어
Vertex AI SDK for Python을 설치하고 사용하는 방법은 Vertex AI SDK for Python 사용을 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참고 문서를 확인하세요.
다음 단계
- 특성 값 일괄 수집 방법 알아보기
- 온라인 서빙을 통해 특성을 제공하는 방법 알아보기
- Vertex AI Feature Store(기존) 동시 일괄 작업 할당량 보기
- 일반적인 Vertex AI Feature Store(기존) 문제 해결