Workday Data Lake에 대한 교차 클라우드 연결을 사용하면 Google Cloud내에서 Workday 데이터를 직접 쿼리할 수 있습니다. 그런 다음 Lakehouse를 사용하여 데이터를 복사하거나 이동하지 않고도 연합 데이터에 대한 액세스를 관리하고 분석할 수 있습니다.
사용 사례
레이크하우스를 Workday Data Lake에 연결하면 다음과 같은 여러 주요 사용 사례가 지원됩니다.
- 분석 통합: Workday HR 및 보상 데이터를Google Cloud 데이터와 연관시켜 영업 및 할당량에 대한 컨텍스트를 제공합니다.
- Google Cloud 생태계 활용: 예를 들어 BigQuery ML 및 Workday HR 데이터와 함께 Google의 에이전트 프레임워크를 사용하여 직원 유지율을 예측합니다.
- 실시간으로 복사되지 않은 데이터 스트리밍:Google Cloud 에 저장된 물류 및 인벤토리 데이터와 함께 Workday 조달 및 미지급금 데이터를 분석하여 공급망 비효율성을 보고하고 공급업체 비용을 최적화합니다.
시작하기 전에
- 레이크하우스 개요를 검토하여 레이크하우스가 데이터 액세스를 관리하는 방법을 파악합니다.
- 교차 클라우드 데이터 액세스에 대해 읽어보고 작동 방식을 이해하세요.
- 지원되는 카탈로그를 검토하여 호환성을 확인합니다.
- 리전 Secret Manager 보안 비밀을 사용하여 Workday Data Lake를 인증하는 방법을 알아봅니다.
- Workday 데이터 레이크 관리자에게 문의하여 이 문서에 설명된 대로 인증을 설정하세요. 관리자는 Data Lake 액세스를 사용 설정하기 위해 Workday 지원팀에 문의해야 할 수 있으며, 이 경우 해결하는 데 시간이 걸릴 수 있습니다.
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
필요한 역할
크로스 클라우드 액세스를 설정하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
레이크하우스 카탈로그 관리:
BigLake 관리자 (
roles/biglake.admin) -
보안 비밀 관리: Secret Manager 관리자 (
roles/secretmanager.admin)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
지원되는 카탈로그 세부정보
이 문서에서는 Workday Data Lake를 사용하여 Lakehouse를 설정하는 방법을 안내합니다. 다른 카탈로그에 액세스하려면 지원되는 카탈로그를 참고하세요.
제한사항 및 고려사항
Workday Data Lake에 액세스할 때는 다음 사항에 유의하세요.
- 읽기 전용: Lakehouse의 제휴 카탈로그는 원격 카탈로그의 읽기 전용 뷰입니다. 리소스를 만들거나 업데이트하거나 삭제하려면 Workday를 직접 사용해야 합니다.
- 네트워크 라우팅: 연결과 쿼리가 공개 인터넷을 통해 안전하게 라우팅됩니다.
- 데이터 최신 상태:
--refresh-interval플래그는 Lakehouse가 메타데이터를 동기화하는 빈도를 결정합니다. 값은0s(사용 중지됨) 또는300s(5분) 이상이어야 합니다. 카탈로그의 네임스페이스와 테이블 수가 증가하면 백그라운드 메타데이터 새로고침을 완료하는 데 시간이 더 오래 걸립니다. 이전 새로고침이 예약된 간격을 초과하면 시스템은 현재 주기를 건너뛰고 다음 예약된 간격에서 다시 시작합니다. - 코로케이션: 연결 문제를 방지하고 지연 시간과 데이터 전송 비용을 최소화하려면 Workday 인스턴스가 있는 리전과 가장 가까운Google Cloud 리전에서 페더레이션 카탈로그와 리전 보안 비밀을 만드세요.
일반 워크플로
Workday Data Lake에서 크로스 클라우드 데이터에 액세스하려면 다음 일반 단계를 따르세요.
- 연합 설정: 보안 비밀 기반 인증을 구성하고 Lakehouse에 연합 카탈로그를 만듭니다.
- Workday에서 통합을 위한 통합 시스템 사용자 (ISU)와 API 클라이언트를 만듭니다.
- Workday API 사용자 인증 정보로 Secret Manager에서 보안 비밀을 만듭니다.
- Lakehouse에서 제휴 카탈로그를 만들고 카탈로그 서비스 계정에 보안 비밀 액세스 권한을 부여합니다.
- 연결 확인: Lakehouse가 원격 카탈로그에 연결하고 메타데이터를 동기화할 수 있는지 확인합니다.
- 데이터 쿼리: BigQuery 또는 Managed Service for Apache Spark를 사용하여 통합 데이터에 대해 쿼리를 실행합니다. 자세한 내용은 원격 데이터 쿼리를 참고하세요.
- 권한 구성: Identity and Access Management (IAM)를 사용하여 제휴 데이터를 보고 쿼리할 수 있는 사용자를 관리합니다.
제휴 설정
데이터를 쿼리하려면 원격 Workday 데이터 레이크에 연결되는 Lakehouse 페더레이션 카탈로그를 설정해야 합니다.
인증 구성
제휴를 사용하려면 리전 Secret Manager 보안 비밀에 안전하게 저장된 사용자 인증 정보를 사용하여 원격 Workday 데이터 레이크에 인증해야 합니다.
Workday에서 다음 설정을 완료합니다.
- 통합 시스템 사용자 (ISU) 만들기: 통합 시스템 사용자 만들기 작업을 실행하여 Lakehouse가 리소스를 동기화하는 데 사용하는 전용 계정을 만듭니다.
- ISU에 Workday Data Lake 액세스 권한 부여: ISU에 Workday Data Lake 액세스 권한을 부여합니다. 이 액세스 권한을 사용 설정하려면 Workday 지원팀에 문의하세요. 이 단계는 직접 수행할 수 없습니다. 계속하기 전에 Workday가 Workday 테넌트에서 액세스를 구성할 때까지 기다리세요.
- 통합용 API 클라이언트 등록: 통합용 API 클라이언트 등록 작업을 실행합니다.
- 클라이언트 ID 및 보안 비밀 저장: 다음 단계를 위해 OAuth 클라이언트 ID 및 보안 비밀을 저장합니다.
- 만료되지 않는 갱신 토큰 생성: 통합용 API 클라이언트에서 통합용 갱신 토큰 관리를 사용하여 ISU의 만료되지 않는 갱신 토큰을 생성합니다.
- 갱신 토큰 저장: 다음 단계를 위해 생성된 갱신 토큰을 저장합니다.
이전 단계에서 저장한 데이터로
credentials.json이라는 JSON 파일을 만듭니다.{ "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET", "refresh_token": "REFRESH_TOKEN" }
다음을 바꿉니다.
CLIENT_ID: Workday API Client for Integrations의 OAuth 클라이언트 ID입니다.CLIENT_SECRET: Workday API Client for Integrations의 OAuth 클라이언트 보안 비밀번호입니다.REFRESH_TOKEN: Workday ISU에 대해 생성된 만료되지 않는 갱신 토큰입니다.
Secret Manager의 리전 엔드포인트를 구성합니다.
기본적으로 Secret Manager는 전역 엔드포인트를 사용합니다. 연결 문제를 방지하고 지연 시간과 데이터 전송 비용을 최소화하려면 동일한 리전에 비밀과 카탈로그를 만드세요. 기본 전역 엔드포인트를 리전 보안 비밀로 재정의하려면 다음 명령어를 실행합니다.
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
다음을 바꿉니다.
REGION: Secret Manager 보안 비밀을 저장하는 Google Cloud 리전입니다. 예를 들면us-east4입니다.
페이로드를 Secret Manager에 업로드합니다.
gcloud secrets create WORKDAY_SECRET_NAME \ --location="REGION" \ --project="PROJECT_ID" \ --data-file=credentials.json
credentials.json파일을 안전하게 삭제하여 사용자 인증 정보 유출을 방지합니다.다음을 바꿉니다.
WORKDAY_SECRET_NAME: Secret Manager에 있는 Workday 보안 비밀의 고유 이름입니다(예:workday-api-credentials또는workday-data-lake-secret).REGION: 보안 비밀을 만드는 Google Cloud 리전입니다(예:us-east4).PROJECT_ID: Google Cloud 프로젝트 ID입니다.
제휴 카탈로그 만들기
gcloud CLI를 사용하여 제휴 카탈로그를 만들려면 다음 명령어를 실행합니다.
gcloud alpha biglake iceberg catalogs create FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --primary-location="REGION" \ --catalog-type="federated" \ --federated-catalog-type="workday" \ --secret-name="projects/PROJECT_ID/locations/REGION/secrets/WORKDAY_SECRET_NAME" \ --workday-base-url="WORKDAY_BASE_URL" \ --workday-tenant="WORKDAY_TENANT" \ --refresh-interval="REFRESH_INTERVAL" \ --namespace-filters="NAMESPACE_FILTERS"
다음을 바꿉니다.
FEDERATED_CATALOG_NAME: Lakehouse의 제휴 카탈로그 이름입니다.PROJECT_ID: Google Cloud 프로젝트 ID입니다.REGION: 페더레이션 카탈로그를 만드는 Lakehouse 리전입니다(예:us-east4). 지연 시간과 데이터 전송 비용을 최소화하려면 Workday 인스턴스와 가장 가까운 Google Cloud 리전을 선택하세요. 이 리전은 보안 비밀을 저장한 리전과 동일해야 합니다.WORKDAY_SECRET_NAME: Secret Manager에 있는 Workday 보안 비밀의 이름입니다.WORKDAY_BASE_URL: Workday 인스턴스의 기본 URL입니다. 예를 들면impl-services1.wd12.myworkday.com또는wd501.myworkday.com입니다.WORKDAY_TENANT: Workday 테넌트 이름입니다.REFRESH_INTERVAL: 선택사항: 카탈로그 정보를 업데이트하는 빈도를 지정합니다. 이 값을 기간(예:300s또는5m)으로 설정합니다. 간격이 짧을수록 데이터가 더 자주 업데이트되지만 API 호출 비용이 더 많이 들 수 있습니다. 간격이 길면 비용이 절감될 수 있지만 쿼리된 데이터가 최신 데이터 세트를 반영하지 않을 수 있습니다. 생략하면 새로고침 간격이 기본적으로 5분 (300s)으로 설정됩니다. 값을0s로 설정하면 백그라운드 메타데이터 새로고침이 사용 중지됩니다.NAMESPACE_FILTERS: 선택사항: 페더레이션할 네임스페이스의 쉼표로 구분된 목록입니다(예:finance,hr). 생략하면 Lakehouse에 모든 네임스페이스가 포함됩니다.
인증 설정 완료
카탈로그를 만들면 Lakehouse에서 카탈로그에 고유한 서비스 계정을 프로비저닝합니다. 이 서비스 계정은 리소스 설명에서 biglake-service-account로 식별됩니다.
이 서비스 계정에 이전에 만든 보안 비밀에 대한 Secret Manager 보안 비밀 접근자 역할(roles/secretmanager.secretAccessor)을 부여해야 합니다.
새 IAM 정책이 적용되는 데 몇 분 정도 걸릴 수 있습니다.
콘솔
Google Cloud 콘솔에서 Lakehouse로 이동합니다.
Workday용으로 만든 제휴 카탈로그의 이름을 클릭합니다.
카탈로그 세부정보 페이지의 알림 배너에서 시크릿 권한 부여를 클릭합니다.
Lakehouse는 프로비저닝된 서비스 계정에 보안 비밀에 대한
roles/secretmanager.secretAccessor역할을 부여합니다.
gcloud CLI
카탈로그의 서비스 계정에 보안 비밀에 액세스할 수 있는 권한을 부여합니다.
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets add-iam-policy-binding WORKDAY_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION" \ --member="serviceAccount:$(gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID" \ --format='value(biglake-service-account)')" \ --role="roles/secretmanager.secretAccessor"
연합 카탈로그 서비스 계정에 비밀에 대한 액세스 권한이 있는지 확인하려면 다음 명령어를 실행합니다.
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/ gcloud secrets get-iam-policy WORKDAY_SECRET_NAME \ --project="PROJECT_ID" \ --location="REGION"
출력에서
biglake-service-account서비스 계정에roles/secretmanager.secretAccessor역할이 있는지 확인합니다.
다음을 바꿉니다.
REGION: Secret Manager 보안 비밀을 저장하고 페더레이션 카탈로그를 만든 Google Cloud 리전입니다(예:us-east4).WORKDAY_SECRET_NAME: Secret Manager에 있는 Workday 보안 비밀의 이름입니다.PROJECT_ID: Google Cloud 프로젝트 ID입니다.FEDERATED_CATALOG_NAME: Lakehouse의 제휴 카탈로그 이름입니다.
연결 확인하기
백그라운드 메타데이터 새로고침이 성공적으로 완료되어 네임스페이스와 테이블이 동기화되었는지 확인합니다.
새로고침 상태가 성공을 나타내는지 확인합니다.
gcloud alpha biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \ --project="PROJECT_ID"
네임스페이스가 동기화되었는지 확인합니다.
gcloud alpha biglake iceberg namespaces list \ --project="PROJECT_ID" \ --catalog="FEDERATED_CATALOG_NAME"
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트 ID입니다.FEDERATED_CATALOG_NAME: Lakehouse의 제휴 카탈로그 이름입니다.