자주 묻는 질문

이 문서에서는 Query Service에 대해 자주 묻는 질문에 대한 답변과 Query Service를 사용할 때 일반적으로 표시되는 오류 코드 목록을 제공합니다. Adobe Experience Platform의 다른 서비스와 관련된 질문 및 문제 해결은 Experience Platform 문제 해결 가이드를 참조하십시오.

FAQ에 대한 다음 답변 목록은 다음 카테고리로 구분됩니다.

일반 쿼리 서비스 질문 general

이 섹션에서는 성능, 제한 및 프로세스에 대해 설명합니다.

쿼리 서비스 편집기에서 자동 완성 기능을 끌 수 있습니까?

답변
아니. 자동 완성 기능을 끄는 것은 현재 편집기에서 지원되지 않습니다.

쿼리를 입력할 때 쿼리 편집기가 느려지는 이유는 무엇입니까?

답변
자동 완성 기능이 잠재적 원인 중 하나입니다. 이 기능은 쿼리 편집 중에 가끔 편집기의 속도를 저하시킬 수 있는 특정 메타데이터 명령을 처리합니다.

쿼리 서비스 API에 Postman을(를) 사용할 수 있습니까?

답변
예. Postman (무료 타사 애플리케이션)을 사용하여 모든 Adobe API 서비스를 시각화하고 상호 작용할 수 있습니다. Adobe Developer Console에서 프로젝트를 설정하고 Postman에서 사용하는 데 필요한 모든 자격 증명을 얻는 방법에 대한 단계별 지침은 Postman 설치 가이드를 참조하세요. 시작, 실행 및 공유에 대한 지침 Postman 컬렉션에 대해서는 공식 설명서를 참조하세요.

UI를 통해 쿼리에서 반환되는 최대 행 수에 제한이 있습니까?

답변
예. 명시적인 제한이 외부에서 지정되지 않는 한 쿼리 서비스는 내부적으로 50,000개의 행 제한을 적용합니다. 자세한 내용은 대화형 쿼리 실행에 대한 지침을 참조하십시오.

쿼리를 사용하여 행을 업데이트할 수 있습니까?

답변
일괄 처리 쿼리에서는 데이터 세트 내의 행 업데이트가 지원되지 않습니다.

쿼리의 결과 출력에 대한 데이터 크기 제한이 있습니까?

답변
아니. 데이터 크기에는 제한이 없지만 대화형 세션에서 10분의 쿼리 시간 제한이 있습니다. 쿼리가 배치 CTAS로 실행되는 경우 10분 시간 초과는 적용되지 않습니다. 자세한 내용은 대화형 쿼리 실행에 대한 지침을 참조하십시오.

SELECT 쿼리의 출력 행 수에 대한 제한을 무시하려면 어떻게 해야 합니까?

답변

출력 행 제한을 무시하려면 쿼리에 "LIMIT 0"을 적용합니다. 예:

code language-sql
SELECT * FROM customers LIMIT 0;

10분 후에 쿼리가 시간 초과되는 것을 방지하려면 어떻게 해야 합니까?

답변

쿼리 제한 시간이 초과된 경우 다음 솔루션 중 하나 이상을 사용하는 것이 좋습니다.

  • 쿼리를 CTAS 쿼리로 변환하고 실행을 예약합니다. 실행 예약은 UI를 통해 🔗하거나 API를 통해 수행할 수 있습니다.
  • 추가 필터 조건을 적용하여 더 작은 데이터 청크에서 쿼리를 실행하십시오.
  • 자세한 내용을 수집하려면 EXPLAIN 명령을 실행하십시오.
  • 데이터 세트 내의 데이터 통계를 검토합니다.
  • 쿼리를 간소화된 양식으로 변환하고 준비된 문을 사용하여 다시 실행하십시오.

여러 쿼리가 동시에 실행되는 경우 쿼리 서비스 성능에 문제가 있습니까?

답변
아니. 쿼리 서비스에는 동시 쿼리가 서비스 성능에 큰 영향을 주지 않도록 하는 자동 크기 조정 기능이 있습니다.

예약된 키워드를 열 이름으로 사용할 수 있습니까?

답변
ORDER, GROUP BY, WHERE, DISTINCT 등의 열 이름으로 사용할 수 없는 특정 예약된 키워드가 있습니다. 이러한 키워드를 사용하려면 이 열을 이스케이프 처리해야 합니다.

계층 구조 데이터 세트에서 열 이름을 찾으려면 어떻게 해야 합니까?

답변

다음 단계에서는 UI를 통해 중첩된 모든 필드와 열을 병합된 형식으로 포함하여 데이터 세트의 표 형식으로 보기를 표시하는 방법을 설명합니다.

  • Experience Platform에 로그인한 후 UI의 왼쪽 탐색에서 데이터 세트 ​를 선택하여 데이터 세트 대시보드로 이동합니다.
  • 데이터 세트 찾아보기 탭이 열립니다. 검색 창을 사용하여 사용 가능한 옵션을 구체화할 수 있습니다. 표시된 목록에서 데이터 세트를 선택합니다.

