7.7 쿼리 서비스 API

목표

  • 쿼리 서비스 API를 사용하여 쿼리 템플릿 및 쿼리 예약 관리

컨텍스트

이 연습에서는 API 호출을 실행하여 Postman 컬렉션을 사용하여 쿼리 템플릿 및 쿼리 예약을 관리합니다. 쿼리 템플릿을 정의하고 일반 쿼리 및 CTAS 쿼리를 실행합니다. CTAS 쿼리(테이블을 선택 쿼리로 만들기)는 결과를 명시적 데이터 세트에 저장합니다. 일반 쿼리는 암묵적(또는 시스템에서 생성된) 데이터 세트에 저장되지만 일반적으로 쪽모이 세공 마룻파일 형식으로 내보내집니다.

설명서

7.7.1 쿼리 서비스 API

쿼리 서비스 API를 사용하면 Adobe Experience Platform 데이터 레이크에 대한 비대화형 쿼리를 관리할 수 있습니다.

비대화형이란 쿼리 실행에 대한 요청이 즉시 응답을 하지 않음을 의미합니다. 쿼리가 처리되고 그 결과 집합이 암시적 또는 명시적(CTAS:선택한 대로 표 만들기)의 데이터 세트에 대해 설명합니다.

7.7.2 샘플 쿼리

샘플 쿼리는 7.3 - 쿼리, 쿼리, 쿼리… 및 churn 분석에 나열된 첫 번째 쿼리를 사용합니다.

매일 제품 보기 횟수가 얼마나 됩니까?

SQL

select date_format( timestamp , 'yyyy-MM-dd') AS Day,
       count(*) AS productViews
from   demo_system_event_dataset_for_website_global_v1_1
where  --aepTenantId--.demoEnvironment.brandName IN ('Luma Telco', 'Citi Signal')
and eventType = 'commerce.productViews'
group by Day
limit 10;

7.7.3 쿼리

컴퓨터에서 Postman을 엽니다. 모듈 3의 일부로 Postman 환경을 만들고 Postman 컬렉션을 가져왔습니다. 아직 실행하지 않은 경우 연습 3.3.3의 지침을 따르십시오.

가져온 Postman 컬렉션의 일부로 3 폴더가 표시됩니다. 쿼리 서비스. 이 폴더가 표시되지 않는 경우 Postman 컬렉션을 다시 다운로드하고 Exercise 3.3.3에 설명된 대로 Postman에서 해당 컬렉션을 다시 가져오십시오.

QS

노트

지금은 1 폴더만 사용합니다. 쿼리​에 요청이 들어 있습니다. 다른 요청은 레이어 스테이지에 추가됩니다.

해당 폴더를 열고 쿼리 결과 세트를 실행, 모니터링 및 다운로드하려면 쿼리 서비스 API 호출을 알아야 합니다.

다음 페이로드가 있는 [/query/queries]에 대한 POST 호출은 쿼리 실행을 트리거합니다.

7.7.3.1 쿼리 만들기

1.1 QS - 쿼리 만들기​라는 요청을 클릭하고 머리글​으로 이동합니다. 그러면 다음 내용이 표시됩니다.

세그먼테이션

이 헤더 필드에 초점을 맞추겠습니다.

x-sandbox-name --module7sandbox--
노트

사용 중인 Adobe Experience Platform 샌드박스의 이름을 지정해야 합니다. 헤더 필드 x-sandbox-name​은 --module7sandbox--이어야 합니다.

이 요청의 본문 섹션으로 이동합니다. 이 요청의 Body​에 다음이 표시됩니다.

세그먼테이션

{
    "name" : "ldap - QS API demo - Citi Signal - Product Views Per Day",
	"description": "ldap - QS API demo - Citi Signal - Product Views Per Day",
	"dbName": "module7:all",
	"sql": "select date_format( timestamp , 'yyyy-MM-dd') AS Day, count(*) AS productViews from demo_system_event_dataset_for_website_global_v1_1 where _experienceplatform.demoEnvironment.brandName IN ('Luma Telco', 'Citi Signal') and eventType = 'commerce.productViews' group by Day limit 10"
}

주의:아래 요청에서 ldap​을 사용자의 특정 ldap​로 대체하여 name 변수를 업데이트하십시오.

특정 ldap​을 추가한 후 본문은 다음과 비슷해야 합니다.

