쿼리 서비스의 익명 블록
Adobe Experience Platform 쿼리 서비스는 익명 블록을 지원합니다. 익명 블록 기능을 사용하면 순서대로 실행되는 하나 이상의 SQL 문을 연결할 수 있습니다. 또한 예외 처리 옵션을 사용할 수 있습니다.
익명 블록 기능은 일련의 작업 또는 쿼리를 수행하는 효율적인 방법입니다. 블록 내의 쿼리 체인을 템플릿으로 저장하고 특정 시간 또는 간격으로 실행되도록 예약할 수 있습니다. 이러한 쿼리는 데이터를 작성하고 추가하여 새 데이터 세트를 만들 수 있으며 일반적으로 종속성이 있는 곳에서 사용됩니다.
이 표에서는 블록의 주요 섹션인 실행 및 예외 처리에 대한 분류를 제공합니다. 섹션은 BEGIN
, END
및 EXCEPTION
키워드로 정의됩니다.
BEGIN
키워드로 시작하고 END
키워드로 끝납니다. BEGIN
및 END
키워드 내에 포함된 모든 문 집합은 순서대로 실행되며 시퀀스의 이전 쿼리가 완료될 때까지 후속 쿼리가 실행되지 않도록 합니다.EXCEPTION
(으)로 시작합니다. 실행 섹션의 SQL 문이 실패할 경우 예외를 catch하고 처리하는 코드가 포함되어 있습니다. 쿼리 중 하나라도 실패하면 전체 블록이 중지됩니다.블록은 실행 가능한 문이며 따라서 다른 블록 내에 중첩될 수 있다는 점에 주목할 필요가 있다.
샘플 익명 블록 쿼리
다음 쿼리는 SQL 문 체인의 예를 보여 줍니다. 사용된 SQL 구문에 대한 자세한 내용은 쿼리 서비스의 SQL 구문 문서를 참조하십시오.
$$ BEGIN
CREATE TABLE ADLS_TABLE_A AS SELECT * FROM ADLS_TABLE_1....;
....
CREATE TABLE ADLS_TABLE_D AS SELECT * FROM ADLS_TABLE_C....;
EXCEPTION WHEN OTHER THEN SET @ret = SELECT 'ERROR';
END
$$;
아래 예에서 SET
은(는) 지정한 로컬 변수에서 SELECT
쿼리 결과를 유지합니다. 변수의 범위가 익명 블록으로 지정됩니다.
스냅숏 ID가 로컬 변수(@current_sid
)로 저장됩니다. 그런 다음 다음 쿼리에서 동일한 데이터 세트/테이블의 SNAPSHOT을 기반으로 결과를 반환하는 데 사용됩니다. 스냅숏 절에 대한 자세한 정보는 SQL 구문 설명서를 참조하세요.
$$ BEGIN
SET @current_sid = SELECT parent_id FROM (SELECT history_meta('your_table_name')) WHERE is_current = true;
CREATE temp table abcd_temp_table AS SELECT count(1) FROM your_table_name SNAPSHOT SINCE @current_sid;
END
$$;
타사 클라이언트가 있는 익명 블록 third-party-clients
특정 타사 클라이언트는 스크립트의 일부가 단일 문으로 처리되어야 함을 나타내기 위해 SQL 블록 전후에 별도의 식별자가 필요할 수 있습니다. 서드파티 클라이언트에서 쿼리 서비스를 사용할 때 오류 메시지가 표시되는 경우 SQL 블록 사용과 관련된 서드파티 클라이언트의 설명서를 참조하십시오.
예를들어, DbVisualizer 에서는 구분 기호가 줄의 유일한 텍스트여야 합니다. DbVisualizer에서 시작 식별자의 기본값은 --/
이고 끝 식별자의 기본값은 /
입니다. DbVisualizer의 익명 블록의 예는 아래에 나와 있습니다.
--/
$$ BEGIN
CREATE TABLE ADLS_TABLE_A AS SELECT * FROM ADLS_TABLE_1....;
....
CREATE TABLE ADLS_TABLE_D AS SELECT * FROM ADLS_TABLE_C....;
EXCEPTION WHEN OTHER THEN SET @ret = SELECT 'ERROR';
END
$$;
/
특히 DbVisualizer의 경우 UI에 "Execute the complete buffer as one SQL statement"에 대한 옵션도 있습니다. 자세한 내용은 DbVisualizer 설명서를 참조하십시오.
다음 단계
이제 이 문서를 읽고 익명 블록과 그 구성 방법을 명확하게 이해할 수 있습니다. 쿼리 작성에 대한 자세한 내용은 쿼리 실행 안내서를 참조하십시오.
또한 쿼리 효율성을 높이려면 증분 로드 디자인 패턴과 함께 익명 블록을 사용하는 방법에 대해 읽어야 합니다.