검색 창과 데이터 세트가 강조 표시된 Platform UI의 데이터 세트 대시보드.

  • 데이터 세트 활동 화면이 나타납니다. 데이터 집합 미리 보기 ​를 선택하여 XDM 스키마의 대화 상자를 열고 선택한 데이터 집합에서 병합된 데이터를 테이블 형식으로 표시합니다. 자세한 내용은 데이터 집합 문서 미리 보기에서 확인할 수 있습니다.

미리 보기 데이터 세트가 강조 표시된 데이터 세트 대시보드의 데이터 세트 활동 탭입니다.

  • 스키마에서 필드를 선택하여 해당 내용을 병합된 열에 표시합니다. 열 이름은 페이지 오른쪽의 콘텐츠 위에 표시됩니다. 이 데이터 세트를 쿼리하는 데 사용할 이 이름을 복사해야 합니다.

병합된 데이터의 XDM 스키마 및 테이블 형식 보기입니다. 중첩된 데이터 집합의 열 이름이 UI에서 강조 표시됩니다.

쿼리 편집기 또는 타사 클라이언트를 사용하여 중첩된 데이터 구조를 사용하는 방법에 대한 전체 지침은 설명서를 참조하세요.

배열이 포함된 데이터 세트에서 쿼리 속도를 높이려면 어떻게 해야 합니까?

답변
배열이 포함된 데이터 세트에서 쿼리의 성능을 향상시키려면 런타임에 배열을 분해한 다음 CTAS 쿼리(으)로 탐색하여 처리 시간을 향상시킬 수 있습니다.

적은 수의 행에만 여러 시간 후에도 CTAS 쿼리가 계속 처리되는 이유는 무엇입니까?

답변

매우 작은 데이터 세트에서 쿼리가 오래 걸린 경우 고객 지원 센터에 문의하십시오.

처리하는 동안 쿼리가 중단되는 원인은 여러 가지가 있을 수 있습니다. 정확한 원인 파악을 위해서는 사례별로 심층적인 분석이 필요하다. Adobe 고객 지원 센터에 문의하여 이 프로세스를 진행하십시오.

Adobe 고객 지원 센터에 문의하려면 어떻게 해야 합니까? customer-support

답변

Adobe 고객 지원 전화 번호 전체 목록은 Adobe 도움말 페이지에서 사용할 수 있습니다. 또는 다음 단계를 완료하여 온라인으로 도움말을 찾을 수 있습니다.

  • 웹 브라우저에서 https://www.adobe.com/(으)로 이동합니다.
  • 위쪽 탐색 모음 오른쪽에서 로그인 ​을 선택합니다.

Adobe 웹 사이트에서 로그인이 강조 표시되어 있습니다.

  • Adobe 라이선스에 등록된 Adobe ID 및 암호를 사용합니다.
  • 위쪽 탐색 모음에서 도움말 및 지원 ​을 선택하십시오.

도움말 및 지원, 엔터프라이즈 지원 및 문의하기 등이 강조 표시된 상단 탐색 모음 드롭다운 메뉴.

도움말 및 지원 섹션이 포함된 드롭다운 배너가 나타납니다. Adobe 고객 지원 가상 도우미를 열려면 문의하기 ​를 선택하고, 대규모 조직을 위한 전용 도움말은 엔터프라이즈 지원 ​을 선택하십시오.

이전 작업이 성공적으로 완료되지 않은 경우 후속 작업을 실행하지 않고 순차적 일련의 작업을 구현하려면 어떻게 해야 합니까?

답변

익명 블록 기능을 사용하면 순서대로 실행되는 하나 이상의 SQL 문을 연결할 수 있습니다. 또한 예외 처리 옵션을 사용할 수 있습니다.

자세한 내용은 익명 블록 설명서를 참조하세요.

쿼리 서비스에서 사용자 지정 속성을 구현하려면 어떻게 해야 합니까?

답변

사용자 지정 속성을 구현하는 방법에는 두 가지가 있습니다.

  1. 기존 Adobe 정의 함수의 조합을 사용하여 사용 사례 요구 사항이 충족되는지 확인하십시오.
  2. 이전 제안이 사용 사례를 충족하지 않으면 창 함수를 조합하여 사용해야 합니다. 창 함수는 시퀀스의 모든 이벤트를 봅니다. 또한 내역 데이터를 검토할 수 있으며 모든 조합으로 사용할 수 있습니다.

쿼리를 쉽게 다시 사용할 수 있도록 템플릿화할 수 있습니까?

답변
예. 준비된 문을 사용하여 쿼리를 템플릿화할 수 있습니다. 준비된 문은 성능을 최적화하고 쿼리를 반복적으로 다시 구문 분석하지 않도록 할 수 있습니다. 자세한 내용은 준비된 문 설명서를 참조하세요.

쿼리에 대한 오류 로그를 검색하려면 어떻게 합니까? error-logs

답변

특정 쿼리에 대한 오류 로그를 검색하려면 먼저 쿼리 서비스 API를 사용하여 쿼리 로그 세부 정보를 가져와야 합니다. HTTP 응답에는 쿼리 오류를 조사하는 데 필요한 쿼리 ID가 포함되어 있습니다.

