이 문서에서는 Query Service에 대해 자주 묻는 질문에 대한 답변을 제공하며 Query Service를 사용할 때 자주 표시되는 오류 코드 목록을 제공합니다. Adobe Experience Platform의 다른 서비스와 관련된 질문 및 문제 해결은 다음을 참조하십시오. Experience Platform 문제 해결 안내서.
FAQ에 대한 다음 목록은 다음 카테고리로 분류됩니다.
이 섹션에는 성능, 제한 및 프로세스에 대한 정보가 포함되어 있습니다.
+++아니요. 현재 편집기에서 자동 완성 기능을 끄면 안 됩니다.
+++
+++답변 한 가지 잠재적인 원인은 자동 완성 기능입니다. 이 기능은 쿼리 편집 중에 간혹 편집기의 속도가 느려질 수 있는 특정 메타데이터 명령을 처리합니다.
+++
+++답변 예, 를 사용하여 모든 Adobe API 서비스를 시각화하고 상호 작용할 수 있습니다 Postman (무료 타사 애플리케이션). 보기 Postman 설정 안내서 Adobe Developer 콘솔에서 프로젝트를 설정하고 여기에 사용하는 데 필요한 모든 자격 증명을 획득하는 방법에 대한 단계별 지침입니다. Postman. 에 대한 공식 설명서를 참조하십시오. 시작, 실행 및 공유에 대한 지침 Postman 컬렉션.
+++
+++답변 예, Query Service는 명시적 제한이 외부에서 지정되지 않는 한 내부적으로 50,000개 행 제한을 적용합니다. 다음 사항에 대한 지침을 참조하십시오 대화형 쿼리 실행 자세한 내용
+++
+++답변 일괄 처리 쿼리에서 데이터 집합 내의 행을 업데이트할 수 없습니다.
+++
+++아니요. 데이터 크기에는 제한이 없지만 대화형 세션에서 10분의 쿼리 시간 제한 제한이 있습니다. 쿼리가 배치 CTAS로 실행되면 10분 시간 제한을 적용할 수 없습니다. 다음 사항에 대한 지침을 참조하십시오 대화형 쿼리 실행 자세한 내용
+++
SELECT * FROM customers LIMIT 0;
+++아니요. 쿼리 서비스에는 동시 쿼리가 서비스 성능에 큰 영향을 주지 않도록 하는 자동 크기 조정 기능이 있습니다.
+++
+++답변: 열 이름으로 사용할 수 없는 특정 예약 키워드가 있습니다. ORDER
, GROUP BY
, WHERE
, DISTINCT
. 이러한 키워드를 사용하려면 이러한 열을 이스케이프 처리해야 합니다.
+++
에 대한 자세한 내용은 설명서 를 참조하십시오 중첩 데이터 구조를 사용한 작업 방법 쿼리 편집기 또는 타사 클라이언트 사용.
+++답변 배열이 포함된 데이터 세트에 대한 쿼리 성능을 향상하려면 다음을 수행해야 합니다 어레이 분해 로서의 CTAS 쿼리 런타임 시 검색한 후 처리 시간을 향상시킬 수 있는 기회를 확인하십시오.
+++
처리하는 동안 쿼리가 중단되는 이유는 다양할 수 있습니다. 정확한 원인을 규명하려면 사례별로 심층적인 분석이 필요합니다. Adobe 고객 지원에 문의하십시오 이 프로세스에 참여하도록
Adobe 고객 지원 전화 번호의 전체 목록 Adobe 도움말 페이지에서 사용할 수 있습니다. 또는 다음 단계를 완료하여 도움말을 온라인으로 찾을 수 있습니다.
다음을 포함하는 드롭다운 배너가 나타납니다 도움말 및 지원 섹션을 참조하십시오. 선택 문의 Adobe 고객 지원 가상 도우미를 열려면 또는 엔터프라이즈 지원 대규모 조직을 위한 전담 도움말
자세한 내용은 익명 블록 설명서 자세한 내용
+++Answer Yes, 준비된 문을 사용하여 쿼리를 템플릿을 설정할 수 있습니다. 준비된 문은 성능을 최적화하고 쿼리를 반복적으로 다시 구문 분석하지 않도록 할 수 있습니다. 자세한 내용은 준비된 명세서 문서 자세한 내용
+++
여러 쿼리를 검색하려면 GET 명령을 사용합니다. API를 호출하는 방법에 대한 자세한 내용은 샘플 API 호출 설명서.
응답에서 조사할 쿼리를 식별하고 이 응답을 사용하여 다른 GET 요청을 만듭니다 id
값. 전체 지침은 id 설명서로 쿼리 검색.
성공적인 응답은 HTTP 상태 200을 반환하고 를 포함합니다 errors
배열입니다. 간결성을 위해 응답이 줄었습니다.
{
"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",
}
다음 Query Service API 참조 설명서 사용 가능한 모든 끝점에 대한 자세한 정보를 제공합니다.
다음 예제에서는 CTAS 구문 및 구조체 데이터 형식을 사용하는 방법을 보여 줍니다.
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는 현재 프로필 데이터만 표시합니다.
WHERE
절을 클릭하여 일부 데이터를 볼 수 있습니다.다음과 같은 작은 쿼리를 사용하여 데이터 집합에 데이터가 포함되어 있는지 확인할 수도 있습니다.
SELECT count(1) FROM myTableName
+++답변 이 기능은 현재 진행 중입니다. 자세한 내용은 릴리스 노트 기능이 릴리스될 준비가 되면 플랫폼 UI 대화 상자를 통해 제공됩니다.
+++
+++Answer Query Service에서는 SQL 기능을 확장하기 위한 몇 가지 기본 제공 SQL 도우미 함수를 제공합니다. 문서의 전체 목록을 보려면 문서를 참조하십시오 쿼리 서비스에서 지원하는 SQL 함수.
+++
+++모든 오픈 소스는 아니지만 아직 답하십시오 Spark SQL 데이터 레이크 데이터에 대한 기능이 테스트되었습니다. 테스트 및 확인 후 지원되는 목록에 추가됩니다. 자세한 내용은 지원되는 목록 Spark SQL 함수 를 눌러 특정 함수를 확인합니다.
+++
+++답변 데이터 보안 고려 사항으로 인해 UDF에 대한 사용자 정의 정의가 허용되지 않습니다.
+++
수행 방법에 대한 지침도 설명서에서 확인해야 합니다 UI에서 예약된 쿼리 및 API.
다음은 를 사용할 때 예약된 쿼리에 대한 고려 사항 목록입니다 Query Editor. 에는 적용되지 않습니다 Query Service API:
이미 생성, 저장 및 실행된 쿼리에 예약만 추가할 수 있습니다.
사용자 사용할 수 없음 매개 변수가 있는 쿼리에 일정을 추가합니다.
예약된 쿼리 사용할 수 없음 익명 블록을 포함합니다.
예약만 수행할 수 있습니다 하나 UI를 사용하여 쿼리 템플릿. 쿼리 템플릿에 예약을 더 추가하려면 API를 사용해야 합니다. API를 사용하여 이미 일정을 추가한 경우 UI를 사용하여 추가 일정을 추가할 수 없습니다.
+++세션 제한에 도달했습니다."는 조직에 허용된 최대 쿼리 서비스 세션 수에 도달했음을 의미합니다. 조직의 Adobe Experience Platform 관리자에게 문의하십시오.
+++
+++질의 서비스가 쿼리 내역을 삭제하지 않습니다. 즉, 삭제된 데이터 집합을 참조하는 모든 쿼리는 "유효한 데이터 집합 없음"을 결과적으로 반환합니다.
+++
SELECT * FROM <table> WHERE 1=0
예를 들어 임시 테이블을 만들 수 있습니다.
CREATE temp TABLE temp_dataset AS
SELECT *
FROM actual_dataset
WHERE 1 = 0;
그런 다음 임시 테이블을 다음과 같이 사용할 수 있습니다.
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;
2021-12-22T19:52:05Z
Query Service는 지정된 타임스탬프를 UTC 형식으로 변환하기 위한 기본 제공 SQL 함수를 지원합니다. 둘 다 to_utc_timestamp()
그리고 from_utc_timestamp()
메서드는 두 가지 매개 변수를 사용합니다. timestamp 및 timezone.
매개 변수 | 설명 |
---|---|
타임스탬프 | 타임스탬프는 UTC 형식 또는 간단한 형식으로 쓸 수 있습니다 {year-month-day} 형식 지정 시간을 제공하지 않으면 기본값은 지정된 날의 아침에 자정입니다. |
표준 시간대 | 시간대는 {continent/city}) 형식 지정 이 코드에 있는 대로 인식된 시간대 코드 중 하나여야 합니다. 공용 도메인 TZ 데이터베이스. |
다음 to_utc_timestamp()
메서드는 지정된 매개 변수를 해석하고 변환합니다 로컬 시간대의 타임스탬프로 UTC 형식입니다. 예를 들어, 서울의 시간대는 대한민국 UTC/GMT +9시간입니다. 날짜 전용 타임스탬프를 제공하여 메서드는 오전 자정 기본값을 사용합니다. 타임스탬프 및 시간대는 해당 지역의 시간에서 로컬 지역의 UTC 타임스탬프로 변환됩니다.
SELECT to_utc_timestamp('2021-08-31', 'Asia/Seoul');
쿼리가 사용자의 현지 시간에 타임스탬프를 반환합니다. 이 경우 서울 전날인 3시 3분이 9시간 앞입니다.
2021-08-30 15:00:00
다른 예로, 주어진 타임스탬프가 2021-07-14 12:40:00.0
대상 Asia/Seoul
시간대, 반환된 UTC 타임스탬프는 2021-07-14 03:40:00.0
Query Service UI에 제공된 콘솔 출력은 사람이 읽을 수 있는 형식입니다.
8/30/2021, 3:00 PM
다음 from_utc_timestamp()
메서드는 지정된 매개 변수를 해석합니다 로컬 시간대의 타임스탬프에서 및 은 UTC 형식으로 원하는 영역의 상응하는 타임스탬프를 제공합니다. 아래 예에서 시간은 사용자의 로컬 시간대에서 오후 2시 40분입니다. 변수로 전달된 Seoul 시간대 는 로컬 시간보다 9시간 앞서 있습니다.
SELECT from_utc_timestamp('2021-08-31 14:40:00.0', 'Asia/Seoul');
쿼리는 매개 변수로 전달된 시간대의 UTC 형식 타임스탬프를 반환합니다. 결과는 쿼리를 실행한 시간대보다 9시간 빠릅니다.
8/31/2021, 11:40 PM
날짜 문자열 반드시 형식을 사용해야 합니다. yyyy-mm-ddTHH24:MM:SS
.
타임스탬프 필터 사용의 예는 다음과 같습니다.
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
연산자를 사용하여 타임스탬프를 변환하려면 날짜를 모두 포함해야 합니다 및 시간예를 들어, 아래와 같이 시간 구성 요소가 없으면 오류가 발생합니다.
SELECT * FROM ABC
WHERE timestamp = CAST('07-29-2021' AS timestamp)
의 올바른 사용 CAST
연산자는 다음과 같습니다.
SELECT * FROM ABC
WHERE timestamp = CAST('07-29-2021 00:00:00' AS timestamp)
+++답변 쿼리 서비스를 열 형식 저장소 기존 행 기반 스토어 시스템 대신
+++
NOT IN
내 SQL 쿼리에서?NOT IN
연산자는 다른 테이블이나 SQL 문에서 찾을 수 없는 행을 검색하는 데 종종 사용됩니다. 이 연산자는 성능 속도를 저하할 수 있으며 비교 중인 열이 수락되면 예기치 않은 결과를 반환할 수 있습니다 NOT NULL
또는 레코드 수가 많습니다.를 사용하는 대신 NOT IN
, 다음 중 하나를 사용할 수 있습니다. NOT EXISTS
또는 LEFT OUTER JOIN
.
예를 들어 다음 테이블을 생성한 경우
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
다음 쿼리를 사용하여 연산자 사용:
SELECT ID FROM T1
WHERE NOT EXISTS
(SELECT ID FROM T2 WHERE T1.ID = T2.ID)
또는, LEFT OUTER JOIN
연산자인 경우 NOT IN
다음 쿼리를 사용하여 연산자 사용:
SELECT T1.ID FROM T1
LEFT OUTER JOIN T2 ON T1.ID = T2.ID
WHERE T2.ID IS NULL
test_table_001
.+++아니요. 이는 Query Service를 포함하여 모든 Adobe 서비스에 적용되는 Experience Platform 간에 의도적인 제한입니다. 밑줄이 두 개인 이름은 스키마와 데이터 세트 이름으로 사용할 수 있지만 데이터 집합에 대한 테이블 이름은 밑줄이 하나만 포함될 수 있습니다.
+++
+++응답 일괄 처리 쿼리가 백 엔드 작업으로 실행되므로 쿼리 동시성 제한은 없습니다. 그러나 쿼리 시간 제한 제한은 24시간으로 설정됩니다.
+++
+++답변 쿼리 활동 및 상태를 확인하는 모니터링 및 경고 기능이 있습니다. 자세한 내용은 Query Service 감사 로그 통합 그리고 쿼리 로그 문서 를 참조하십시오.
+++
+++답변 현재 Adobe에서는 이러한 방식으로 롤백 또는 업데이트를 지원하지 않습니다.
+++
+++응답 쿼리 서비스는 "모두 또는 없음" 솔루션입니다. 부분 액세스를 제공할 수 없습니다.
+++
+++예. 읽기 전용 액세스 권한이 있는 데이터 세트에 대한 쿼리를 제한할 수 있습니다.
+++
+++예, SSL 모드가 지원됩니다. 자세한 내용은 SSL 모드 설명서 사용 가능한 다양한 SSL 모드 및 보호 수준을 분류하기 위한 .
+++
+++예. 전송 중인 데이터는 항상 HTTPS를 준수합니다. 현재 지원되는 버전은 TLS1.2입니다.
+++
+++예, 포트 80에서 연결된 경우 여전히 SSL을 사용합니다. 포트 5432를 사용할 수도 있습니다.
+++
+++예, 구성된 경우 속성 기반 액세스 제어가 적용됩니다. 자세한 내용은 속성 기반 액세스 제어 개요 추가 정보.
+++
+++아니요, Query Service는 "INSERT OVERWRITE INTO" 명령을 지원하지 않습니다.
+++
이 섹션에서는 데이터 및 제한 내보내기에 대한 정보를 제공합니다.
PSQL 클라이언트를 사용할 때 쿼리 결과를 저장하는 방법에는 두 가지가 있습니다. 를 사용할 수 있습니다 COPY TO
다음 형식을 사용하여 명령문을 만들거나 만듭니다.
SELECT column1, column2
FROM <table_name>
\g <table_name>.out
의 사용에 대한 지침 COPY TO
명령 는 SQL 구문 참조 설명서에서 찾을 수 있습니다.
+++아니요. 현재 수집된 데이터를 추출할 수 있는 기능이 없습니다.
+++
SELECT * FROM prod_table LIMIT 1;
다음 형식으로 작성해야 합니다.
SELECT * FROM prod_table
WHERE
timestamp >= to_timestamp('2022-07-22')
and timestamp < to_timestamp('2022-07-23');
이 섹션에는 PSQL 및 Power BI과 같은 타사 도구 사용에 대한 정보가 포함되어 있습니다.
+++예. 여러 타사 데스크탑 클라이언트를 Query Service에 연결할 수 있습니다. 다음 문서를 참조하십시오. 사용 가능한 클라이언트 및 Query Service에 연결하는 방법에 대한 전체 세부 정보.
+++
+++예, 만료되지 않은 자격 증명을 1회 설정하여 타사 데스크탑 클라이언트를 Query Service에 연결할 수 있습니다. 만료되지 않은 자격 증명은 인증된 사용자가 생성하여 로컬 시스템에 자동으로 다운로드되는 JSON 파일에서 수신할 수 있습니다. 전체 만료되지 않은 자격 증명을 만들고 다운로드하는 방법에 대한 지침 는 설명서에서 찾을 수 있습니다.
+++
technicalAccountID
그리고 credential
구성 JSON 파일에서 가져옵니다. 암호 값은 다음 형식을 사용합니다. {{technicalAccountId}:{credential}}
.방법에 대한 자세한 내용은 설명서 를 참조하십시오 자격 증명을 사용하여 외부 클라이언트에 연결.
+++PSQL 또는 Postgres 클라이언트 규격을 Query Service 편집기에 연결할 수 있습니다. 다음 문서를 참조하십시오. 클라이언트를 쿼리 서비스에 연결 사용 가능한 지침 목록
+++
+++예, Power BI을 Query Service에 연결할 수 있습니다. 다음 문서를 참조하십시오. Power BI 데스크탑 앱을 Query Service에 연결하는 지침.
+++
대시보드에 대한 응답 시간을 개선하려면 Query Service와 BI 도구 간에 Business Intelligence(BI) 서버를 캐싱 레이어로 구현해야 합니다. 일반적으로 대부분의 BI 도구에는 서버를 위한 추가 서비스가 있습니다.
캐시 서버 계층을 추가하는 목적은 쿼리 서비스에서 데이터를 캐시하고 이를 대시보드에 활용하여 응답 속도를 높이는 것입니다. 이는 실행되는 쿼리의 결과가 매일 BI 서버에 캐시되므로 가능합니다. 그런 다음 캐싱 서버는 동일한 쿼리를 가진 모든 사용자에게 이러한 결과를 제공하여 지연을 줄입니다. 이 설정에 대한 자세한 내용은 사용 중인 유틸리티 또는 타사 도구의 설명서를 참조하십시오.
+++아니요, pgAdmin 연결은 지원되지 않습니다. A 사용 가능한 타사 클라이언트 목록 및 Query Service에 연결하는 방법에 대한 지침 는 설명서에서 찾을 수 있습니다.
+++
다음 표에서는 PSQL 오류 코드 및 가능한 원인을 제공합니다.
오류 코드 | 연결 상태 | 설명 | 가능한 원인 |
---|---|---|---|
08P01 | 해당 없음 | 지원되지 않는 메시지 유형 | 지원되지 않는 메시지 유형 |
28P01 | 시작 - 인증 | 잘못된 암호 | 잘못된 인증 토큰 |
28000 | 시작 - 인증 | 잘못된 인증 유형 | 권한 부여 형식이 잘못되었습니다. 반드시 AuthenticationCleartextPassword . |
42P12 | 시작 - 인증 | 테이블을 찾을 수 없습니다. | 사용할 테이블을 찾을 수 없습니다. |
42601 | 쿼리 | 구문 오류 | 명령 또는 구문 오류가 잘못되었습니다. |
42P01 | 쿼리 | 테이블을 찾을 수 없음 | 쿼리에 지정된 테이블을 찾을 수 없습니다 |
42P07 | 쿼리 | 테이블이 존재함 | 이름이 같은 테이블이 이미 있습니다(CREATE TABLE). |
53400 | 쿼리 | LIMIT가 최대값을 초과합니다. | 사용자가 100,000보다 큰 LIMIT 절을 지정했습니다. |
53400 | 쿼리 | 문 시간 초과 | 제출된 라이브 명령문은 최대 10분 이상 걸렸습니다 |
58000 | 쿼리 | 시스템 오류 | 내부 시스템 장애 |
0A000 | 쿼리/명령 | 지원되지 않음 | 쿼리/명령의 기능/기능은 지원되지 않습니다 |
42501 | 테이블 쿼리 삭제 | 쿼리 서비스에서 만들지 않은 테이블 삭제 | 삭제되는 테이블이 CREATE TABLE statement |
42501 | 테이블 쿼리 삭제 | 인증된 사용자가 만들지 않은 테이블 | 삭제되는 테이블은 현재 로그인한 사용자가 만들지 않았습니다 |
42P01 | 테이블 쿼리 삭제 | 테이블을 찾을 수 없음 | 쿼리에 지정된 테이블을 찾을 수 없습니다 |
42P12 | 테이블 쿼리 삭제 | 에 대한 테이블을 찾을 수 없습니다. dbName : 확인 dbName |
현재 데이터베이스에 테이블이 없습니다. |
history_meta()
메서드는 데이터 집합에서 스냅샷에 액세스하는 데 사용됩니다. 이전에는 ADLS(Azure Data Lake Storage)의 빈 데이터 집합에 대해 쿼리를 실행하려는 경우 데이터 세트가 없다는 58000 오류 코드가 표시됩니다. 이전 시스템 오류의 예가 아래에 표시됩니다.ErrorCode: 58000 Internal System Error [Invalid table your_table_name. historyMeta can be used on datalake tables only.]
쿼리에 대한 반환 값이 없으므로 이 오류가 발생했습니다. 이제 이 동작은 다음 메시지를 반환하도록 수정되었습니다.
Query complete in {timeframe}. 0 rows returned.
다음 표는 HTTP 오류 코드 및 가능한 원인을 제공합니다.
HTTP 상태 코드 | 설명 | 가능한 원인 |
---|---|---|
400 | 잘못된 요청 | 잘못된 쿼리 또는 잘못된 쿼리 |
401 | 인증 실패 | 잘못된 인증 토큰 |
500 | 내부 서버 오류 | 내부 시스템 장애 |