{
    "name" : "vangeluw - QS API demo - Citi Signal - Product Views Per Day",
	"description": "vangeluw - QS API demo - Citi Signal - Product Views Per Day",
	"dbName": "module7:all",
	"sql": "select date_format( timestamp , 'yyyy-MM-dd') AS Day, count(*) AS productViews from demo_system_event_dataset_for_website_global_v1_1 where _experienceplatform.demoEnvironment.brandName IN ('Luma Telco', 'Citi Signal') and eventType = 'commerce.productViews' group by Day limit 10"
}
노트

위의 JSON 본문에 있는 dbName 키는 Adobe Experience Platform 인스턴스에서 사용되는 샌드박스를 참조합니다. PROD 샌드박스를 사용하는 경우 dbName은 prod:all​이어야 합니다. 인스턴스 module7​와 같은 다른 샌드박스를 사용하는 경우 dbName은 module7:all​과 같아야 합니다.

그런 다음 파란색 보내기 단추를 클릭하여 세그먼트를 만들고 그 결과를 봅니다.

세그먼테이션

POST 요청이 성공하면 다음 응답이 반환됩니다.

{
    "isInsertInto": false,
    "request": {
        "dbName": "module7:all",
        "sql": "select date_format( timestamp , 'yyyy-MM-dd') AS Day, count(*) AS productViews from demo_system_event_dataset_for_website_global_v1_1 where _experienceplatform.demoEnvironment.brandName IN ('Luma Telco', 'Citi Signal') and eventType = 'commerce.productViews' group by Day limit 10",
        "name": "vangeluw - QS API demo - Citi Signal - Product Views Per Day",
        "description": "vangeluw - QS API demo - Citi Signal - Product Views Per Day"
    },
    "clientId": "5a143b5ae4aa4631a1f3b09cd051333f",
    "state": "SUBMITTED",
    "rowCount": 0,
    "errors": [],
    "isCTAS": false,
    "version": 1,
    "id": "8f0d7f25-f7aa-493b-9792-290f884a7e5b",
    "elapsedTime": 0,
    "updated": "2021-01-20T13:23:13.951Z",
    "client": "API",
    "userId": "A3392DB95FFF08EE0A495E87@techacct.adobe.com",
    "created": "2021-01-20T13:23:13.951Z",
    "_links": {
        "self": {
            "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
            "method": "GET"
        },
        "soft_delete": {
            "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
            "method": "PATCH",
            "body": "{ \"op\": \"soft_delete\"}"
        },
        "cancel": {
            "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
            "method": "PATCH",
            "body": "{ \"op\": \"cancel\"}"
        }
    }
}

쿼리의 현재 state​는 SUBMITTED​이며, 일단 실행된 상태는 SUCCESS​가 됩니다.

또한 Adobe Experience Platform UI를 통해 제출된 쿼리를 조회하고 Adobe Experience Platform을 열고 쿼리​로 이동하여 로그​에서 쿼리를 선택할 수도 있습니다.

세그먼테이션

7.7.3.2 쿼리 가져오기

1.2 QS - 쿼리 가져오기​라는 요청을 클릭하고 헤더​로 이동합니다. 그러면 다음 내용이 표시됩니다.

세그먼테이션

이 헤더 필드에 초점을 맞추겠습니다.

x-sandbox-name --module7sandbox--
노트

사용 중인 Adobe Experience Platform 샌드박스의 이름을 지정해야 합니다. 헤더 필드 x-sandbox-name​은 --module7sandbox--이어야 합니다.

매개 변수​로 이동합니다. 그러면 다음 내용이 표시됩니다.

세그먼테이션

orderby 매개 변수를 사용하면 created 속성을 기준으로 정렬 순서를 지정할 수 있습니다. '-' 기호가 작성되었습니다. 즉, 쿼리 목록이 반환되는 순서는 내림차순 순서에서 작성된 날짜를 사용합니다. 쿼리는 목록 맨 위에 있어야 합니다.

그런 다음 파란색 보내기 단추를 클릭하여 세그먼트를 만들고 그 결과를 봅니다.

세그먼테이션

요청이 성공하면 아래 요청과 유사한 응답이 반환됩니다. 응답의 state​는 SUBMITTED, IN_PROGRESS 또는 SUCCESS​일 수 있습니다. 쿼리에 SUCCESS 상태가 포함되려면 몇 분 정도 걸릴 수 있습니다. SUCCESS 상태가 표시될 때까지 이 요청을 여러 번 반복할 수 있습니다.