여러 쿼리를 검색하려면 GET 명령을 사용하십시오. API를 호출하는 방법에 대한 정보는 샘플 API 호출 설명서를 참조하십시오.

응답에서 조사할 쿼리를 식별하고 해당 id 값을 사용하여 다른 GET 요청을 만듭니다. 전체 지침은 ID로 쿼리 검색에서 찾을 수 있습니다.

성공적인 응답은 HTTP 상태 200을 반환하고 errors 배열을 포함합니다. 간결성을 위해 응답이 단축되었습니다.

code language-json
{
    "isInsertInto": false,
    "request": {
                "dbName": "prod:all",
                "sql": "SELECT *\nFROM\n  accounts\nLIMIT 10\n"
            },
    "clientId": "8c2455819a624534bb665c43c3759877",
    "state": "SUCCESS",
    "rowCount": 0,
    "errors": [{
      'code': '58000',
      'message': 'Batch query execution gets : [failed reason ErrorCode: 58000 Batch query execution gets : [Analysis error encountered. Reason: [sessionId: f055dc73-1fbd-4c9c-8645-efa609da0a7b Function [varchar] not defined.]]]',
      'errorType': 'USER_ERROR'
      }],
    "isCTAS": false,
    "version": 1,
    "id": "343388b0-e0dd-4227-a75b-7fc945ef408a",
}

사용 가능한 모든 끝점에 대한 자세한 내용은 쿼리 서비스 API 참조 설명서를 참조하세요.

"스키마 유효성 검사 오류"는 무엇을 의미합니까?

답변

"스키마 유효성 검사 오류" 메시지는 시스템이 스키마 내에서 필드를 찾을 수 없음을 의미합니다. Query Service에서 데이터 자산 구성에 대한 모범 사례 문서 다음에 Select 설명서로 테이블 만들기를 읽어야 합니다.

다음 예에서는 CTAS 구문 및 구조 데이터 형식의 사용을 보여 줍니다.

code language-sql
CREATE TABLE table_name WITH (SCHEMA='schema_name')

AS SELECT '1' as _id,

 STRUCT

  ('2021-02-17T15:39:29.0Z' AS taskActualCompletionDate,

    '2020-09-09T21:21:16.0Z' AS taskActualStartDate,

    'Consulting' AS taskdescription,

    '5f6527c10011e09b89666c52d9a8c564' AS taskguide,

    'Stakeholder Consulting Engagement' AS taskname,

    '2020-09-09T15:00:00.0Z' AS taskPlannedStartDate,

    '2021-02-15T11:00:00.0Z' AS taskPlannedCompletionDate

  ) AS _workfront ;

매일 시스템에 들어오는 새 데이터를 빠르게 처리하려면 어떻게 해야 합니까?

답변
SNAPSHOT 절을 사용하여 스냅숏 ID를 기반으로 테이블의 데이터를 증분 읽는 데 사용할 수 있습니다. 마지막 로드 실행 이후 만들어지거나 수정된 데이터 세트의 정보만 처리하는 증분 로드 디자인 패턴에 사용하기에 이상적입니다. 그 결과, 처리 효율을 증가시키고 스트리밍 및 배치 데이터 처리와 함께 사용할 수 있다.

프로필 UI에 표시된 숫자와 프로필 내보내기 데이터 세트에서 계산된 숫자 간에 차이가 있는 이유는 무엇입니까?

답변

프로필 대시보드에 표시된 숫자는 마지막 스냅샷을 기준으로 정확합니다. 프로필 내보내기 테이블에서 생성된 숫자는 내보내기 쿼리에 전적으로 의존합니다. 따라서 특정 대상에 적합한 프로필 수를 쿼리하는 것은 이러한 불일치의 일반적인 원인입니다.

note note
NOTE
쿼리에는 내역 데이터가 포함되지만 UI에는 현재 프로필 데이터만 표시됩니다.

내 쿼리가 빈 하위 집합을 반환하는 이유는 무엇이며 어떻게 해야 합니까?

답변

쿼리의 범위가 너무 좁기 때문일 수 있습니다. 일부 데이터가 표시될 때까지 WHERE 절의 섹션을 체계적으로 제거해야 합니다.

다음과 같은 작은 쿼리를 사용하여 데이터 세트에 데이터가 포함되어 있는지 확인할 수도 있습니다.

code language-sql
SELECT count(1) FROM myTableName

데이터를 샘플링할 수 있습니까?

답변
이 기능은 현재 진행 중입니다. 기능이 릴리스될 준비가 되면 릴리스 정보 및 Platform UI 대화 상자를 통해 세부 정보를 사용할 수 있습니다.

쿼리 서비스에서 지원하는 도우미 함수는 무엇입니까?

답변
Query Service는 SQL 기능을 확장하기 위한 몇 가지 기본 제공 SQL 도우미 함수를 제공합니다. 쿼리 서비스에서 지원하는 SQL 함수의 전체 목록은 문서를 참조하세요.

