Troubleshoot Workday Live Data Query

Troubleshoot Workday Live Data Query (Workday Live Data Query 문제 해결)

이 주제는 Snowflake에서 Workday LDQ(라이브 데이터 쿼리)를 설정하거나 사용할 때 마주칠 수 있는 일반적인 오류와 그 원인·해결 방법을 설명해요.

출처: Snowflake Documentation

본문

Preview 기능 — 열림

모든 계정에서 사용할 수 있어요.

HTTP 404: 성공적인 연결 후 쿼리 실패

증상: 연결은 성공하지만 이후 쿼리가 HTTP 404 오류로 실패해요.

원인: 연결 구성의 포트 번호가 잘못됐어요.

해결: DataServiceConfig 사전에 "wd.port": "443"이 설정되어 있는지 확인해요. Workday 연결 및 Snowflake에서 데이터 쿼리 참고.


HTTP 400: 인증 요청 거부됨

증상: Workday Authorization Server가 인증 요청을 거부해요.

원인: DataServiceConfig의 ISU 사용자 이름이 Workday에 등록된 ISU와 일치하지 않아요.

해결: DataServiceConfig의 wd.authn.isu가 Workday의 View Integration System User 작업에 표시된 사용자 이름과 정확히 일치하는지 확인해요. 이 값은 대소문자를 구분해요.


HTTP 401: 토큰 엔드포인트에서 인증 실패

증상: 토큰 엔드포인트에서 인증이 실패해요.

원인: 구성의 Client ID가 Workday에서 생성된 것과 일치하지 않아요.

해결: wd.authn.clientId가 Workday의 Register API Client 페이지에 있는 값과 일치하는지 확인해요.


접근 토큰 요청 실패: 네트워크 오류

증상: 인증이 완료되기 전에 Python이 연결 오류를 발생시켜요.

원인: notebook이 Workday 토큰 엔드포인트에 도달할 수 없어요. EAI가 연결되지 않았거나 네트워크 규칙이 잘못 구성됐어요.

해결:

  1. 외부 접근 통합이 notebook에 연결되어 있는지 확인해요. Workday 연결 및 Snowflake에서 데이터 쿼리 참고.
  2. 네트워크 규칙 VALUE_LIST에 올바른 호스트 이름과 포트(host:443)가 포함되어 있는지 확인해요.
  3. EAI가 ENABLED = TRUE인지 확인해요.
  4. EAI의 ALLOWED_AUTHENTICATION_SECRETS에 WORKDAY_LDQ_TEST.LIVEDATA.WORKDAY_PRIVATE_KEY가 포함되어 있는지 확인해요. 포함되어 있지 않으면 _snowflake.get_generic_secret_string()도 실패해요. Snowflake for Workday Live Data Query 설정 참고.

접근 토큰 획득 실패: 404

증상: 커넥터가 서버에 도달하지만 토큰 엔드포인트 경로가 404를 반환해요.

원인: 토큰 엔드포인트 URL이 잘못됐으며, 일반적으로 테넌트 ID나 환경 이름이 잘못됐어요.

해결: wd.authn.accessTokenEndpoint를 다시 확인해요. 예상 형식은:

https://<host>/ccx/oauth2/<tenant>/token

테넌트 이름이 Workday 테넌트와 정확히 일치하는지 확인해요.


접근 토큰 획득 실패: 401(암호화 실패)

증상: 토큰 요청이 Workday에 도달하지만 암호화 오류로 인증이 거부돼요.

원인: 사용 중인 개인 키가 Workday의 API Client에 등록된 공개 키와 일치하지 않아요.

해결:

  1. Snowflake 시크릿 WORKDAY_LDQ_TEST.LIVEDATA.WORKDAY_PRIVATE_KEY에 Workday의 API Client에 등록된 공개 키에 대응하는 개인 키가 포함되어 있는지 확인해요.
  2. 키가 교체되거나 재생성됐다면 새 개인 키 내용으로 시크릿을 다시 만들고, 해당 공개 키로 Workday에서 API Client를 다시 등록해요.

ModuleNotFoundError: No module named 'workday_ldq'

증상: notebook 재시작 후 import가 실패해요.

원인: wheel은 세션 단위로 설치되며 notebook 재시작 간 지속되지 않아요.

해결: 매 notebook 재시작 후 pip install 셀(Workday 연결 및 Snowflake에서 데이터 쿼리의 3단계)을 다시 실행해요. 항상 먼저 실행되도록 첫 번째 셀로 유지해요.


예외: 시크릿을 검색할 때 No secret found 또는 PermissionError

증상: notebook 설정의 임시 UDF가 시크릿 관련 오류로 실패해요.

원인: 다음 중 하나:

  • 시크릿 이름이 잘못됐거나, 시크릿이 WORKDAY_LDQ_TEST.LIVEDATA에 존재하지 않아요.
  • 시크릿이 EAI의 ALLOWED_AUTHENTICATION_SECRETS에 나열되지 않았어요.
  • EAI가 notebook에 연결되지 않았어요.

해결:

  1. Snowflake Worksheet에서 다음을 실행해 시크릿이 존재하는지 확인해요:
SHOW SECRETS IN SCHEMA WORKDAY_LDQ_TEST.LIVEDATA;
  1. EAI에 시크릿이 포함되어 있고 notebook에 연결되어 있는지 확인해요. Snowflake for Workday Live Data Query 설정 및 Workday 연결 및 Snowflake에서 데이터 쿼리 참고.
  2. @udf 데코레이터의 secrets 파라미터의 시크릿 이름이 정규화된 이름과 정확히 일치하는지 확인해요(예: 'WORKDAY_LDQ_TEST.LIVEDATA.WORKDAY_PRIVATE_KEY').

쿼리가 행을 반환하지 않거나 테이블을 찾을 수 없음

증상: SELECT COUNT(*) FROM workday_core.public.worker가 0을 반환하거나 "table not found" 오류를 발생시켜요.

원인: ISU가 Workday에서 올바른 보안 그룹 권한을 갖지 못했거나, Workday 테넌트가 Workday Data Cloud 환경을 프로비저닝하지 않았어요.

해결:

  1. ISU가 Workday의 **Integration System Security Group (Unconstrained)**에 속하는지 확인해요.
  2. ISU의 보안 그룹이 필요한 Workday 카탈로그 도메인에 View Only 권한이 있는지 확인해요.
  3. 권한 설정 후 Workday에서 Activate Pending Security Policy Changes가 실행됐는지 확인해요.
  4. 커넥터를 통해 SHOW SCHEMAS 또는 SHOW TABLES를 실행해 ISU에 접근 가능한 것이 무엇인지 확인해요.

더 알아보기 (Learn more)