개념: 데이터 내보내기 REST API
개요
Prism REST 서비스의 데이터 내보내기 API는 테이블 기반 Prism 데이터 소스에서 대규모로 데이터를 내보내는 기능을 제공합니다.
주요 기능
- 테이블 기반 Prism 데이터 소스에서 데이터를 내보내는 데이터 내보내기 작업을 생성합니다.
- 특정 데이터 내보내기 작업을 취소합니다. 데이터 내보내기 작업 상태는 '예정' 또는 '실행중'이어야 합니다.
- 제약조건이 없는 시큐리티 그룹의 사용자는 모든 데이터 내보내기 작업을 조회하고 취소할 수 있습니다.
- 셀프서비스 시큐리티 그룹의 사용자는 본인이 생성한 데이터 내보내기 작업만 조회하고 취소할 수 있습니다.
- 데이터 내보내기 작업의 상태를 확인하십시오.
- 예정: 데이터 내보내기 작업이 실행되도록 스케줄링되었습니다.
- 처리 중: 데이터 내보내기 작업이 현재 실행 중입니다.
- 성공: 데이터 내보내기 작업이 완료되고 내보낸 데이터가 포함된 출력 파일이 하나 이상 생성되었습니다.
- 취소: 사용자의 요청에 따라 데이터 내보내기 작업 실행이 중지되었습니다.
- 실패: 데이터 내보내기 작업을 실행하는 동안 오류가 발생했습니다.
- 내보낸 데이터가 포함된 출력 파일을 다운로드합니다.
- 현재 사용자의 시큐리티 프로필에서 허용하는 출력 파일만 다운로드할 수 있습니다.
- 파일을 순차적으로 또는 동시에 다운로드할 수 있습니다. 모든 출력 파일을 동시에 다운로드하여 다운로드하는 데 필요한 시간을 줄일 수 있습니다.
- 다운로드 성능은 다음에 따라 달라집니다.
- 파일 수
- 병행 다운로드 수입니다.
- API 클라이언트와 Workday 서버 간의 네트워크 대역폭입니다. 예를 들어 클라이언트가 서버와 다른 지역에 있는 경우 파일 다운로드 시간이 늘어납니다.
사용 사례
사용 사례 | 설명 |
|---|---|
정보 공개 및 법정 보고 | 매일에서 매년까지의 스케줄에 따라 Workday에서 특정 기간에 대한 대량의 상세한 재무 데이터를 추출해야 합니다. 내보낸 후에는 엔터프라이즈 데이터 레이크 또는 규제 보고 도구에 데이터를 제출할 수 있습니다. 이 도구를 사용하면 엄격한 규정을 준수하기 위해 더 쉽게 재무 정보의 형식을 지정하고 제출할 수 있습니다. |
고급 분석, 데이터 과학 및 기타 리포트 | Workday에서 특정 기간에 대한 대량의 상세한 운영 및 재무 데이터를 추출해야 합니다. 내보낸 후에는 엔터프라이즈 레이크 또는 데이터 사이언스 워크벤치에 데이터를 제출할 수 있습니다. 여기서 다음 주제에 대한 예측 모델을 생성할 수 있습니다.
|
규제 보류 및 보관 | 5~7년 간의 재무 데이터를 보관하여 규제 및 컴플라이언스 표준을 충족해야 합니다. 요청 시 해당 규정 및 업종에 따라 규제 기관 및 감사인이 이 데이터를 즉시 사용할 수 있도록 해야 합니다. |
감사 요청 | 철저한 감사를 수행하려면 지정된 기간 동안 특정 잔액에 대한 모든 거래, 활동 및 메타데이터를 요청해야 합니다. 이 데이터는 이전 연도뿐만 아니라 월별, 분기별, 연간 기준으로 필수입니다. 많은 수의 데이터를 감사 데이터베이스로 내보내야 합니다. |
URL 기본 경로
테넌트 기본 경로
데이터 내보내기 작업을 생성하는 예는 다음과 같습니다.https://{hostname}/api/prismAnalytics/{version}/{tenantname}/dataExport
https://yourTenantHostName.com/api/prismAnalytics/v3/<TENANT_NAME>/dataExport
Workday Extend API Gateway 기본 경로
Workday Extend 앱의 경우 회사의 지역 API 게이트웨이 기본 URL을 사용합니다. 개발자 사이트에서참조: Workday Extend API Gateways and Authorization Base URL을확인하십시오.
API Gateway 기본 URL에 테넌트명이 포함되어 있지 않습니다.
시큐리티 고려사항
Prism 기능 영역의 다음 도메인:
- Prism 데이터 내보내기: 실행: 데이터 내보내기 작업을 생성할 수 있는 사용자를 제어합니다.
- Prism Data Export: Manage: 데이터 내보내기 작업을 조회하고 취소할 수 있는 사용자를 제어합니다.
데이터 내보내기 작업 생성
다음
POST /dataExport
엔드포인트를 사용하면 데이터 내보내기 작업을 쉽게 생성할 수 있습니다.시큐리티 고려사항:
- Prism Analytics 기능 영역의Prism Data Export: exe도메인
- 내보낸 테이블에 대한 다음 시큐리티 요구사항:
- Prism Analytics 기능 영역의Prism: Tables Manage도메인
- Prism Analytics 기능 영역의Prism: Tables Owner Manage도메인
- 테이블에 대한테이블 뷰어권한
- 테이블에 대한테이블 편집자권한
- 테이블에 대한테이블 소유자권한
지정된 Prism 데이터 소스에 대한 데이터 내보내기 작업을 생성하려면 이 방법을 사용합니다.
데이터 내보내기 작업을 생성하면 Workday는 사용자가 로컬 컴퓨터로 다운로드할 수 있는 Prism 데이터 소스의 데이터가 포함된 파일을 하나 이상 생성합니다.
요청 본문에서 다음 매개변수의 값을 제공합니다.
본문 매개변수 | 유형 | 설명 |
|---|---|---|
입력 | 오브젝트 | Prism 데이터 소스에서 내보낼 모든 필드를 지정하는 WQL 쿼리를 포함합니다.
다음 형식을 사용합니다.
WQL 쿼리를 작성하는 경우:
입력 매개변수에 유효한 쿼리를 지정하는 방법에 대한 자세한 내용은참조: WQL 쿼리 사용 및 데이터 내보내기 가이드라인을확인하십시오. |
출력 | 오브젝트 | 다음 형식을 사용합니다.
|
샘플 요청:
POST /dataExport
샘플 요청 본문:
{ "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData WHERE claimAmount > 1000", "type": "SQL" }, "output": { "type": "CSV_GZIP", "headers": true } }
샘플 응답
{ "createdMoment": "2017-03-17T00:00:00.000Z", "status": "Scheduled", "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData WHERE claimAmount > 1000", "type": "SQL" }, "id": "b1bd0e1ac5d410001193bf9340050000" }
데이터 내보내기 작업 상태 가져오기
다음
GET /dataExport
엔드포인트를 사용하면 모든 데이터 내보내기 작업을 쉽게 검색할 수 있습니다.다음
GET /dataExport/{id}
- 내보내기 작업 1개를 쉽게 검색할 수 있습니다.시큐리티 고려사항:
Prism Analytics 기능 영역의
Prism Data Export: Manage
도메인이 엔드포인트는 현재 사용자에게 권한이 있는 데이터 내보내기 작업을 반환합니다. 컬렉션을 검색할 때 다음과 같은 옵션 쿼리 매개변수를 사용합니다.
쿼리 매개변수 | 설명 | 기본값 | 최대값 |
|---|---|---|---|
type | 유형 값에 따라 포함할 응답 필드가 결정됩니다.
| 요약 | |
limit | 단일 응답에 포함된 오브젝트 데이터 항목 수 제한입니다. | 20 | 1000 |
offset | 응답에 포함할 컬렉션의 첫 번째 오브젝트에 대한 오프셋입니다. | 0 |
샘플 요청:
GET /dataExport
샘플 응답:
응답은 JSON 형식의 데이터 내보내기 작업 모음입니다.
이 샘플 응답에는 1개의 데이터 내보내기 작업만 표시됩니다.
{ "total": 7, "data": [ { "createdMoment": "2023-08-03T22:47:10.929Z", "createdBy": { "id": "274555853a4446cf8809325243534f34", "descriptor": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)", "fullName": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)" }, "status": "Success", "input": { "query": "SELECT insuranceOfficeState, sourceFileTag, sort1, sort2, agentCity, agentCountry, agentNote, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData", "type": "SQL" }, "output": { "noOfFiles": 4, "totalSizeInBytes": 5610214, "totalRows": 110408 }, "id": "b1bd0e1ac5d4100013ad1f50c6910000" }, ... ] }
ID가 b1bd0e1ac5d410001193bf9340050000인 데이터 내보내기 작업에 대한 정보를 검색하는 요청 샘플:
GET /dataExport/b1bd0e1ac5d410001193bf9340050000
샘플 응답:
{ "createdMoment": "2023-08-03T22:08:42.928Z", "createdBy": { "id": "274555853a4446cf8809325243534f34", "descriptor": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)", "fullName": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)" }, "status": "Success", "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData WHERE claimAmount > 1000", "type": "SQL" }, "output": { "createdTime": "2023-08-03T22:08:53.725Z", "expirationTime": "2023-08-10T22:08:53.725Z", "noOfFiles": 2, "totalSizeInBytes": 359680, "totalRows": 41301, "results": [ { "name": "part-00000-70e49bea-487e-4a3e-b43e-be3935e951c1-c000.csv.gz", "length": 298913 }, { "name": "part-00001-70e49bea-487e-4a3e-b43e-be3935e951c1-c000.csv.gz", "length": 60767 } ] }, "id": "b1bd0e1ac5d410001193bf9340050000" }
출력 파일 다운로드
다음
GET /dataExport/{id}/results/{fielName}
엔드포인트를 사용하면 데이터 내보내기 작업에서 출력 파일을 쉽게 다운로드할 수 있습니다.다음을 지정합니다.
- 데이터 내보내기 작업의 ID입니다.
- 데이터 내보내기 작업의 출력 파일명입니다.
다음
GET /dataExport/{id}
엔드포인트는 출력 파일의 이름을 제공합니다.현재 사용자의 시큐리티 프로필에서 허용하는 출력 파일만 다운로드할 수 있습니다. 파일을 순차적으로 또는 동시에 다운로드할 수 있습니다.
시큐리티 고려사항:
Prism Analytics 기능 영역의
Prism Data Export: Manage
도메인 part-00000-70e49bea-487e-4a3e-b43e-be3935e951c1-c000.csv.gz라는 파일을 다운로드하는 샘플 요청:
GET /dataExport/b1bd0e1ac5d410001193bf9340050000/results/part-00000-70e49bea-487e-4a3e-b43e-be3935e951c1-c 000.csv.gz
데이터 내보내기 작업 취소
다음
POST /dataExport/{id}/cancel
엔드포인트를 사용하면 스케줄링되었거나 실행 중인 특정 데이터 내보내기 작업을 쉽게 취소할 수 있습니다.현재 사용자의 시큐리티 프로필에서 허용하는 데이터 내보내기 작업만 취소할 수 있습니다.
시큐리티 고려사항:
Prism Analytics 기능 영역의 다음 도메인 중 하나:
- Prism 데이터 내보내기: 실행
- Prism 데이터 내보내기: 관리
내보낸 테이블에 대한 다음 시큐리티 요구사항:
- Prism Analytics 기능 영역의Prism: Tables Manage도메인
- Prism Analytics 기능 영역의Prism: Tables Owner Manage도메인
- 테이블에 대한 테이블 뷰어 권한
- 테이블에 대한 테이블 편집자 권한
- 테이블에 대한 테이블 소유자 권한
샘플 요청:
이 메서드의 요청 본문에 빈 JSON 문자열 {}을 포함해야 합니다.
ID가 b1bd0e1ac5d4100018d18abc4ea00000인 데이터 내보내기 작업을 취소하는 샘플 요청:
POST /dataExport/b1bd0e1ac5d4100018d18abc4ea00000/cancel
샘플 응답:
응답에는 현재 상태가 '취소'인 데이터 내보내기 작업이 JSON 형식으로 포함되어 있습니다.
{ "createdMoment": "2023-08-04T00:21:24.914Z", "createdBy": { "id": "274555853a4446cf8809325243534f34", "descriptor": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)", "fullName": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)" }, "status": "Canceled", "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData", "type": "SQL" }, "id": "b1bd0e1ac5d4100018d18abc4ea00000" }
제한사항
- 내보내기 작업은 우선순위가 낮은 작업이며 게시와 같은 다른 작업보다 우선순위가 낮습니다.
- 생성된 파일은 삭제되므로 7일 후에는 다운로드할 수 없습니다.
- 다음과 같은 최대값을 가드레일로 설정하여 시스템 성능과 안정성을 최적화합니다.
- 내보내기 작업당 10억 개의 행
- 쿼리당 열 1,000개
- 동시 다운로드 요청 수:
- 시스템 한도에 도달하면 503 - HIT_SERVER_LIMIT개의 응답이 전송됩니다.
- 테넌트가 특정 한도를 초과하면 429 - HIT_TENANT_LIMIT개의 응답을 받게 됩니다.
- 동시 내보내기 작업:
- 내보내기 작업은 사용자 또는 테넌트당 한 번에 하나만 실행할 수 있습니다.
- 추가 내보내기 작업은 현재 작업이 완료될 때까지 자동으로 대기열에 추가됩니다.
일반적인 오류
검증 오류:
- 잘못된 입력 json입니다.
- 잘못된 SQL, 유효하지 않은 필드/테이블명, 지원되지 않는 함수
- 가드레일: 필드 수 > 10000
- 시큐리티 제약조건이 충족되지 않았습니다.
실행 오류
- 시스템 오류
- Gaudrails: 추출에 10억 개 이상의 행이 있는 경우 실패합니다.
API 다운로드
- 다운로드 시에는 예상치 못한 네트워크 문제 또는 시스템 문제로 인해 HTTP 클라이언트가 재시도하는 것이 좋습니다. 테넌트 및 서버에 대해 생성되는 동시 연결 수에는 비율 제한이 적용됩니다. 때때로 HTTP 상태 코드가 표시될 수 있습니다.429또는503이 적용되는 한도 때문입니다. 클라이언트가 잠시 기다린 후 요청을 다시 시도하는 것이 좋습니다.
성능 고려사항
데이터 추출 성능:
- 데이터 추출 실행 시간은 데이터 유형과 데이터의 행 및 열 수에 따라 달라집니다.
- 실행 시간은 데이터 볼륨에 따라 늘어납니다.
다운로드 성능:
- 모든 파일 크기의 총 다운로드 시간은 결과를 다운로드하는 프로세스의 수에 따라 선형으로 감소합니다.
- 다운로드 성능은 네트워크 대역폭 및 테넌트 서버 위치의 영향도 받을 수 있습니다.