모든 네이티브 Spark SQL 함수가 지원됩니까, 아니면 사용자가 Adobe에서 제공한 래퍼 Spark SQL 함수로만 제한됩니까?

답변
아직 데이터 레이크 데이터에 대해 모든 오픈 소스 Spark SQL 기능을 테스트한 것은 아닙니다. 테스트 및 확인이 완료되면 지원 목록에 추가됩니다. 특정 함수를 확인하려면 지원되는 Spark SQL 함수 목록을 참조하십시오.

사용자가 다른 쿼리에서 사용할 수 있는 UDF(사용자 정의 함수)를 직접 정의할 수 있습니까?

답변
데이터 보안 고려 사항으로 인해 UDF의 사용자 정의 정의가 허용되지 않습니다.

예약된 쿼리가 실패하면 어떻게 해야 합니까?

답변

먼저 로그를 확인하여 오류의 세부 사항을 확인합니다. 로그 내에서 오류 찾기에 대한 FAQ 섹션에서 이 작업을 수행하는 방법에 대한 자세한 정보를 제공합니다.

또한 UI에서 예약된 쿼리API를 통해 수행하는 방법에 대한 지침을 보려면 설명서를 확인해야 합니다.

Query Editor을(를) 사용할 때는 이미 만들어져 저장된 쿼리에만 일정을 추가할 수 있습니다. Query Service API에는 적용되지 않습니다.

"세션 제한에 도달했습니다." 오류는 무엇을 의미합니까?

답변
"세션 제한 도달"은 조직에 허용된 최대 쿼리 서비스 세션 수에 도달했음을 의미합니다. 조직의 Adobe Experience Platform 관리자에게 문의하십시오.

쿼리 로그는 삭제된 데이터 세트와 관련된 쿼리를 어떻게 처리합니까?

답변
쿼리 서비스는 쿼리 내역을 삭제하지 않습니다. 즉, 삭제된 데이터 세트를 참조하는 모든 쿼리는 그 결과로 "유효한 데이터 세트 없음"을 반환합니다.

쿼리의 메타데이터만 가져오려면 어떻게 해야 합니까?

답변

0개의 행을 반환하는 쿼리를 실행하여 응답에서 메타데이터만 가져올 수 있습니다. 이 예제 쿼리는 지정된 테이블에 대한 메타데이터만 반환합니다.

code language-sql
SELECT * FROM <table> WHERE 1=0

CTAS(Create Table As Select) 쿼리를 구체화하지 않고 빠르게 반복하려면 어떻게 해야 합니까?

답변

사용할 쿼리를 구체화하기 전에 쿼리를 빠르게 반복하고 실험하기 위해 임시 테이블을 만들 수 있습니다. 임시 테이블을 사용하여 쿼리가 작동하는지 확인할 수도 있습니다.

예를 들어 임시 테이블을 만들 수 있습니다.

code language-sql
CREATE temp TABLE temp_dataset AS
SELECT *
FROM actual_dataset
WHERE 1 = 0;

그런 다음 임시 테이블을 다음과 같이 사용할 수 있습니다.

code language-sql
INSERT INTO temp_dataset
SELECT a._company AS _company,
a._id AS _id,
a.timestamp AS timestamp
FROM actual_dataset a
WHERE timestamp >= TO_TIMESTAMP('2021-01-21 12:00:00')
AND timestamp < TO_TIMESTAMP('2021-01-21 13:00:00')
LIMIT 100;

시간대를 UTC 타임스탬프에서 및 로 변경하려면 어떻게 합니까?

답변

Adobe Experience Platform은 데이터를 UTC(협정 세계시) 타임스탬프 형식으로 유지합니다. UTC 형식의 예는 2021-12-22T19:52:05Z입니다.

Query Service는 특정 타임스탬프를 UTC 형식으로 변환하는 기본 제공 SQL 함수를 지원합니다. to_utc_timestamp()from_utc_timestamp() 메서드는 모두 timestamp와 timezone의 두 매개 변수를 사용합니다.

table 0-row-2 1-row-2 2-row-2
매개변수 설명
타임스탬프 타임스탬프는 UTC 형식이나 간단한 {year-month-day} 형식으로 쓸 수 있습니다. 시간을 제공하지 않은 경우 기본값은 지정된 날 아침의 자정입니다.
시간대 시간대가 {continent/city}) 형식으로 작성되었습니다. 공개 도메인 TZ 데이터베이스에 있는 인식된 시간대 코드 중 하나여야 합니다.

UTC 타임스탬프로 변환

to_utc_timestamp() 메서드는 지정된 매개 변수를 해석하고 UTC 형식의 로컬 표준 시간대의 타임스탬프(으)로 변환합니다. 예를 들어, 대한민국 서울의 시간대는 UTC/GMT +9시간입니다. 날짜 전용 타임스탬프를 제공함으로써 메서드에서는 아침 자정의 기본값을 사용합니다. 타임스탬프 및 시간대는 해당 지역의 시간에서 로컬 지역의 UTC 타임스탬프로 UTC 형식으로 변환됩니다.

code language-sql
SELECT to_utc_timestamp('2021-08-31', 'Asia/Seoul');

