템플릿화된 검색
재사용을 위해 매개변수화된 SQL 표현식 컬렉션 내보내기
개요
템플릿 검색은 저장된 검색 (변수가 포함된 SQL로 작성됨) 변수들을 포함합니다. 템플릿 매크로는 다른 저장된 검색에 가져와서 인수와 함께 호출할 수 있는 템플릿화된 검색입니다(함수 호출과 유사).
템플릿 매크로로 정의하지 않고 템플릿 검색을 저장할 수 있습니다. 이 경우 쿼리는 다른 곳에서 실행하거나 가져올 수 없고, 변수 값은 동일한 저장된 검색 내에서 제공됩니다.
일반적으로 실행되는 SQL 표현식을 단일 라이브러리와 유사한 저장된 검색에 템플릿 매크로로 저장하면 복잡한 SQL 코드를 관리하고 재사용하기가 더 쉬워집니다. 예를 들어 다음 영역과 관련된 "라이브러리"를 정의할 수 있습니다:
직원 매크로
상관 매크로
풍부화 매크로
템플릿 검색은 Panther에서 다음을 포함하여 정의됩니다 -- pragma: template 을(를) SQL의 첫 번째 줄로.
Panther는 Django 템플릿 언어를 사용합니다, 이는 Jinja 템플릿을(를) 밀접하게 닮아 있습니다. 따라서 대부분의 DBT 템플릿은 상호 운용 가능합니다.
Panther의 템플릿 엔진은 pongo2를 기반으로 구축되어 있어 모든 Django 구문이 지원되는 것은 아닙니다. 자세한 내용은 pongo2에 대해 나열된 주의사항 을 참조하세요.
사용 예시
템플릿 매크로의 유용성을 보여주기 위해 날짜 범위와 사용자 이름이 필요한 복잡한 쿼리(예: 약 50줄의 SQL)가 있다고 가정해 보겠습니다. 템플릿 매크로가 없으면 이 검색을 실행할 때마다 특정 날짜 범위와 사용자 이름을 입력하기 위해 쿼리를 편집해야 하며, 이는 번거롭고 오류가 발생하기 쉽습니다.
대신 이 복잡한 쿼리를 템플릿 매크로로 만들 수 있습니다(예제에서는 user_activity_profile 라는 이름으로) 템플릿 검색(예제에서는 user queries 라는 이름으로)에 날짜 범위와 사용자 이름에 대한 변수를 포함하여 저장합니다.
그런 다음 아래와 같이 템플릿 매크로(user_activity_profile)를 템플릿 검색(user queries)에서 가져와 사용자 이름과 날짜/시간 값을 전달하여 매크로를 호출하는 새 쿼리를 생성할 수 있습니다. 그런 다음 여기에 검색을 저장할 수 있습니다(예: 이를 run_user_activity_profile라고 부름), 더 빠르게 접근할 수 있습니다.
-- pragma: template
--loads query user_activity_profile from the saved query 'user queries'
{% import 'user queries' user_activity_profile %}
{{user_activity_profile('bob_smith', '2023-01-01 00:00:00', '2023-01-02 00:00:00')}}템플릿 검색 사용 방법
매크로로 정의하지 않고도 변수를 사용하는 템플릿 검색을 만들 수 있습니다. 이 경우 쿼리를 다른 저장된 검색에서 가져올 수는 없지만, 파일 상단에 모든 변수 값이 정의되어 있으므로 이후에 쿼리를 실행하기가 더 쉬워집니다.
템플릿 검색 생성하기
Panther 콘솔의 Data Explorer 내에서 또는 로컬의 CLI 워크플로우에서 템플릿 검색을 생성할 수 있습니다.
Panther 콘솔에서 템플릿 검색을 생성하는 방법
Panther 콘솔의 왼쪽 탐색 창에서 아래에는 데이터 익스플로러에서 작성한 검색을 저장하는 방법에 대한 지침이 나와 있습니다. 또한 > panther_monitor.
SQL 편집기에서 맨 위에
-- pragma: template를 추가합니다.중괄호 두 개를 사용하여 변수를 선언하는 SQL 쿼리를 만듭니다
{{}}(중괄호 두 쌍).예:
변수 값을 설정하려면 파일 맨 위에 다음과 같은 문장을 추가합니다:
예:
를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 다음으로 저장, 그리고 다음 필드에 대한 값을 제공합니다:
쿼리 이름팝업 모달이 나타나면 양식을 작성하세요:
태그: 유사한 쿼리를 그룹화하는 데 도움이 되도록 태그를 추가하세요.
설명: 쿼리의 목적을 설명하세요.
: 유사한 검색을 그룹화하는 데 도움이 되도록 태그를 추가하세요.: 쿼리를 실행할 데이터베이스를 선택하세요.
이것이 예약된 쿼리입니까?: 이
켜기를 토글하여 이 쿼리를 정해진 간격으로 실행되도록 설정할 수 있습니다.이
켜기를 토글하면 시간 간격을 제공하세요.
를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 쿼리 저장.
CLI 워크플로우에서 템플릿 검색을 생성하는 방법
CLI 워크플로우에서 템플릿 검색을 생성하려면 다음을 따르세요, CLI 워크플로우에서 저장된 검색을 생성하는 방법 지침.
SQL을 작성할 때 쿼리 키:
포함하세요
-- pragma: template를 추가합니다.변수를 중괄호 두 쌍으로 묶어 쿼리를 추가하세요.
예:
Data Explorer에서 템플릿 검색 실행하기
정의된 템플릿 검색을 Data Explorer에서 열어 변수 값을 제공하면 실행할 수 있습니다.
Panther 콘솔의 왼쪽 탐색 창에서 아래에는 데이터 익스플로러에서 작성한 검색을 저장하는 방법에 대한 지침이 나와 있습니다. 또한 > panther_monitor.
오른쪽 상단에서 저장된 쿼리 열기.
실행하려는 템플릿 검색을 선택한 다음 쿼리 열기.
SQL 표현식의 모든 변수가 파일 상단의 다음과 같은 문장에 값으로 정의되어 있는지 확인하세요:
를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 쿼리 실행.
예시
아래 예에서, p 와 q 변수에는 다음 값이 주어집니다 1 와 'queue'를 각각 클릭하세요.
템플릿 매크로 사용 방법
템플릿 매크로는 내보내진 하나 이상의 템플릿 검색으로, 다른 검색에서 가져올 수 있습니다. 관련 매크로를 하나의 템플릿 쿼리에 그룹화하여 관련 매크로의 "라이브러리"를 만드는 것이 특히 유용할 수 있습니다.
템플릿 매크로 생성하기
Panther 콘솔의 Data Explorer 내에서 또는 로컬의 CLI 워크플로우에서 템플릿 매크로를 생성할 수 있습니다.
Panther 콘솔에서 템플릿 매크로를 생성하는 방법
Panther 콘솔의 왼쪽 탐색 창에서 아래에는 데이터 익스플로러에서 작성한 검색을 저장하는 방법에 대한 지침이 나와 있습니다. 또한 > panther_monitor.
SQL 편집기에서 맨 위에
-- pragma: template를 추가합니다.중괄호 두 쌍을 사용하여 변수를 선언하는 하나 이상의 SQL 쿼리를 만드세요
{{}}(중괄호 두 쌍).각 템플릿화된 쿼리를 다음으로 둘러싸세요:
쿼리의 앞부분:
{% macro <macro name>(<variable_one>, <variable_two>) export %}쿼리의 뒷부분:
{% endmacro %}
를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 다음으로 저장, 그리고 다음 필드에 대한 값을 제공합니다:
쿼리 이름팝업 모달이 나타나면 양식을 작성하세요:
이 값은 나중에 가져올 때 사용됩니다.
태그: 유사한 쿼리를 그룹화하는 데 도움이 되도록 태그를 추가하세요.
설명: 쿼리의 목적을 설명하세요.
: 유사한 검색을 그룹화하는 데 도움이 되도록 태그를 추가하세요.: 쿼리를 실행할 데이터베이스를 선택하세요.
이것이 예약된 쿼리입니까?: 이 토글을 켜둔 상태로 두세요
OFF.
를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 쿼리 저장.
예시
CLI 워크플로우에서 템플릿 매크로를 생성하는 방법
CLI 워크플로우에서 템플릿 검색을 생성하려면 다음을 따르세요, CLI 워크플로우에서 저장된 검색을 생성하는 방법 지침.
SQL을 작성할 때 쿼리 키:
포함하세요
-- pragma: template를 추가합니다.변수를 중괄호 두 쌍으로 묶은 하나 이상의 쿼리를 추가하세요.
각 템플릿화된 쿼리를 다음으로 둘러싸세요:
쿼리의 앞부분:
{% macro <macro name>(<variable_one>, <variable_two>) export %}쿼리의 뒷부분:
{% endmacro %}
예:
다른 쿼리에서 템플릿 매크로 호출하기
이전에 만든 템플릿 매크로를 가져오고 변수 값을 전달하여 실행할 수 있습니다.
Panther 콘솔의 왼쪽 탐색 창에서 아래에는 데이터 익스플로러에서 작성한 검색을 저장하는 방법에 대한 지침이 나와 있습니다. 또한 > panther_monitor.
SQL 편집기에서 맨 위에
-- pragma: template문장을 추가하세요.
확장된 SQL이 표시되기를 원한다면(디버깅에 도움이 될 수 있음) 다음을 포함하세요 -- pragma: show macro expanded.
다음과 같은 구조의 문장으로 이전에 정의한 매크로를 가져오세요:
다음과 같은 구조의 문장으로 매크로를 호출하여 인수에 대한 값을 전달하세요:
를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 쿼리 실행.
선택적으로 쿼리를 클릭하여 저장하세요 SQL 표현식에 변수를 포함하여 템플릿 검색을 만들 수 있습니다. 자세한 내용은.
전체 예시
템플릿 매크로 디버깅하기
Data Explorer에서 템플릿 매크로를 실행할 때 템플릿 코드만이 아니라 확장된 SQL 문을 보려면 -- pragma: show macro expanded 아래를 클릭하여 Panther에 업로드하십시오. -- pragma: template 문장을 추가하세요.
예를 들어 Data Explorer에서 아래를 실행하면:
템플릿은 확장된 SQL로 대체됩니다:
사용자 정의 함수
Panther는 템플릿 작업을 더 쉽게 하기 위해 사용자 정의 함수를 구현했습니다.
split
splitDjango는 문자열을 리스트로 분할하는 것을 지원하지 않습니다. Panther는 이 기능을 제공하기 위해 split 함수를 추가했습니다. 이는 for 루프 작업에서 유용할 수 있습니다.
예를 들어 테이블을 쉽게 유니온하기 위한 다음 쿼리를 고려해 보세요:
마지막 업데이트
도움이 되었나요?