{
    "queries": [
        {
            "isInsertInto": false,
            "request": {
                "dbName": "module7:all",
                "sql": "select date_format( timestamp , 'yyyy-MM-dd') AS Day, count(*) AS productViews from demo_system_event_dataset_for_website_global_v1_1 where _experienceplatform.demoEnvironment.brandName IN ('Luma Telco', 'Citi Signal') and eventType = 'commerce.productViews' group by Day limit 10",
                "name": "vangeluw - QS API demo - Citi Signal - Product Views Per Day",
                "description": "vangeluw - QS API demo - Citi Signal - Product Views Per Day"
            },
            "clientId": "5a143b5ae4aa4631a1f3b09cd051333f",
            "state": "SUCCESS",
            "rowCount": 1,
            "errors": [],
            "isCTAS": false,
            "version": 1,
            "id": "8f0d7f25-f7aa-493b-9792-290f884a7e5b",
            "elapsedTime": 217481,
            "updated": "2021-01-20T13:26:51.432Z",
            "client": "API",
            "userId": "A3392DB95FFF08EE0A495E87@techacct.adobe.com",
            "created": "2021-01-20T13:23:13.951Z",
            "_links": {
                "self": {
                    "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
                    "method": "GET"
                },
                "soft_delete": {
                    "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
                    "method": "PATCH",
                    "body": "{ \"op\": \"soft_delete\"}"
                },
                "referenced_datasets": [
                    {
                        "id": "60080ace62c49a19490c5870",
                        "href": "https://platform-va7.adobe.io/data/foundation/catalog/dataSets/60080ace62c49a19490c5870"
                    }
                ]
            }
        }
     ]
    },
    "version": 1
}

상태가 SUCCESS​이면 다음 요청을 계속 진행하십시오.

7.7.3.3 쿼리 상태 가져오기

1.3 QS - 쿼리 상태 가져오기​라는 요청을 클릭하고 헤더​로 이동합니다. 그러면 다음 내용이 표시됩니다.

세그먼테이션

이 헤더 필드에 초점을 맞추겠습니다.

x-sandbox-name --module7sandbox--
노트

사용 중인 Adobe Experience Platform 샌드박스의 이름을 지정해야 합니다. 헤더 필드 x-sandbox-name​은 --module7sandbox--이어야 합니다.

그런 다음 파란색 보내기 단추를 클릭하여 세그먼트를 만들고 그 결과를 봅니다.

세그먼테이션

요청이 성공하면 아래 요청과 유사한 응답이 반환됩니다.

{
    "isInsertInto": false,
    "request": {
        "dbName": "module7:all",
        "sql": "select date_format( timestamp , 'yyyy-MM-dd') AS Day, count(*) AS productViews from demo_system_event_dataset_for_website_global_v1_1 where _experienceplatform.demoEnvironment.brandName IN ('Luma Telco', 'Citi Signal') and eventType = 'commerce.productViews' group by Day limit 10",
        "name": "vangeluw - QS API demo - Citi Signal - Product Views Per Day",
        "description": "vangeluw - QS API demo - Citi Signal - Product Views Per Day"
    },
    "clientId": "5a143b5ae4aa4631a1f3b09cd051333f",
    "state": "SUCCESS",
    "rowCount": 1,
    "errors": [],
    "isCTAS": false,
    "version": 1,
    "id": "8f0d7f25-f7aa-493b-9792-290f884a7e5b",
    "elapsedTime": 217481,
    "updated": "2021-01-20T13:26:51.432Z",
    "client": "API",
    "userId": "A3392DB95FFF08EE0A495E87@techacct.adobe.com",
    "created": "2021-01-20T13:23:13.951Z",
    "_links": {
        "self": {
            "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
            "method": "GET"
        },
        "soft_delete": {
            "href": "https://platform-va7.adobe.io/data/foundation/query/queries/8f0d7f25-f7aa-493b-9792-290f884a7e5b",
            "method": "PATCH",
            "body": "{ \"op\": \"soft_delete\"}"
        },
        "referenced_datasets": [
            {
                "id": "60080ace62c49a19490c5870",
                "href": "https://platform-va7.adobe.io/data/foundation/catalog/dataSets/60080ace62c49a19490c5870"
            }
        ]
    }
}