쿼리가 사용자의 현지 시간으로 타임스탬프를 반환합니다. 이 경우 서울은 전날 오후 3시가 9시간 앞선다.

code language-none
2021-08-30 15:00:00

다른 예로, 지정된 타임스탬프가 Asia/Seoul 시간대에 대해 2021-07-14 12:40:00.0인 경우 반환된 UTC 타임스탬프는 2021-07-14 03:40:00.0입니다.

쿼리 서비스 UI에서 제공되는 콘솔 출력은 사람이 인식할 수 있는 형식입니다.

code language-none
8/30/2021, 3:00 PM

UTC 타임스탬프에서 변환

from_utc_timestamp() 메서드는 로컬 표준 시간대의 타임스탬프​ 에서 지정된 매개 변수 ​을(를) 해석하고 원하는 지역의 동등한 타임스탬프를 UTC 형식으로 제공합니다. 아래 예에서 시간은 사용자의 현지 시간대에서 오후 2시 40분입니다. 변수로 통과한 서울 시간대가 현지 시간대보다 9시간 앞선다.

code language-sql
SELECT from_utc_timestamp('2021-08-31 14:40:00.0', 'Asia/Seoul');

쿼리는 매개 변수로 전달된 시간대에 대해 타임스탬프를 UTC 형식으로 반환합니다. 결과는 쿼리를 실행한 시간대보다 9시간 빠릅니다.

code language-none
8/31/2021, 11:40 PM

시계열 데이터를 필터링하려면 어떻게 해야 합니까?

accordion
답변

시계열 데이터로 쿼리할 때는 보다 정확한 분석을 위해 가능하면 타임스탬프 필터를 사용해야 합니다.

note note
NOTE
날짜 문자열 은(는) yyyy-mm-ddTHH24:MM:SS 형식이어야 합니다.

타임스탬프 필터를 사용하는 예는 아래에서 볼 수 있습니다.

code language-sql
SELECT a._company  AS _company,
       a._id       AS _id,
       a.timestamp AS timestamp
FROM   dataset a
WHERE  timestamp >= To_timestamp('2021-01-21 12:00:00')
       AND timestamp < To_timestamp('2021-01-21 13:00:00')

CAST 연산자를 올바르게 사용하여 SQL 쿼리에서 내 타임스탬프를 변환하는 방법은 무엇입니까?

답변

CAST 연산자를 사용하여 타임스탬프를 변환할 때 날짜 과(와) 시간을 모두 포함해야 합니다.

예를 들어 아래 표시된 대로 시간 구성 요소가 없으면 오류가 발생합니다.

code language-sql
SELECT * FROM ABC
WHERE timestamp = CAST('07-29-2021' AS timestamp)

CAST 연산자의 올바른 사용법이 아래에 표시되어 있습니다.

code language-sql
SELECT * FROM ABC
WHERE timestamp = CAST('07-29-2021 00:00:00' AS timestamp)

데이터 세트에서 모든 행을 가져오려면 *와 같은 와일드카드를 사용해야 합니까?

답변
쿼리 서비스는 기존의 행 기반 스토어 시스템이 아닌 columnar-store(으)로 처리되어야 하므로 와일드카드를 사용하여 행에서 모든 데이터를 가져올 수 없습니다.

SQL 쿼리에 NOT IN을(를) 사용해야 합니까?

답변

NOT IN 연산자는 종종 다른 테이블이나 SQL 문에서 찾을 수 없는 행을 검색하는 데 사용됩니다. 이 연산자는 성능이 저하될 수 있으며 비교 중인 열이 NOT NULL을(를) 수락하거나 레코드가 많은 경우 예기치 않은 결과를 반환할 수 있습니다.

NOT IN을(를) 사용하는 대신 NOT EXISTS 또는 LEFT OUTER JOIN을(를) 사용할 수 있습니다.

예를 들어 다음 테이블을 만든 경우:

code language-sql
CREATE TABLE T1 (ID INT)
CREATE TABLE T2 (ID INT)
INSERT INTO T1 VALUES (1)
INSERT INTO T1 VALUES (2)
INSERT INTO T1 VALUES (3)
INSERT INTO T2 VALUES (1)
INSERT INTO T2 VALUES (2)

NOT EXISTS 연산자를 사용하는 경우 다음 쿼리를 사용하여 NOT IN 연산자를 사용하여 복제할 수 있습니다.

code language-sql
SELECT ID FROM T1
WHERE NOT EXISTS
(SELECT ID FROM T2 WHERE T1.ID = T2.ID)

또는 LEFT OUTER JOIN 연산자를 사용하는 경우 다음 쿼리를 사용하여 NOT IN 연산자를 사용하여 복제할 수 있습니다.

code language-sql
SELECT T1.ID FROM T1
LEFT OUTER JOIN T2 ON T1.ID = T2.ID
WHERE T2.ID IS NULL

UI에 표시되는 것과 같이 더블 밑줄 이름이 있는 CTAS 쿼리를 사용하여 데이터 세트를 만들 수 있습니까? 예: test_table_001.

