# SQL IDE
주요 분석 모델을 사용하는 것 외에도, 별도로 SQL을 사용하여 일반적인 기능으로는 실현하기 어려운 고급 분석도 실행할 수 있습니다. 현재 클러스터 하에 있는 프로젝트 데이터를 쿼리할 수도 있습니다. SQL 쿼리로 가치 있는 문제점을 발견한 경우, 리포트를 작성한 후 다른 리포트와 동일하게 대시보드에 배치할 수 있습니다.
# SQL 입력창 에서 코드 편집
TE는 Trino 쿼리 엔진을 사용하며, 표준 SQL을 사용하여 쿼리 코드를 실행할 수 있습니다. 다음은 간단한 예입니다.
SELECT
"$part_date"
, count(DISTINCT "#user_id")
FROM
ta.v_event_1
WHERE ("$part_date" BETWEEN '2023-01-01' AND '2023-01-07') AND ("$part_event" = 'login')
GROUP BY "$part_date"
ORDER BY "$part_date" ASC
편집 시 다음 사항에 유의해야 합니다.
- 필드 이름을 이중 인용부호 " "로 묶어야 합니다. 생략할 수도 있지만, 쿼리할 필드 이름에 특수 기호($, # 등)가 포함된 경우 이중 인용부호를 사용해야 합니다.
- 문자열은 단일 인용부호 ' '로 묶어야 합니다.
- SELECT 또는 WITH을 사용하십시오.
쿼리 코드를 작성하는 과정에서 "테이블 구조" 정보를 참조하여 테이블 이름이나 테이블 내 필드 이름을 복사하거나, "테이블 분석"을 통해 모든 필드를 포함한 쿼리 코드를 입력 상자에 자동으로 삽입할 수도 있습니다.
편집 중인 내용이 손실되지 않도록 북마크로 저장할 수도 있습니다. 저장된 내용은 "북마크" 탭을 열어 확인할 수 있습니다. 쿼리 코드에 동적 시간을 사용해야 하거나 다른 구성원이 쿼리 코드의 일부를 동적으로 조정해야 하는 경우, 동적 매개변수를 추가하여 구현할 수 있습니다.
다른 분석 모델과 달리, SQL 쿼리로 권한을 가진 모든 프로젝트의 데이터를 사용할 수 있습니다. 예를 들어, 프로젝트 1과 프로젝트 2의 DAU를 동시에 참조할 수 있습니다.
SELECT
a."$part_date"
, "Project_1_DAU"
, "Project_2_DAU"
FROM
((
SELECT
"$part_date"
, count(DISTINCT "#user_id") "Project_1_DAU"
FROM
ta.v_event_1
WHERE (("$part_date" BETWEEN '2023-01-01' AND '2023-01-07') AND ("$part_event" = 'login'))
GROUP BY "$part_date"
) a
INNER JOIN (
SELECT
"$part_date"
, count(DISTINCT "#user_id") "Project_2_DAU"
FROM
ta.v_event_2
WHERE (("$part_date" BETWEEN '2023-01-01' AND '2023-01-07') AND ("$part_event" = 'login'))
GROUP BY "$part_date"
) b ON (a."$part_date" = b."$part_date"))
ORDER BY a."$part_date" ASC
이벤트 테이블, 유저 테이블 외에도 쿼리 코드에서 다음 데이터를 사용할 수 있습니다.
- 태그·코호트 테이블: ta.user_result_cluster_{project_id}
- 히스토리 태그 테이블: ta.user_result_cluster_{project_id}
- 히스토리 통화 테이블: ta_dim.ta_exchange
- 차원 테이블
- 임시 테이블
쿼리 코드에서 다음 데이터를 사용해야 하는 경우, 구체적인 사용 방법에 대해 당사 매니저에게 사전 문의하십시오.
- 매일 0시에 유저의 데일리 시리얼 테이블을 저장 (당시 유저 상태를 기록·저장)
- 2차 개발 도구를 사용하여 커스텀 테이블을 임포트
- Trino Connector를 사용하여 외부 데이터 소스를 연결
# 쿼리 결과를 표시하고 리포트로 저장
SQL 쿼리 화면 오른쪽의 "계산" 버튼을 클릭하면 해당 SQL 코드의 실행 결과가 표시되고 최대 1,000행의 상세 데이터가 표시됩니다. 모든 데이터를 표시하려면 CSV 파일을 다운로드하십시오 (최대 100만 행의 데이터). 이 쿼리 결과를 "임시 테이블"로 저장하고 후속 쿼리에 사용할 수도 있습니다.
데이터의 상세 내용을 직접 표시할 뿐만 아니라, 시각화 모듈에서 제공하는 라인 그래프나 원 그래프 등 다양한 그래프 유형을 통해 데이터를 시각화할 수도 있습니다. 해당 쿼리 코드와 시각화 구성을 리포트로 저장하고 다른 구성원과 공유할 수도 있습니다.
주의:
다른 분석 리포트와 마찬가지로, 다른 구성원이 SQL 리포트에서 표시할 수 있는 데이터도 데이터 권한의 영향을 받습니다. 예를 들어, iOS 채널 권한만 가진 구성원이 표시하는 결과에는 iOS 채널 유저의 행동 데이터만 포함됩니다.
보충:
데이터 권한 외에도, SQL 리포트의 이벤트 권한도 설정할 수 있습니다. 지정된 이벤트를 사용할 권한이 구성원에게 없는 경우, 리포트에는 데이터가 표시되지 않습니다 (그림 1). 쿼리 코드에서 다른 프로젝트의 데이터가 사용되었는지 여부와 관계없이, 리포트는 해당 프로젝트 하에만 저장된다는 점에 유의하십시오. 해당 프로젝트에 속하지 않은 테이블이 쿼리 코드에 표시되는 경우, 조회자가 쿼리와 관련된 모든 프로젝트 권한을 가지고 있는지 여부를 확인해야 합니다 (그림 2).
SQL 리포트의 쿼리 코드는 복잡한 경우가 많으므로 표시 캐시를 설정할 수 있습니다 (그림 3). 계산이 완료되면 데이터 결과가 캐시되며, 동일한 리포트를 쿼리하면 캐시된 데이터 결과를 직접 불러옵니다. 다음 번에는 다시 계산하지 않고 클러스터 리소스를 절약할 수 있습니다.
대시보드의 정기 업데이트는 설정 내용과 관계없이 모든 SQL 리포트에 대해 유효합니다. 대시보드가 정기적으로 업데이트될 때 계산됩니다. 비 T+1 리포트 캐시를 24시간으로 설정하여, 대시보드가 하루에 한 번만 계산되도록 할 수 있습니다.
쿼리 코드의 실행 시간이 300초를 초과하는 경우, 리포트에 대시보드 캐시를 설정해야 합니다. 또한, 리포트를 수동으로 업데이트할 수 없으며 (대시보드의 정기 업데이트는 계속 유효), 이 리포트를 탐색 모듈에서도 사용할 수 없습니다. 쿼리 코드를 조정하거나, 쿼리 데이터 범위를 줄여보십시오.
# 권한 설명
루트 계정 | 관리자 | 분석가 | 구성원 | |
---|---|---|---|---|
SQL IDE | ◎ | ◎ | △ | △ |
권한 설명:
◎ 부여되어 있음
○ 기본적으로 부여되어 있지만, 제외 가능
△ 기본적으로 부여되어 있지 않지만, 부여 가능
× 부여되어 있지 않음
※분석가 역할에는 'SQL쿼리를 이용' 권한이 기본적으로 설정되어 있지 않습니다. 이용할 필요가 있는 경우, 권한의 새로운 생성 기능을 사용하여 SQL 이용 권한을 부여(커스터마이즈)해 주세요.