쿼리가 SUCCESS​의 상태에 도달하면 응답에는 rowCount 속성을 통해 쿼리에서 검색한 행 수도 표시됩니다. 이 예제에서는 10개의 행이 쿼리에 의해 반환됩니다. 다음 섹션에서는 10개의 행을 검색할 수 있는 방법을 살펴보겠습니다.

7.7.3.4 쿼리 결과 검색

위의 SUCCESS 응답에는 쿼리 결과를 저장하는 암시적 데이터 세트를 가리키는 referenced_datasets 속성이 포함됩니다. 결과에 액세스하려면 해당 href 또는 id 속성을 사용합니다.

1.4 QS - 쿼리 결과 가져오기​라는 요청을 클릭하고 헤더​로 이동합니다. 그러면 다음 내용이 표시됩니다.

세그먼테이션

이 헤더 필드에 초점을 맞추겠습니다.

x-sandbox-name --module7sandbox--
노트

사용 중인 Adobe Experience Platform 샌드박스의 이름을 지정해야 합니다. 헤더 필드 x-sandbox-name​은 --module7sandbox--이어야 합니다.

그런 다음 파란색 보내기 단추를 클릭하여 세그먼트를 만들고 그 결과를 봅니다.

세그먼테이션

이 요청의 응답은 데이터 세트 파일을 가리킵니다.

{
    "60080ace62c49a19490c5870": {
        "name": "Demo System - Event Dataset for Website (Global v1.1)",
        "description": "Demo System - Event Dataset for Website (Global v1.1)",
        "enableErrorDiagnostics": false,
        "tags": {
            "adobe/siphon/partition/definition": [
                "day(timestamp, _ACP_DATE)",
                "identity(_ACP_BATCHID)"
            ],
            "aep/siphon/partitions": [
                "_ACP_DATE",
                "_ACP_BATCHID"
            ],
            "acp_granular_plugin_validation_flags": [
                "identity:enabled",
                "profile:enabled"
            ],
            "adobe/siphon/buffered-promotion-recency": [
                "live"
            ],
            "adobe/siphon/use-buffered-promotion": [
                "true"
            ],
            "adobe/pqs/table": [
                "demo_system_event_dataset_for_website_global_v1_1"
            ],
            "aep/siphon/expire-snapshot-timestamp": [
                "1611141272703"
            ],
            "acp_granular_validation_flags": [
                "requiredFieldCheck:enabled"
            ],
            "acp_validationContext": [
                "enabled"
            ],
            "adobe/siphon/table/format": [
                "iceberg"
            ],
            "unifiedProfile": [
                "enabled:true",
                "enabledAt:2021-01-20 10:49:51"
            ],
            "unifiedIdentity": [
                "enabled:true"
            ]
        },
        "namespace": "ACP",
        "state": "DRAFT",
        "imsOrg": "907075E95BF479EC0A495C73@AdobeOrg",
        "sandboxId": "62cd9f38-8529-4b05-8d9f-388529db0540",
        "lastBatchId": "01EWFQZ15XRNNB1FPKPW5ETRVP",
        "lastBatchStatus": "success",
        "lastSuccessfulBatch": "01EWFQZ15XRNNB1FPKPW5ETRVP",
        "version": "1.0.6",
        "created": 1611139790698,
        "updated": 1611149266031,
        "createdClient": "750e24ee855b4ac18ccc4f4817f96ee1",
        "createdUser": "3A260B485E909A170A495E76@techacct.adobe.com",
        "updatedUser": "acp_foundation_dataTracker@AdobeID",
        "viewId": "60080ace62c49a19490c5871",
        "fileDescription": {
            "persisted": true,
            "containerFormat": "parquet",
            "format": "parquet"
        },
        "files": "@/dataSets/60080ace62c49a19490c5870/views/60080ace62c49a19490c5871/files",
        "schemaMetadata": {
            "delta": [],
            "gdpr": []
        },
        "schemaRef": {
            "id": "https://ns.adobe.com/experienceplatform/schemas/d9b88a044ad96154637965a97ed63c7b20bdf2ab3b4f642e",
            "contentType": "application/vnd.adobe.xed-full+json;version=1"
        }
    }
}
노트

쿼리 서비스 API와의 상호 작용을 지원하기 위해 추가 연습이 곧 추가됩니다.

다음 단계:요약 및 혜택

모듈 7로 돌아가기

모든 모듈로 돌아가기

이 페이지에서는