답변
아니요. 이는 쿼리 서비스를 포함한 모든 Adobe 서비스에 적용되는 Experience Platform 전반에 걸친 의도적인 제한입니다. 밑줄이 두 개인 이름은 스키마 및 데이터 세트 이름으로 사용할 수 있지만 데이터 세트의 테이블 이름에는 단일 밑줄만 포함할 수 있습니다.

한 번에 몇 개의 동시 쿼리를 실행할 수 있습니까?

답변
일괄 처리 쿼리가 백 엔드 작업으로 실행되므로 쿼리 동시 실행 제한은 없습니다. 그러나 쿼리 시간 초과 제한은 24시간으로 설정됩니다.

쿼리 활동 및 상태를 볼 수 있는 활동 대시보드가 있습니까?

답변
쿼리 활동 및 상태를 확인할 수 있는 모니터링 및 경고 기능이 있습니다. 자세한 내용은 쿼리 서비스 감사 로그 통합쿼리 로그 문서를 참조하십시오.

업데이트를 롤백할 방법이 있습니까? 예를 들어, 오류가 있거나 데이터를 다시 Platform에 쓸 때 일부 계산을 다시 구성해야 하는 경우 해당 시나리오를 어떻게 처리해야 합니까?

답변
현재 당사는 이러한 방식의 롤백이나 업데이트를 지원하지 않습니다.

Adobe Experience Platform에서 쿼리를 최적화하려면 어떻게 해야 합니까?

답변

시스템은 데이터베이스가 아니기 때문에 인덱스가 없지만 데이터 저장소에 연결된 다른 최적화가 있습니다. 쿼리를 조정하는 데 다음 옵션을 사용할 수 있습니다.

  • 시계열 데이터를 기반으로 하는 시간 기반 필터.
  • 구조 데이터 유형에 대한 푸시 다운이 최적화되었습니다.
  • 어레이 및 맵 데이터 유형에 최적화된 비용 및 메모리 푸시 다운
  • 스냅샷을 사용한 증분 처리
  • 지속된 데이터 형식.

로그인을 Query Service의 특정 측면으로 제한할 수 있습니까, 아니면 "all or nothing" 솔루션입니까?

답변
쿼리 서비스는 "all or nothing" 솔루션입니다. 부분 액세스를 제공할 수 없습니다.

쿼리 서비스에서 사용할 수 있는 데이터를 제한할 수 있습니까, 아니면 단순히 전체 Adobe Experience Platform 데이터 레이크에 액세스합니까?

답변
예. 읽기 전용 액세스 권한을 가진 데이터 세트로 쿼리를 제한할 수 있습니다.

Query Service에서 액세스할 수 있는 데이터를 제한하는 다른 옵션은 무엇입니까?

답변

액세스를 제한하는 방법에는 세 가지가 있습니다. 이는 다음과 같습니다.

  • SELECT 문을 사용하고 데이터 세트에 읽기 전용 액세스 권한을 부여합니다. 또한 쿼리 관리 권한을 할당합니다.
  • SELECT/INSERT/CREATE 문을 사용하여 데이터 세트에 쓰기 액세스 권한을 부여합니다. 또한 쿼리 관리 권한을 할당합니다.
  • 위의 이전 제안과 함께 통합 계정을 사용하고 쿼리 통합 권한을 할당합니다.

Query Service에서 데이터를 반환하면 Platform에서 보호된 데이터를 반환하지 않았는지 확인하기 위해 실행할 수 있는 검사가 있습니까?

  • 쿼리 서비스는 속성 기반 액세스 제어를 지원합니다. 열/리프 수준 및/또는 구조 수준에서 데이터에 대한 액세스를 제한할 수 있습니다. 속성 기반 액세스 제어에 대한 자세한 내용은 설명서를 참조하십시오.

서드파티 클라이언트와의 연결에 대한 SSL 모드를 지정할 수 있습니까? 예를 들어 Power BI에 'verify-full'을 사용할 수 있습니까?

답변
예. SSL 모드가 지원됩니다. 사용 가능한 여러 SSL 모드와 제공 가능한 보호 수준에 대한 분류는 SSL 모드 설명서를 참조하십시오.

Power BI 클라이언트에서 쿼리 서비스로의 모든 연결에 TLS 1.2를 사용합니까?

답변
예. 전송 중인 데이터는 항상 HTTPS를 준수합니다. 현재 지원되는 버전은 TLS1.2입니다.

포트 80에서 수행된 연결이 여전히 https를 사용합니까?

답변
예, 포트 80에서 수행된 연결은 여전히 SSL을 사용합니다. 포트 5432를 사용할 수도 있습니다.

특정 연결에 대해 특정 데이터 세트 및 열에 대한 액세스를 제어할 수 있습니까? 어떻게 구성됩니까?

답변
예. 구성된 경우 속성 기반 액세스 제어가 적용됩니다. 자세한 내용은 특성 기반 액세스 제어 개요를 참조하십시오.

쿼리 서비스가 "INSERT OVERWRITE INTO" 명령을 지원합니까?

답변
아니요. 쿼리 서비스는 "INSERT OVERWRITE INTO" 명령을 지원하지 않습니다.

라이선스 사용 대시보드의 사용 데이터는 Data Distiller 계산 시간에 대해 얼마나 자주 업데이트됩니까?

답변
Data Distiller 컴퓨터 사용 시간에 대한 라이선스 사용 대시보드는 6시간마다 하루에 4번 업데이트됩니다.

Data Distiller 액세스 없이 CREATE VIEW 명령을 사용할 수 있습니까?

답변
예, Data Distiller 액세스 없이 CREATE VIEW 명령을 사용할 수 있습니다. 이 명령은 데이터의 논리적 뷰를 제공하지만 데이터 레이크에 다시 쓰지 않습니다.

DbVisualizer에서 익명 블록을 사용할 수 있습니까?

답변
예. 그러나 DbVisualizer와 같은 특정 타사 클라이언트에는 스크립트의 일부를 단일 문으로 처리해야 함을 나타내기 위해 SQL 블록 전후에 별도의 식별자가 필요할 수 있습니다. 자세한 내용은 익명 블록 설명서 또는 공식 DbVisualizer 설명서에서 확인할 수 있습니다.

데이터 내보내기 exporting-data

이 섹션에서는 데이터 및 제한 내보내기에 대해 설명합니다.

쿼리 처리 후 쿼리 서비스에서 데이터를 추출하고 결과를 CSV 파일로 저장하는 방법이 있습니까? export-csv

답변

예. 쿼리 서비스에서 데이터를 추출할 수 있으며 SQL 명령을 통해 결과를 CSV 형식으로 저장하는 옵션도 있습니다.

PSQL 클라이언트를 사용할 때 쿼리 결과를 저장하는 방법에는 두 가지가 있습니다. COPY TO 명령을 사용하거나 다음 형식을 사용하여 문을 만들 수 있습니다.

code language-sql
SELECT column1, column2
FROM <table_name>
\g <table_name>.out

COPY TO 명령 사용에 대한 지침은(는) SQL 구문 참조 설명서에서 찾을 수 있습니다.

CTAS 쿼리를 통해 수집된 최종 데이터 세트의 컨텐츠를 추출할 수 있습니까? (이러한 데이터가 테라바이트 같은 대량의 데이터라고 가정)

답변
아니. 현재 수집된 데이터를 추출하는 데 사용할 수 있는 기능이 없습니다.

Analytics 데이터 커넥터가 데이터를 반환하지 않는 이유는 무엇입니까?

답변

이 문제의 일반적인 원인은 시간 필터 없이 시계열 데이터를 쿼리하는 것입니다. 예:

code language-sql
SELECT * FROM prod_table LIMIT 1;

다음과 같이 작성되어야 합니다.

code language-sql
SELECT * FROM prod_table
WHERE
timestamp >= to_timestamp('2022-07-22')
and timestamp < to_timestamp('2022-07-23');

타사 도구 third-party-tools

이 섹션에는 PSQL 및 Power BI과 같은 타사 도구 사용에 대한 정보가 포함되어 있습니다.

쿼리 서비스를 서드파티 도구에 연결할 수 있습니까?

답변
예. 여러 타사 데스크탑 클라이언트를 쿼리 서비스에 연결할 수 있습니다. 사용 가능한 클라이언트 및 쿼리 서비스에 연결하는 방법에 대한 자세한 내용은 설명서를 참조하세요.

서드파티 도구에서 계속 사용하기 위해 쿼리 서비스를 한 번 연결하는 방법이 있습니까?

답변
예. 타사 데스크탑 클라이언트는 만료되지 않는 자격 증명으로 한 번 설정을 통해 쿼리 서비스에 연결할 수 있습니다. 만료되지 않는 자격 증명은 승인된 사용자가 생성하고 로컬 컴퓨터에 자동으로 다운로드되는 JSON 파일로 수신할 수 있습니다. 만료되지 않는 자격 증명을 만들고 다운로드하는 방법에 대한 전체 지침은(는) 설명서에서 찾을 수 있습니다.

만료되지 않는 자격 증명이 작동하지 않는 이유는 무엇입니까?

답변
만료되지 않는 자격 증명의 값은 구성 JSON 파일에서 가져온 technicalAccountIDcredential의 연결된 인수입니다. 암호 값은 {{technicalAccountId}:{credential}} 형식을 사용합니다.
자격 증명을 사용하여 외부 클라이언트에 연결하는 방법에 대한 자세한 내용은 설명서를 참조하세요.

쿼리 서비스 편집기에 연결할 수 있는 타사 SQL 편집기 종류

답변
PSQL 또는 Postgres 클라이언트 호환 타사 SQL 편집기는 쿼리 서비스 편집기에 연결할 수 있습니다. 사용 가능한 지침 목록을 보려면 클라이언트를 쿼리 서비스에 연결에 대한 설명서를 참조하십시오.

Power BI 도구를 쿼리 서비스에 연결할 수 있습니까?

답변
예. Power BI을 쿼리 서비스에 연결할 수 있습니다. Power BI 데스크톱 앱을 쿼리 서비스에 연결하는 지침에 대한 설명서를 참조하세요.

쿼리 서비스에 연결할 때 대시보드를 로드하는 데 시간이 오래 걸리는 이유는 무엇입니까?

답변

시스템이 쿼리 서비스에 연결되면 대화형 또는 일괄 처리 엔진에 연결됩니다. 이로 인해 처리된 데이터를 반영하기 위해 로드 시간이 길어질 수 있습니다.

대시보드의 응답 시간을 향상시키려면 Query Service와 BI 도구 간에 Business Intelligence(BI) 서버를 캐싱 레이어로 구현해야 합니다. 일반적으로 대부분의 BI 도구에는 서버를 위한 추가 기능이 있습니다.

캐시 서버 계층을 추가하는 목적은 쿼리 서비스의 데이터를 캐시하고 대시보드에 활용하여 응답 속도를 높이는 것입니다. 이는 실행되는 쿼리의 결과가 매일 BI 서버에서 캐시되기 때문에 가능합니다. 그런 다음 캐싱 서버는 동일한 쿼리가 있는 모든 사용자에 대해 이러한 결과를 제공하여 지연을 줄입니다. 이 설정에 대한 자세한 내용은 사용 중인 유틸리티 또는 서드파티 도구의 설명서를 참조하십시오.

pgAdmin 연결 도구를 사용하여 쿼리 서비스에 액세스할 수 있습니까?

답변
아니요. pgAdmin 연결은 지원되지 않습니다. 사용 가능한 타사 클라이언트 목록 및 쿼리 서비스에 연결하는 방법에 대한 지침은 문서에서 찾을 수 있습니다.

PostgreSQL API 오류 postgresql-api-errors

다음 표에서는 PSQL 오류 코드 및 가능한 원인을 제공합니다.

오류 코드
연결 상태
설명
가능한 원인
08P01
N/A
지원되지 않는 메시지 유형
지원되지 않는 메시지 유형
28P01
시작 - 인증
잘못된 암호
잘못된 인증 토큰
28000
시작 - 인증
잘못된 인증 유형
잘못된 인증 유형입니다. AuthenticationCleartextPassword이어야 합니다.
42P12
시작 - 인증
테이블을 찾을 수 없음
사용할 테이블을 찾을 수 없음
42601
쿼리
구문 오류
잘못된 명령 또는 구문 오류
42P01
쿼리
테이블을 찾을 수 없음
쿼리에 지정된 테이블을 찾을 수 없습니다.
42P07
쿼리
테이블이 있습니다.
이름이 같은 테이블이 이미 있습니다(CREATE TABLE).
53400
쿼리
LIMIT가 최대값을 초과합니다.
사용자가 LIMIT 절을 100,000보다 높게 지정했습니다.
53400
쿼리
문 시간 초과
제출된 라이브 진술은 최대 10분 이상 걸렸습니다.
58000
쿼리
시스템 오류
내부 시스템 오류
0A000
쿼리/명령
지원되지 않음
쿼리/명령의 기능/기능은 지원되지 않습니다
42501
테이블 삭제 쿼리
쿼리 서비스에서 만들지 않은 테이블 삭제
삭제 중인 테이블은 쿼리 서비스에서 CREATE TABLE 문을 사용하여 만들지 않았습니다.
42501
테이블 삭제 쿼리
인증된 사용자가 생성하지 않은 테이블
삭제 중인 테이블은 현재 로그인한 사용자가 만들지 않았습니다.
42P01
테이블 삭제 쿼리
테이블을 찾을 수 없음
쿼리에 지정된 테이블을 찾을 수 없습니다.
42P12
테이블 삭제 쿼리
dbName에 대한 테이블이 없습니다. dbName을(를) 확인하십시오.
현재 데이터베이스에 테이블이 없습니다.

테이블에서 history_meta() 메서드를 사용할 때 58000 오류 코드를 수신한 이유는 무엇입니까?

답변

history_meta() 메서드는 데이터 집합에서 스냅숏에 액세스하는 데 사용됩니다. 이전에는 Azure 데이터 레이크 저장소(ADLS)의 빈 데이터 세트에 대해 쿼리를 실행하려고 하면 데이터 세트가 존재하지 않는다는 58000 오류 코드가 표시되었습니다. 이전 시스템 오류의 예가 아래에 표시됩니다.

code language-shell
ErrorCode: 58000 Internal System Error [Invalid table your_table_name. historyMeta can be used on datalake tables only.]

이 오류는 쿼리에 대한 반환 값이 없기 때문에 발생했습니다. 이 동작은 이제 다음 메시지를 반환하도록 수정되었습니다.

code language-text
Query complete in {timeframe}. 0 rows returned.

REST API 오류 rest-api-errors

다음 표에서는 HTTP 오류 코드 및 가능한 원인을 제공합니다.

HTTP 상태 코드
설명
가능한 원인
400
잘못된 요청
잘못된 쿼리 또는 잘못된 쿼리
401
인증 실패
잘못된 인증 토큰
500
내부 서버 오류
내부 시스템 오류
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb